小编Ram*_*tra的帖子

如何将`__ramfunc` instrinsic应用于构造函数?

我需要将所有代码都放在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)

有人知道该怎么做吗?

c++ embedded constructor iar

5
推荐指数
1
解决办法
98
查看次数

标签 统计

c++ ×1

constructor ×1

embedded ×1

iar ×1