亲爱的ti大神们:
用28377d开发了app和bootload两个工程,分别存储在不同的flash扇区,但每回都要向产品里下载两回.out文件。为了省时省力,有没有将两个工程的.out文件合并成一个.out文件的方法。
1、该地址 http://processors.wiki.ti.com/index.php/Combining_executable_files 的官方说明有.out合并成.obj的方法,但不明白具体操作是怎样的,用到的The hex converter工具是什么?hex2000 boot.out app.out –section_name_prefix="data" –load_image -o ROM_simple.obj指令放在哪里执行?
2、生成.obj文件之后,要如何生成.out文件?要自己编写cmd文件,再编译生成.out文件吗?
3、还有没有其他的合并方法呢?
Eric Ma:
我的一个思路是,
可以将其中的一个.out文件通过CCS转换成hex中的数据,然后把数据做成表格,如常量数据放在另一个工程里面,就可以生成统一的一个.out文件。
Eric.
user5105134:
回复 Eric Ma:
Eric Ma :您好,不太明白这种实现方法,"如常量数据放在另一个工程里面",是如何操作的呢?只需要右键add file..加载到工程里就行了吗?但表格是excel格式的,如何一起编译呢,您有没有具体操作的例程,不胜感激!
Eric Ma:
回复 user5105134:
做成一个常量的table放在头文件或是源文件里面。然后把这部分常量的表格定位在固定的地址,映射到你要的flash空间里面去。跟变量定义到某些地址一个道理。
没有具体操作的例程,这个只是思路啦,这个只是思路。
Eric
user5105134:
回复 jokerhuang:
感谢您的回复,受益匪浅,但公司默认还是使用ccs软件和xds200下载.out文件,但您的方法也不失为一个好办法,有很多学习借鉴之处。 最近发现用UniFlash可以同时烧录两个.out文件(实验证明两个工程的存储空间互不干扰的话,生成的.out文件可以同时load),所以不合并也可以解决app和bootload下载两次的问题了。 我的bootload文件之前使用比特率9600,烧写600多k的.txt二进制文件需要五分钟,后来提高波特率到115200,目前40多秒可完成烧录,但再继续提高比特率也不能缩短时间了。
Eruroraito:
您好,我目前也在做28377D的bootloader程序,您的bootloader工程可以借鉴一下吗?
user5105134:
回复 Eruroraito:
bootloader程序可以参考官方例程,在此基础上修改,路径为:C:\ti\c2000\C2000Ware_2_01_00_00\device_support\f2837xd\examples\dual\F2837xD_sci_flash_kernels\cpu01
Eruroraito:
回复 user5105134:
好的,谢谢