从nand启动运行程序的问题,求指点

[复制链接]
1886|3
 楼主| 2012CMD 发表于 2013-4-18 10:25 | 显示全部楼层 |阅读模式
nand本来不能运行程序,实际由stepping stone实现,上电后s3c2440上的nand控制器自动将前4K复制到s3c2440内置的stepping stone(SRAM)中,然后stepping stone会将这个地址映射到nGCS0(即0地址处),然后开始执行程序,接着由用户的程序实现将nand中的程序复制到SDRAM(即0x30000000),这里有几个疑问,google搜啦很多也没看懂,求教各位大神

①stepping stone将地址映射到0x0,可是这里不是nand的起始地址,已经下载啦用户的程序吗??怎么还可以映射呢????
②实现地址映射从0x0开始执行程序后,用户的程序需要拷贝那些东西,前面的4K需要吗????还是直接拷贝main函数的内容???还是4K以后的内容???
③自动拷贝到stepping stone的程序原理上只能包含启动代码,可是如果启动代码不足4K,那岂不是吧后面的也拷贝进来啦???而这后面的代码如果包含有需要到SDRAM执行的代码,那又该怎么办????


阿南 发表于 2013-4-18 10:43 | 显示全部楼层
1。NAND本来就没有地址,它使用的是块、页的结构,在操作系统中为扇区
2。前面4K也是需要的,拷贝的时候以地址和数据为准(就是RO BASE。。。),不认MAIN函数
3。后面的数据不影响你前面程序执行
建议研究《ARM Linux入门与实践》一书中的前后台部分的启动代码分析相关章节。
 楼主| 2012CMD 发表于 2013-4-18 16:03 | 显示全部楼层
阿南 发表于 2013-4-18 10:43
1。NAND本来就没有地址,它使用的是块、页的结构,在操作系统中为扇区
2。前面4K也是需要的,拷贝的时候以 ...

原来你就是那本书的作者啊,直到今天才知道,以前听一同学推荐过,这个必须顶



下料电子版的,感觉很好理解,讲的很清楚
阿南 发表于 2013-4-19 09:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

80

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部