Мне нужно поместить весь мой код в оперативную память (я пишу флеш).Я использую IAR 7.80, и все прекрасно работает с присущим __ramfunc
свойством для каждой функции, но не для конструкторов C ++.
Например, у меня есть следующий класс:
class Os_Timer {
private:
os_tmrcnt_t tmr;
public:
__ramfunc Os_Timer() { reset(); }
__ramfunc void reset() { os_TimerStart( &tmr ); }
};
IЯ не нашел способ определить конструктор Os_Timer в оперативной памяти.Компилятор жалуется
на ожидаемый идентификатор
и
атрибут объекта не разрешен
в конструктореline.
В руководстве IAR сказано, что __ramfunc
необходимо поместить перед возвращаемым значением, но конструктор не имеет возвращаемого значения.
Я безуспешно пытался форсировать__ramfunc
поведение:
_Pragma("location=\"section .textrw\"")
и
_Pragma("location=\"RAM_region\"")
Кто-то знает, как это сделать?