2. 建議你先回頭看一下 User's Manual, MSC0 是做什麼的, 你就會發現你把 NOR Flash 的 access timing/width 給改變了, 而你的 eboot 又放在 nor flash 執行, 故程式就死了
这个太重要了!!!
但是还是有个疑问:
我的板子已经可以跑WINCE4
在CE4的BSP下同样有xlli_lowlev_init.s这个文件
也同样有这个函数
也同样有str r1, [r4, #xlli_MSC0_offset] ; Write the value out 这句
但是在CE4的BOOT中可以正常通过,没有问题
现在我将xlli_mem_init这整个函数都拿到WINCE5的xlli_lowlev_init.s这个文件下,将以前的xlli_mem_init都替换掉
为什么会把 NOR Flash 的 access timing/width 給改變了呢??
ldr r1, =xlli_MSC0_DC_value ; Get MSC0 setting value
ldr r4, =xlli_MEMORY_CONFIG_BASE ; Get memory controller base address
str r1, [r4, #xlli_MSC0_offset] ; Write the value out bl Light_xlliLEDs ;LED
ldr r1, [r4, #xlli_MSC0_offset] ; Read back to latch the data
ldr r2, =xlli_MSC1_value ; Get MSC1 setting
str r2, [r4, #xlli_MSC1_offset] ; Write the value out
ldr r2, [r4, #xlli_MSC1_offset] ; Read back to latch the data
我在platform->setting中设置了环境变量xlli_FLASH_WIDTH_16_BIT SETS = 1
但是重新sysgen and build 还是不行!!
问题还是在那句上
str r1, [r4, #xlli_MSC0_offset] ; Write the value out
死掉了!