2440nandflash下载和启动的问题

2019-07-16 09:36发布

开发平台 TQ2440 4.3寸TFT
                   jlink V8下载
简单的裸led程序(linux下编译的),通过jlink.exe下载到nandflash
控制台命令如下:
r
speed 12000
loadbin e:led.bin 0
setpc 0
g

1)通样的命令 开关打到nandflash 敲g命令之后程序运行正常,为什么复位或断电重启程序都不能运行?
nand不能直接读写,难道要自己添加初始化文件吗,我的疑惑是:程序不是已经存到nandflash了吗,上电后硬件自动copy 4K到内存,应该重启也可执行的,nandflash要怎么下载才能重启继续运行?
2)开关打到norflash g运行原来norflash的程序,led下载不进去,但用JFlashARM下载一切正常。

菜鸟刚学,求大侠们指点,非常感谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
robi
1楼-- · 2019-07-16 11:35
nandflash相当于bootrom了,这里面的代码不是runtime的代码,而是进行最基本的初始化的代码,你可以在这4k里面进行sdram或者其他类型memory的初始化,进行系统引导等等工作。
boot代码必须是在非易失性的memory中,而之所以要使用nandflash而不是norflash或者eprom是出于成本的考虑,nand要便宜得多,再加上ic内部一个读nand到sram的逻辑也比nor要便宜。
当没有运行c代码的时候,汇编代码的技巧是可以不要求指定sp的,所以在初始化sdram之前不用考虑栈空间问题。
在arm中,程序空间和数据空间必然是要重叠的,从cpu的角度来看,它们共享同一地址空间。arm9里面所说的哈佛结构也只是指令cache和数据cache是两条分开的总线,而从外部的ahb总线看来,取指和数据操作必然是串行的
z00
2楼-- · 2019-07-16 13:01
1)通样的命令 开关打到nandflash 敲g命令之后程序运行正常,为什么复位或断电重启程序都不能运行?
-----------------------
程序在RAM中运行 复位或断电重启后程序丢失了

一周热门 更多>