打印

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

[复制链接]
1406|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

粉丝