CCS调试遇到:Break at address “0x3fbd92” with no debug information available...问题

之前师妹在弄ecc有些问题问过我,然后帮她找到在哪里可以显示ecc的内容以后就没再想过这个事情。前几天导师说我让我在毕业前把ecc给弄了,所以找来TI给的例程代码来看了看。

因为老头懒得下载control suite,就想直接让我们给他一个能运行的project,所以我先得把例程里面涉及到的文件都给复制到了project里面。结果结果编译没有问题,但是一上板子运行就出现Break at address “0x3fbd92” with no debug information available的提示。开始查阅资料,有说是因为没有选择flash运行导致的,因为在TI提供的例程里,在烧录的时候显示的是FLASH和RAM,但是在我建立的新project里面,它显示的是Debug和Release。我开始以为是这里的问题,但是后面看解释说Debug会根据代码里的设定来选择在哪里烧录。所以排除这个解决方法。

然后我想起来之前在csdn上查到一个类似问题的解决方法:F280049C FLASH编程报错Break at address “0x3fbd92“ with no debug information available解决方案_no source available for0x3fbd92-优快云博客

里面提到了两点:1.添加FLASH宏定义,2.在主程序的第一条指令前添加memcpy函数。

首先需要在工程中添加预定义符号_FLASH,右键项目名称选择Properties,选择其中的C2000 Compiler -> Predefined Symbols选项,点击上面的加号添加相应的名称:

然后找到Sysctrl.c文件,在我使用的例程里面它叫sysctl.c,感觉就是找关于system control的文件,把memcpy函数添加进去。

在文件开头添加:

#ifndef _FLASH
#define _FLASH
#endif

然后再主程序中添加:

memcpy((void*)&RamfuncsRunStart, (void*)&RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);

该函数中的内容可能需要在程序前定义:

extern unsigned int RamfuncsLoadStart;
extern unsigned int RamfuncsRunStart;
extern unsigned int RamfuncsLoadSize;

然后可能还需要在.cmd文件中添加相应的内存:

GROUP
{
    .TI.ramfunc
    { -l F021_API_F28004x_FPU32.lib }
} LOAD = FLASH_BANK0_SEC1,
  RUN = RAMLS03,
  LOAD_START(_RamfuncsLoadStart),
  LOAD_SIZE(_RamfuncsLoadSize),
  LOAD_END(_RamfuncsLoadEnd),
  RUN_START(_RamfuncsRunStart),
  RUN_SIZE(_RamfuncsRunSize),
  RUN_END(_RamfuncsRunEnd),
  PAGE = 0, ALIGN(4)

这部分已经在我使用的例程的命令文件中出现,因此就不需要再添加了。

对sysctl.c文件进行修改后,再次运行程序不再出现Break at address  “0x3fbd92” with no debug information available的问题。

目前对这个代码还没有具体的了解,但是感觉跑起来有问题,后面继续记录吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值