工具/软件:TI C/C++编译器
您好,
客户在通过绝对地址调用功能时遇到一个非法中断问题。 对此问题有何评论? 非常感谢。
它们的代码A/B/C保存在三个不同的闪存地址中。
A是具有C2000外设驱动器的入口点。
B是电机控制代码,具有多种功能。
C是应用程序代码,具有多个函数。
创建了两个CCS项目,A+B为项目1,C为项目2。 或A+C为项目1,B为项目2。 它们单独编程为闪存。 编译器既是6.2 ,又是SAVE,优化除外。
系统复位后,A将通过绝对地址从B和C调用功能。
问题如下所示:
| 优化 | |||||
| 项目1. | A+B | O3. | A成功调用B的函数 | ||
| 项目2. | C | O3. | |||
| 项目1. | A+C | O3. | A调用B的函数,发生非法中断 | ||
| 项目2. | B | 禁用 | |||
| 项目1. | A+C | 禁用 | A调用B的函数,发生非法中断 | ||
| 项目2. | B | 禁用 | |||
| 项目1. | A+B | 禁用 | A成功调用B的函数 | ||
| 项目2. | C | 禁用 | |||
我想,如果这是因为长支路。
他们使用这种结构2年。 这是第一次出现此问题。 代码B中实施了几项新的改进
Br,Jordan