今天使用evmc6424评估板(原TI开发板设计公司spectrumdigital的一款标准TMS320C6424评估板),spectrumdigital美国工程师给了我一个BlinkEVM6424的工程文件,实现程序的boot与LED点灯例子。
工程生成两个.obj文件(Boot.obj,Led.obj),Boot.obj实现程序.text段,.cinit段,.switch段搬运到TMS320C6424的RAM中,最后并实现跳转到_c_int00处。 Led.obj实现LED点灯闪烁。
cmd文件如下:我截屏了一段图片:
BlinkEVM6424工程文件时设计Flashburn软件公司(Software Design Solutions, Inc)开发。我介绍了半天这个工程的目的是,不要怀疑这个工程的错误性。
我想请教几个问题,希望工程师正面回答我的疑问,如有不当请谅解!
问题1:这个工程文件,我的评估板是否引脚必须配置成EMIF直接启动(without AIS格式),不能用AIS格式的EMIF启动。
问题2:生成后的ais转成hex格式如下:
S011000075626C446156696E63692E6865789A
S325420000000100………
………………………………………..
像这样的hex格式我是这样读出数据烧写的,我读hex文件全部依次从0x42000000写入,我这样写的数据正确吗???
S011 //hex文件内容
0x31313053 //需要写入norflash数据内容:S的ASII码是0x53, 0的ASII码0x30, 1的ASII码0x31
1000 //hex文件内容
0x30303031 //需要写入norflash数据内容
………………………
………………………
Tony Tang:
dong wei1 问题1:这个工程文件,我的评估板是否引脚必须配置成EMIF直接启动(without AIS格式),不能用AIS格式的EMIF启动。
从上面cmd文件来看,它的意思是"bootload"段是一个二级boot程序,定位到NOR flash 0x42000000,即从0x42000000开始运行的。所以这里的启动模式肯定不是AIS,而是直接从EMIF flash启动。这里想达到的目的是通过汇编写一个二级boot,与应用程序放在一个工程里,将二级boot通过cmd定位到flash的开始部分,以达到直接启动的目的,二级boot启动后,搬移后面的应用程序再跳到应用程序。
另外,还要看这个.out转成.bin或者hex文件所用的命令是什么,我估计是boot table格式。
而hex,还是bin那属于编码的问题.
cmd文件里关键看run的地址,代码是按run地址link和运行的,load地址无所谓,不参与工程link过程。