平台:
设备:F28379
CCS:版本:11.1.0.00011
编译器 TI v21.6.0.LTS
使用构造函数(或在运行到主数据之前初始化的任何数据)调用设置为从 RAM 运行的函数时,我遇到问题。
详细信息:
如果我有一个对象在初始化时调用 run-from -RAM-function,系统将在启动时崩溃。 由于 初始化发生在到达 main 之前,因此该函数尚未移动到 ram。 因此:出现_SYSTEM_POST_Cinit()错误。 代码按预期工作,但没有单独的运行位置。
我想说,这是意料之中的行为,但肯定是不必要的。
- 解决此问题的一种方法是不从 RAM 运行此功能。 如果有多个函数在执行此操作,那么跟踪这一点会有点困难。
- 修复此问题的另一种方法是在 memcpy 函数后执行初始化,但如果数据需要存储,则需要推入堆。 (就我而言是这样)。
我希望周围能有一个优雅的工作。 感谢您的任何指导!
示例(Psuedo)代码:
课堂演示{
私人:
国际一级;
国际 j;
公共:
Geti();
GetJ();
}
演示::Geti (){Return I;}
code_section (“RunFromRam”);
演示::GetJ(){return j;}
演示 A; //演示 A 在使用前实例化。
Const int X= A.Geti ();//按预期工作
const int Y= A.GetJ();//初始化时崩溃