WINCE 5.0 EBOOT修改出问题

czylwj   2010-4-29 17:15 楼主
由于FLASH靠前面的BLOCK出现坏块,就把开机LOGO的烧写和读取地址向后移了两个BLOCK,相应大小也减少了两个BLOCK这样照例说就不会对其他部分构成影响。改了过后开机LOGO没问题了,但是系统却启动不起来了。请问下我是不是还有什么地方没修改到或者是需要重新配置什么地方?对EBOOT不熟。谢谢解答!

回复评论 (10)

问题是你都修改了些什么?
EBOOT的烧录地址是从哪里开始,到哪里结束

NK呢?NK烧录地址有没有修改?

“相应大小减少了2个BLOCK”这句话很有意思,你针对这个修改了什么?
点赞  2010-4-29 17:36
我就只改了与烧写LOGO有关的地址和大小其他的都没有做改动,怎么会影响到EBOOT呢
#define RESIMAGE_BLOCK                        (10)
#define RESIMAGE_BLOCK_SIZE        (0x20)
#define RESIMAGE_SECTOR                BLOCK_TO_SECTOR(RESIMAGE_BLOCK)
#define RESIMAGE_SIZE                        (0x00800000)
点赞  2010-4-29 17:40
我用的是IROM启动方式,这个比NBOOT+EBOOT麻烦多了,而且还有部分代码不开源。
#define RESIMAGE_BLOCK (14)     //LOGO烧写起始地址后移四个BLOCK
#define RESIMAGE_BLOCK_SIZE (0x1B)   //烧写大小减少4个BLOCK
#define RESIMAGE_SECTOR BLOCK_TO_SECTOR(RESIMAGE_BLOCK)
#define RESIMAGE_SIZE (0x00600000)   //实际LOGO只有3M

这些改动应该不会干扰其他的东西吧
点赞  2010-4-29 17:51
eboot这块还没看过呢
有时间要看看
点赞  2010-4-29 19:09
把系统启动不了时的输出信息贴出来。
点赞  2010-4-30 12:19

  1. NAND Initialize

  2. Device ID : 0xd7
  3. Hidden ID : 0xd5
  4. Jump to 2nd Bootloader...

  5. [NBL2] ++ShadowEboot()
  6. [NBL2] --ShadowEboot()
  7. [I2C_EMUL]g_wDelay_nsec = [I2C_EMUL]g_wDelayAck_nsec= [I2C_EMUL]g_wDelay_cnt = [I2C_EMUL]g_wDelayAck_cnt = U2RM BOOTlogo.bmp

  8. Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jan 26 2010 16:18:07
  9. Microsoft Windows CE Bootloader for the Samsung SMDK2450 Version 2.4 Built Apr 29 2010

  10. [I2C_EMUL]g_wDelay_nsec = 10000
  11. [I2C_EMUL]g_wDelayAck_nsec= 10000
  12. [I2C_EMUL]g_wDelay_cnt = 4000
  13. [I2C_EMUL]g_wDelayAck_cnt = 4000
  14. BP_Init
  15. [FTL:MSG] FIL_Init                        [OK]
  16. [FTL:MSG] BUF_Init                        [OK]
  17. [VFL:INF] Init VFL (19-NOV-2008)
  18. [VFL:INF] CPUID(0x32450003)
  19. [FTL:MSG] VFL_Init                        [OK]
  20. [FTL:MSG] VFL_Open                        [OK]
  21. TOC_Read
  22. -TOC_Read
  23. Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.

  24. Initiating image download in 0 seconds.
  25. Starting auto-download ...
  26. OEMPlatformInit: IMAGE_TYPE_RAMIMAGE
  27. +ReadOSImageFromBootMedia
  28. RAM image
  29. RAM image
  30. Read OS image to BootMedia
  31. ImageLength = 4194304 Byte, dwRegionStart : a0200000
  32. Start Page = 8960, End Page = 9471, Page Count = 512
  33. ....
  34. Read OS image to BootMedia Success
  35. System ready!
  36. Preparing for download...
  37. waitforconnect
  38. INFO: OEMLaunch: Jumping to Physical Address 0x3020D054h (Virtual Address 0x8020D054h)...

  39.   ====================
  40.   eastley  ARMCORE [400MHz]
  41.     [ERROR] Failed to set VDDPLL to 1.300V.
  42.     [ERROR] Failed to set VDDARM to 1.300V.
  43.   ====================
  44. [color=#0000FF]//这里应该跳到OS执行,但是又跳回0地址了[/color]
  45. NAND Initialize

  46. Device ID : 0xd7
  47. Hidden ID : 0xd5
  48. Jump to 2nd Bootloader...

  49. [NBL2] ++ShadowEboot()
  50. [NBL2] --ShadowEboot()
  51. [I2C_EMUL]g_wDelay_nsec = [I2C_EMUL]g_wDelayAck_nsec= [I2C_EMUL]g_wDelay_cnt = [I2C_EMUL]g_wDelayAck_cnt = U2RM BOOTlogo.bmp

  52. Microsoft Windows CE Ethernet Bootloader Common Library Version 1.1 Built Jan 26 2010 16:18:07
  53. Microsoft Windows CE Bootloader for the Samsung SMDK2450 Version 2.4 Built Apr 29 2010

  54. [I2C_EMUL]g_wDelay_nsec = 10000
  55. [I2C_EMUL]g_wDelayAck_nsec= 10000
  56. [I2C_EMUL]g_wDelay_cnt = 4000
  57. [I2C_EMUL]g_wDelayAck_cnt = 4000
  58. BP_Init
  59. [FTL:MSG] FIL_Init                        [OK]
  60. [FTL:MSG] BUF_Init                        [OK]
  61. [VFL:INF] Init VFL (19-NOV-2008)
  62. [VFL:INF] CPUID(0x32450003)
  63. [FTL:MSG] VFL_Init                        [OK]
  64. [FTL:MSG] VFL_Open                        [OK]
  65. TOC_Read
  66. -TOC_Read
  67. Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.

  68. Initiating image download in 5 seconds.

点赞  2010-4-30 13:12
我觉得首先确定一下,OS有没有被写到内核里面去。可以在OS读到ram里面之后,从launch的首地址开始打印出一些ram里面的二进制数据出来,看看对不对。如果这个对了的话,再确定一下跳转的地址对不对。
点赞  2010-4-30 13:32
这个问下黑米或者李昊吧,他们前段时间搞定了
点赞  2010-4-30 16:13
引用: 引用 1 楼 yashi 的回复:
问题是你都修改了些什么?
EBOOT的烧录地址是从哪里开始,到哪里结束

NK呢?NK烧录地址有没有修改?

“相应大小减少了2个BLOCK”这句话很有意思,你针对这个修改了什么?


1,这个前辈已经指的很清楚了,“EBOOT的烧录地址是从哪里开始,到哪里结束”,然后你再看下你的4KB的引导代码,是怎么搬运EBOOT的,搬运了哪些BLOCK

2,NK呢?NK烧录地址有没有修改?
如果你改了LOGO的地址和大小,我觉得你应该查下 你的NK地址是否变了呢?

3,从你的串口信息看,你的系统找不到文件系统,只停在了EBOOT阶段,这个
====================
  eastley  ARMCORE [400MHz]
    [ERROR] Failed to set VDDPLL to 1.300V.
    [ERROR] Failed to set VDDARM to 1.300V.
奇怪了  你是系统电压怎么不正常?初始化不对?你用的是什么板子啊?这个是不是造成了你的系统不停重启? 先确定下硬件电路没问题吧。。



点赞  2010-4-30 23:14
重新build and sysgen就没问题了
点赞  2010-5-3 17:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复