最近在飞凌的板子上移植uCOS,SRAM是32M,16位的芯片,两片32位数据接口接在BANK6上,在MDK中仿真是这么想的,一般做ROM,一半做RAM,32M的大小是0x200_0000,故俺安排的ROM地址是:0x3000_0000--0x3200_0000,RAM地址是0x3200_0000--0x3400_0000,这样在跑OS时,一部分代码段总是被莫名的清除,跟踪过去,明明清除操作指针指向0x3200_005a4,却将0x3000_05a4的内容清楚了,不知是什么原因,于是俺想在一片中试试,改成ROM地址是:0x3000_0000--0x3100_0000,RAM地址是0x3100_0000--0x3200_0000,问题消失,这俺就有疑问了,对于NANDFlash,其地址就是对应Byte的,但SRAM的地址显然是按位宽32Bit算的,那BANK6,7的大小128M是以什么为单位的呢?以Byte为单位?那是不是说我将飞凌的32为SRAM接口改成16位的,依然是这两片,那地址范围就变成:0x3000_0x3400_0000了?有点疑惑,也是想确认一下自己的想法,有大侠在的探讨一下。 |