“线程:测试”中讨论的其它部件
您好,
我尝试使用 CPU2的 CLA,但在尝试启动调试会话时遇到一些奇怪的错误。 调试会话启动后,我在与 CPU2相关的调试窗格中收到以下错误:“_args_main() at args_main.c (发生错误:试图读取内存末尾的数据时出现0xFFFFFFFE @Data)”。 此外,如果我尝试在 CPU2中运行 main,大多数变量值将解析为类似的错误,声明:“已尝试读取内存结束…”。
我创建了一个简化的“沙盒项目”,在 CPU2上实施 CLA,但没有出现这些错误,似乎运行良好。 我已将该沙盒项目中的代码(主要来自 CPU1,主要来自 CPU2,带有任务的.CLA 文件和 cmd 链接器文件)复制到当前项目中,但仍看到错误发生。 我比较了每个项目的所有项目配置设置和调试配置设置,它们都匹配。 我尝试删除所有工作区和项目文件并重新构建所有文件,但这也不起作用。 但是,由于完全相同的代码在一个项目上有效,但在另一个项目上却不起作用,我认为它可能是某种配置? 看了这篇文章 ,https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/918298/ccs-tms320f28388d-debug-error-attempted-to-read-past-the-end-of-memory-at-0xfffffffffffffffe-data,我尝试将调试 dwarf 版本从3更改为4,并尝试将浮点模式从放松更改为严格,但这两种方式都没有帮助,程序似乎无法在主站点找到入口点。
我使用的是 CCS 版本“10.2.0.00009”,编译器版本“TI v20.2.LTS”。 我不会对.args 部分或 c_args _SYMBOL 执行任何操作。 我附上了有关错误的屏幕截图。 如屏幕截图所示,我通过使用0xA5填充整个堆栈内存空间并重置程序来测试堆栈溢出。 在我运行程序后,我可以看到堆栈没有靠近溢出的位置。 ‘由鼠标指向的地址0xB004是变量“platformCoreConfig”的实际位置,上面的窗口显示该变量为0xFFFFFFF6。
谢谢