我的板子上在CS2上挂了个NOR FLASH,想用NONE AIS BOOT的方式引导,在NOR中制作一个二级BOOT LOADER。
查找了网上的资料,目前用C单独写了一个工程。在将生成的.OUT文件用HEX6X转为intel HEX格式时,对以下内容不是太明白:
转换时使用的CMD文件指定了ROM起始地址和SECTION段,比如.text .cinit段,请问这些段在FLASH中如何放置,如果是顺序放置,加载时怎么将这些段放到RAM中合适的位置?我是否可以将ROM起始地址从0开始定义?
在SPRU186w文档中,说到HEX6X可以自己建立一个BOOT TABLE,我是否要在程序中额外处理这个TABLE,还是说会自动生成段拷贝的程序?或者说我需要自己在程序的CMD文件中指定LOAD和RUN地址,然后自己用汇编写一个拷贝函数?
上图中说的entry_point 是不是说BOOT LOADER执行完后,程序跳转的地址?上述地址是不是程序运行时相对于DSP地址空间的地址?
对这几点很困惑,希望能帮忙解答下,非常感谢!我觉得TI在这种文档支持上讲的非常笼统,而且也没有对应的例子,让人费解。
Tony Tang:
WEI LIU转换时使用的CMD文件指定了ROM起始地址和SECTION段,比如.text .cinit段,请问这些段在FLASH中如何放置,如果是顺序放置,加载时怎么将这些段放到RAM中合适的位置?我是否可以将ROM起始地址从0开始定义?
NONE AIS BOOT有两种模式,legacy NOR boot和Direct NOR boot,你要的是哪种。
另外,看一下下面的命令,直接转成binary..
/* boot image command file-b-image-zero-fill 0x0-o appImage.binROMS{IRAM: org = 0x60000000, len=0x4000 //这一段无所谓 }
WEI LIU:
回复 Tony Tang:
谢谢,我先测试一下!这个转换的意思是可以直接生成内存镜像的意思吧,也就是我可以直接读取生成的文件然后从0地址开始写入到NOR FLASH中?
WEI LIU:
回复 Shine:
这个地址上的文章讲的比较清楚,按上面的方法改了。
WEI LIU:
回复 Tony Tang:
我还是用legacy nor boot吧,直接外部RAM引导感觉可能会有点慢