主题中讨论的其他器件:UNIFLASH、 C2000WARE
我将为该器件实现自定义引导加载程序、如主题中所述。
数据表修订版 F (SPRS945F)显示闪存被组织为一组16个扇区、4K x 16、每个扇区的起始地址为0x80000、最后有效地址为0x8FFFE
CCS 9.1提供的链接器文件显示它是包含7个扇区的2个组、每个扇区为4K x16、分别从0x80000和0x90000开始
CCS 和 Uniflash (v 4.5.sus)都无法读取地址0x88000、这表明数据表无效。
但运行的代码如下所示:
volatile u32 b;
volatile u32* ptr = (u32*) 0x88000;
while(1)
{
b = *ptr++;
}
不会产生任何崩溃、b 似乎具有有效值0xFFFFFFFF、因此实际上地址0x88000确实存在、但不知怎么说工具无法读取它。
工具(CCS 和 Uniflash)似乎能够读取0x90000...0x97FFF 范围没有问题、因此数据表内存映射中的+1是错误的。
有人能解释一下发生了什么? 将闪存分为2个单独的地址空间似乎有点奇怪.....
编辑:
我刚刚安装了 Uniflash v 6.4.0.3394、现在它似乎可以正确读取0x88000...0x8FFFF、而不能读取0x90000及以上。 我现在真的很困惑。
