我需要将所有代码都放在ram中(我正在编写Flash)。我正在使用IAR 7.80,并且所有__ramfunc功能都可以在每个函数中使用内在函数,但不适用于C ++构造函数。
例如,我有以下课程:
class Os_Timer {
private:
os_tmrcnt_t tmr;
public:
__ramfunc Os_Timer() { reset(); }
__ramfunc void reset() { os_TimerStart( &tmr ); }
};
Run Code Online (Sandbox Code Playgroud)
我还没有找到在ram中定义构造函数Os_Timer的方法。编译器抱怨
期望一个标识符
和
不允许对象属性
在构造函数行上。
IAR手册指出,__ramfunc必须将放在返回值之前,但构造函数没有返回值。
我尝试不成功地强迫这种__ramfunc行为:
_Pragma("location=\"section .textrw\"")
Run Code Online (Sandbox Code Playgroud)
和
_Pragma("location=\"RAM_region\"")
Run Code Online (Sandbox Code Playgroud)
有人知道该怎么做吗?