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

2837xD sci 烧写flash问题

Other Parts Discussed in Thread:C2000WARE

问题:我自己写的串口烧写程序,通过CCS加载串口烧写,通过secureCRT发送led_flash程序(led_flash程序是使用hex2000.exe工具将coff文件转换为.hex文件,代码中有对hex文件进行解析),将应用程序对应段拷贝到flash中(使用Fapi),拷贝结束后,pc直接跳转0x80000,led_flash程序正常运行。掉电拨码至get mode模式,上电发现led_flash没有运行,连接CCS(没有gel文件)发现跑飞了,此时手动跳转pc指针到0x80000,单步运行,发现在boot28.asm里面跑着跑着就跑飞了,此外有些测试程序时在.c处设置PLL卡死,使用memory browser看下flash里面的数据出来对比挺正常的。请问有什么调试思路吗?

关键:串口烧写程序是在flash中运行的,与测试固化程序所处没有冲突,此外,串口烧写关键代码已拷贝至ram运行。以上都是基于c2000ware开发的。如果串口整体运行在ram中,拷贝结束直接跳转至0x80000,led_flash也不能正常运行,会停在非法中断里。

Minister:

led_flash程序使用CCSload进去,掉电重启是能正常使用的,想TI员工给一些调试思路,不知道自己写的串口烧写哪里存在bug

,

Green Deng:

你好,抱歉有些操作没看懂

Minister 说:我自己写的串口烧写程序

你写的是二次bootloader的程序吗?即工程分为bootloader部分和app部分?

Minister 说:通过CCS加载串口烧写,通过secureCRT发送led_flash程序

是指将bootloader程序用CCS下载到芯片,再由bootloader程序下载led_flash程序?

感觉你描述的情况跟一般的二次引导或者串口烧写都不一样。

,

Minister:

你好,
①没有bootloader程序,普通的led_flash程序直接通过ccs固化至flash中,拨码至get mode,ROM CODE应该就从0x80000引导起来这个led_flash程序。
②现在想脱离CCS固化程序至flash中去,所以写了串口烧写程序,目的是实现与CCS 加载led_flash.out相似的功能

,

Green Deng:

你可以看一下这个帖子介绍的C2000芯片的上电引导过程。
我觉得你的程序中没有bootloader程序的话,程序没办法跳转到flash入口地址执行。而用仿真器的话,是由仿真器引导的,所以可以正常运行。

,

Green Deng:

e2echina.ti.com/…/80655

赞(0)
未经允许不得转载:TI中文支持网 » 2837xD sci 烧写flash问题
分享到: 更多 (0)