This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X wince7.0 启动时间过长

Other Parts Discussed in Thread: AM3354

 你好:

          目前我的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 3
PID: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 M3
PID: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 M3
PID: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_dwSurfaceMgr
PID: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

  • 是从NAND flash启动的吗?通过你的观察是在哪一块停留时间较长呢?

    对于某些不需要的driver或者服务,在开机的时候就不要加载了,这样可以节省启动时间。

  • 我是从NAND flash启动

    PID:00400002 TID:03CB0012 NDISPWR:: Found adapter [CPSW3G2]

    等很长时间
    PID:00400002 TID:01760006 kernel PVRSRV_IOCTL_POWER_SET setting state 1 出现伴随着进入桌面。

    在没有进入桌面之前,我碰几下触摸屏,又会加长 30、40秒的时间

  • 你好:

      你们demo板  AM335X wince7.0 NAND Flash启动一般的时间多少?

  • 由于目前官方不提供对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的时序配置……

  • 请问你的WinCE7是从adeneo下载的么?这个版本的NAND时序是没有做优化的,请参考NAND的dadasheet和AM335x GPMC timming set部分对时序做下优化

  • 你好  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:51
    EBOOT Version 0.0.1, BSP BSP_WINCE_ARM_A8 02.30.00.01
    oal gpio dispatch

    TI AM33X

    ecc type:3
    System ready!
    Preparing for download...
    INFO: Predownload....
    启动卡在了  while ((NAND_GetStatus(pDevice) & NAND_STATUS_READY) == 0);上

    可能我的时序配置有误,但是我是按linux时序配置来的,是不是还有除这7个寄存器之外的配置需要修改。

    希望您的答复。

  • 我尝试网上另一种配置方案:

    #define M_NAND_GPMC_CONFIG1	   0x00000800
    #define M_NAND_GPMC_CONFIG2    0x00030300
    #define M_NAND_GPMC_CONFIG3    0x00030300
    #define M_NAND_GPMC_CONFIG4    0x02000311
    #define M_NAND_GPMC_CONFIG5    0x00030303
    #define M_NAND_GPMC_CONFIG6	   0x03000540
    #define M_NAND_GPMC_CONFIG7	   0x00000008
    发现可以启动系统,启动时间由原来的1分30秒 缩小到 1分20秒
    如果这是优化的结果,那么启动慢是否是因为在某些模块上花费的时间
    比较多,由于打印信息太少,内核模块加载内容和花费时间的并不清晰。
    有什么好的办法吗?
    希望您的答复
  • 您好,请问您还有保存am335x winec7的官方源码镜像吗?能不能共享给我。我QQ email:862049719@qq.com
  • 官方好像没有wince7 提供的SDK,你看以在第三方下载比如:飞凌,盈鹏飞