继续
无意中看到一个4510B 的bootload介绍(作者杜云海)写的非常精彩。
在其中了解了一个东西,在编译后生成的iamge里, 如何确定RW的位置呢?
因为不管是用ADS还是用MDK,生成image都是有规则的,比如一定要按照顺序 RO,RW,ZI,根据RO_BASE和RO_LENGTH,其实就可以知道RW_BASE in nand了。
在进行nandcopy时就知道copy的源地址啦。。。而RW的运行域地址,可以是在分散加载文件里面指定的。就是这么简单?自己笨了好久。
今天试了下 DNW , SFJ2410(这个挺好,不过只能在并口下玩),回头可以研究一下这两者的代码。不知道sfj2410烧录的时候,也没有做坏块管理,没有做的话,可能会出问题的。比如提供的vivi(晚上回去用MDK烧录工具试一下能否运行哈哈 ),大小为85KB,满打满算的话需要14个左右的block来,这个既然能正确启动linux内核,应该说明sfj2410烧录nand时做了坏块区分的,而后vivi本身也有坏块的处理。两者结合运行才没有问题。
NND不能拖了,今晚回去必须首先看MMU(正在看的过程中,有难度啊,真的是博大精深)
NND,使用MDK下载bin文件,发现下载时工具只认axf文件。。。很奇怪,为什么不是直接下载bin的呢?那生成bin有什么用???
不过暂时就不能验证VIVI用MDK烧录工具的烧录运行情况了。。。(除非在MDK环境下编译一把VIVI)
看来只好采用在ADS下加载bin文件的方式来做了。
2010/01/21
1. 晚上回去试一下ADS下加载bin文件,直接在ADS或者MDK下无法用fopen等操作了(不知道MDK的脚本机制能不能load file到指定位置)
尝试1.把vivi改名为vivi.axf放到out目录下,不要编译直接点击download报错,Erase Skipped,这说明原先正常生成的axf文件里面有些特殊的信息会反馈给MDK中nandlash烧写程式
我现在直接裸把vivi改成vivi.axf,导致烧写失败
2410学习笔记 07 (未整理,但对新手肯定有用)
最新推荐文章于 2024-07-29 23:55:20 发布