This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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也不能正常运行,会停在非法中断里。

  • led_flash程序使用CCSload进去,掉电重启是能正常使用的,想TI员工给一些调试思路,不知道自己写的串口烧写哪里存在bug
  • 你好,抱歉有些操作没看懂

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

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

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

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

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

  • 你好,
    ①没有bootloader程序,普通的led_flash程序直接通过ccs固化至flash中,拨码至get mode,ROM CODE应该就从0x80000引导起来这个led_flash程序。
    ②现在想脱离CCS固化程序至flash中去,所以写了串口烧写程序,目的是实现与CCS 加载led_flash.out相似的功能
  • 你可以看一下这个帖子介绍的C2000芯片的上电引导过程。
    我觉得你的程序中没有bootloader程序的话,程序没办法跳转到flash入口地址执行。而用仿真器的话,是由仿真器引导的,所以可以正常运行。