你好:
目前我的am3354 跑 wince7.0,发现启动时间要1分41秒。
不知道这个时间是否正常,还是有什么地方等待或超时。
附启动信息:
NK Image Loaded
Launch Windows CE image by jumping to 0x80002000…
Windows CE Kernel for ARM (Thumb Enabled)
CPU CP15 Control Register = 0xc5387f
CPU CP15 Auxiliary Control Register = 0x42
Board Name: EZ335X
Board Ver : 1.0A
+OALTimerInit(1, 24000, 200)
oal gpio dispatch
BSPGpioInit oallib
— High Performance Frequecy is 24 MHz—
PID:00400002 TID:00410002 SetOpp to 3PID:00400002 TID:01350006 ECC TYPE is BCH 8 bit with ELM
PID:00400002 TID:01350006 8Bit NAND device
PID:00400002 TID:01350006 +download_CM3: loading M3PID:00400002 TID:01350006 LoadFirmwareFile()
PID:00400002 TID:01350006 CM3: input file [\windows\firmware.bin] is 9932 bytes long
PID:00400002 TID:01350006 CM3: firmware file read ok!
PID:00400002 TID:01350006 +download_CM3: done with M3PID:00400002 TID:01350006 MSC DllMain:PID:00400002 TID:01350006 MSC_Init…
PID:00400002 TID:01350006 MSC_Init:PID:00400002 TID:01350006 device gpio dispatch
PID:00400002 TID:01350006 BSPGpioInit gpio.cpp
PID:00400002 TID:01350006 Cpsw3g_InitializeAdapter: mode=1, port=1, txCh=0, rxChMask=0x01, ActiveCpgmac=1
PID:00400002 TID:01350006 pAdapter->ActiveCpgmac = ActiveCpgmac;
PID:00400002 TID:01350006 Cpsw3g_Init_SendRecv
PID:00400002 TID:01350006 phy_state == INITING
PID:00400002 TID:01350006 || ActiveCpgmac == 1
PID:00400002 TID:01350006 <– Cpsw3g_InitializeAdapter.
PID:00400002 TID:03200002 _cpsw3g_Phy_Init_state: phy_mask 2, PhyAcks2 alive:6
PID:00400002 TID:03200002 *** PhyAcks=0x2 i=1
PID:00400002 TID:03200002 _cpsw3g_Phy_Init_state : could not found driver for PHY id 4dd072.
PID:00400002 TID:01350006 SDHC: CPU revision 0xffffffff
PID:00400002 TID:01350006 SDHC host controller initialize: m_fastPathSDIO:1 m_fastPathSDMEM:0
PID:00400002 TID:01350006 create m_hControllerISTEvent
PID:00400002 TID:026A000A MSC DllMain:PID:00400002 TID:01350006 CAM3xxOTG::Init DEVCTL 80
PID:00400002 TID:03F1000E MSC DllMain:PID:00400002 TID:02530012 MSC DllMain:PID:00400002 TID:01350006 CAM3xxOTG::Init DEVCTL 80
PID:00400002 TID:02F7001E MSC DllMain:PID:00400002 TID:03FE001E CAM3xxOTG[2]::HostMode(): entering host mode
PID:00400002 TID:05410002 MSC DllMain:PID:00400002 TID:01E10012 MSC DllMain:PID:00400002 TID:04C60006 dss :case to select m_dwSurfaceMgrPID:00400002 TID:04C60006 PVR:getCpuFamily: 5
PID:00400002 TID:04C60006 PVR:omapsgxddgpe getCpuFamily: 5
PID:00400002 TID:04C60006 KeybdDriverInitializeEx: Layout Manager successfully initialized to 1
PID:00400002 TID:03200002 _cpsw3g_phy_update_link, Port:0 LINK:UP SPEED:100 DUPLEX:FD
PID:00400002 TID:0540003E MSC DllMain:PID:00400002 TID:03CB0012 NDISPWR:: Found adapter [CPSW3G2]
PID:00400002 TID:03CB0012 MSC DllMain:PID:00400002 TID:051A003E MSC DllMain:PID:00400002 TID:04670046 MSC DllMain:PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 1
PID:00400002 TID:02580006 MSC DllMain:PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 0
PID:00400002 TID:03000002 MSC DllMain:PID:00400002 TID:017B0006 MSC DllMain:PID:00400002 TID:025E000A MSC DllMain:PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 1
PID:00400002 TID:0395000A MSC DllMain:PID:00400002 TID:0420003E MSC DllMain:PID:00400002 TID:039F0002 MSC DllMain:PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 2
PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 0
Steven Liu1:
是从NAND flash启动的吗?通过你的观察是在哪一块停留时间较长呢?
对于某些不需要的driver或者服务,在开机的时候就不要加载了,这样可以节省启动时间。
hainan zhu:
回复 Steven Liu1:
我是从NAND flash启动
PID:00400002 TID:03CB0012 NDISPWR:: Found adapter [CPSW3G2]
等很长时间PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 1 出现伴随着进入桌面。
在没有进入桌面之前,我碰几下触摸屏,又会加长 30、40秒的时间
hainan zhu:
回复 Steven Liu1:
你好:
你们demo板 AM335X wince7.0 NAND Flash启动一般的时间多少?
Steven Liu1:
回复 hainan zhu:
由于目前官方不提供对WINCE7的支持,所以没有测试数据。
对启动时间的优化这个问题,很多人都有需求,目前我们FAE在Linux方面也在做一些汇总,你可以参考这个帖子里面的一些东西:http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/70630.aspx
操作系统不一样,但思路都差不多的。我建议你可以追一下log,分析一下,前面提到的耗费时间较长的log打印时,driver里面都在做什么,从这里开始做优化。
例如,查到NAND flash里面读取image的时间过长,你就可以根据nand flash手册去优化gpmc的时序配置……
Jian Zhou:
回复 Steven Liu1:
请问你的WinCE7是从adeneo下载的么?这个版本的NAND时序是没有做优化的,请参考NAND的dadasheet和AM335x GPMC timming set部分对时序做下优化
hainan zhu:
回复 Jian Zhou:
你好 Jian Zhou:
根据你的提示,我修改了gpmc的时序配置。
我通过参考linux下的时序配置,是针对am335x平台:
static struct gpmc_timings am335x_nand_timings = {
.sync_clk = 0,
.cs_on = 0,
.cs_rd_off = 44,
.cs_wr_off = 44,
.adv_on = 6,
.adv_rd_off = 34,
.adv_wr_off = 44,
.we_off = 40,
.oe_off = 54,
.access = 64,
.rd_cycle = 82,
.wr_cycle = 82,
.wr_access = 40,
.wr_data_mux_bus = 0,
};
修改了wince7.0 bsp_cfg.h文件中的相关 GPMC_CONFIGi 的配置#if 1 /*BSP_AM33X*/ /* SA 8-Bit Nand */#define M_NAND_GPMC_CONFIG1 0x00000800#else#define M_NAND_GPMC_CONFIG1 0x00001810#endif#define M_NAND_GPMC_CONFIG2 0x002c2c00 / /0x001e1e00#define M_NAND_GPMC_CONFIG3 0x002c2206 //0x001e1e00#define M_NAND_GPMC_CONFIG4 0x28053607 //0x16051807#define M_NAND_GPMC_CONFIG5 0x00405252 //0x00151e1e#define M_NAND_GPMC_CONFIG6 0x28000f80 //0x16000f80#define M_NAND_GPMC_CONFIG7 0x00000008
注释部分是原来内核里配置的,我修改并烧录了新的ebootnd.bin xldrnand.bin nk.bin
发现内核启动信息:
INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0x8409
Texas Instruments Windows CE EBOOT for AM33x, Built Sep 23 2014 at 09:00:51EBOOT Version 0.0.1, BSP BSP_WINCE_ARM_A8 02.30.00.01oal gpio dispatch
TI AM33X
ecc type:3System ready!Preparing for download…INFO: Predownload….启动卡在了 while ((NAND_GetStatus(pDevice) & NAND_STATUS_READY) == 0);上
可能我的时序配置有误,但是我是按linux时序配置来的,是不是还有除这7个寄存器之外的配置需要修改。
希望您的答复。
hainan zhu:
回复 hainan zhu:
我尝试网上另一种配置方案:
#define M_NAND_GPMC_CONFIG10x00000800 #define M_NAND_GPMC_CONFIG20x00030300 #define M_NAND_GPMC_CONFIG30x00030300 #define M_NAND_GPMC_CONFIG40x02000311 #define M_NAND_GPMC_CONFIG50x00030303 #define M_NAND_GPMC_CONFIG60x03000540 #define M_NAND_GPMC_CONFIG70x00000008发现可以启动系统,启动时间由原来的1分30秒 缩小到 1分20秒如果这是优化的结果,那么启动慢是否是因为在某些模块上花费的时间比较多,由于打印信息太少,内核模块加载内容和花费时间的并不清晰。有什么好的办法吗?希望您的答复
user5086616:
您好,请问您还有保存am335x winec7的官方源码镜像吗?能不能共享给我。我QQ email:862049719@qq.com
yongqing wang:
回复 user5086616:
官方好像没有wince7 提供的SDK,你看以在第三方下载比如:飞凌,盈鹏飞