TI中文支持网
TI专业的中文技术问题搜集分享网站

自己编写C6747 BOOT LOADER遇到的问题

我的板子上在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引导感觉可能会有点慢

赞(0)
未经允许不得转载:TI中文支持网 » 自己编写C6747 BOOT LOADER遇到的问题
分享到: 更多 (0)