主题中讨论的其他器件:UNIFLASH
工具/软件:Code Composer Studio
我遇到了一个问题、即我有一个大型 SYS/BIOS 程序在 CPU1和 CPU2之间拆分全局共享 RAM 的使用。 看起来、下载 CPU2的行为会破坏 CPU1用于 BIOS 堆栈/堆使用的 RAM、大概是全局共享 RAM 之一。
我们已通过相应的输出*。map 文件验证了对于任何全局共享 RAM、CPU1和 CPU2没有意外重叠。 GS12 RAM 中有一小部分特意重叠的 RAM。
我们认为、当 CPU2加载其各自的*。out 文件时、CCS 工具将写入 CPU1 (堆栈)使用的全局共享 RAM。 我们具有以下测试结果、得出了这一结论。
- 加载 CPU1,运行至 main()
- 加载 CPU2、运行至 main()
- 继续在 CPU1上执行
- 在空闲线程的堆栈检查期间观察异常中断()
- 重新启动 CPU1未观察到 ABORT()、启动 CPU2
- 系统正常运行、无中止、一切正常
- 加载 CPU2 (CPU1仍在运行)
- CPU1在空闲线程的堆栈检查期间中止()
加载 CPU2时、CCS 调试工具是否可能会写入我们的一些共享 RAM? 我们如何防止这种情况? 我们是否应该更改 GEL 文件设置?
谢谢、
Stuart