У меня есть этот код
class IO {
public:
IO(LPC_GPIO_TypeDef* port, int pin) : _pin(pin), _port(port) {};
const int _pin;
LPC_GPIO_TypeDef* const _port;
void test() {
LPC_GPIO0->FIOSET = 0;
}
};
IO led1(LPC_GPIO0, 5);
int main() {
led1.test();
return 0;
}
Когда я скомпилирую его, я получу
text data bss dec hex filename
656 0 8 664 298 lpc17xx
Я ожидаю, что переменные const _port и _pin будут храниться во флэш-памяти, поскольку они помечены как const изначения инициализации известны во время компиляции, но они размещаются в разделе .bss.Есть ли способ заставить их храниться во флеш-памяти?
РЕДАКТИРОВАТЬ: Я пробовал это:
struct IO {
LPC_GPIO_TypeDef* port;
int pin;
void test() const {
//_port->FIOSET = _pin;
LPC_GPIO0->FIOSET = 0;
}
};
const IO led1 = {LPC_GPIO0, 5};
text data bss dec hex filename
520 0 0 520 208 lpc17xx
, кажется, добиваться цели.Почему не работает с классами?