编写操作norflash的裸机程序需要注意以下几点:
1.编译裸机程序时文本段必须从存放在 CPU 的零地址,否则程序不能启动;
2.如果要操作norflash,则需要在操作之前完成程序重定位,否则程序会卡死,因为在CFI模式下norflash不能读;
上图摘自 MX29LV160DBTI-70G(NOR FLASH).pdf page 16
3.写flash时由于CPU的A1接到了flash的A0上,所以每次地址都要增加两个字节,所以只能一次性写两个字节。如果每次写一个字节,那么类似 1, 3, 5,7...这样的奇数自己永远写不上,2,4,6...这样的偶数字节则能写上;
4.写flash的时候每个指令周期只能写一次,如果需要继续写就要继续发出写指令。如果只发一次指令,则只能写上两个字节,后续的都写不上;
上图摘自 MX29LV800BBTC.pdf page 15
以上是这几天操作norflash遇到的几个问题,记录一下。
无论迷雾有多重,都会随着坚持不懈的努力而消散,而明朗的天空必将到来。