Я компилировал для LPC1114, небольшой цели ARM (на самом деле Cortex). ОЗУ гораздо более ограничено, чем ПЗУ. Я использую последний компилятор Mentor (CodeBenchLite) GCC (GCC 4.6.3). У меня есть некоторые постоянные объекты, которые я хотел бы иметь в ПЗУ. Насколько я понимаю, объект fx в приведенном ниже коде должен оказаться в ROM (коде), но вместо этого он помещается в DATA.
class flop {
public:
int x;
constexpr flop( int x ) : x(x){}
};
extern constexpr flop ffx( 1 );
Как мне убедить компилятор предварительно вычислить объект и поместить его в ПЗУ?
или, может быть, я должен спросить:
==================================== ===
Эта запись bugzilla c++/49673, по-видимому, указывает на то, что моя проблема является известной, вероятно, исправленной в GCC 4.7. К сожалению, я предпочитаю использовать встроенный Mentor/CodeSourcery, который все еще находится на уровне 4.6.3. Так что я думаю, что на данный момент я застрял с ошибкой. :(