小编wal*_*mis的帖子

ARM C++ - 如何将常量成员放入闪存中?

我有这个代码

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;
}
Run Code Online (Sandbox Code Playgroud)

当我编译它时,我得到

text       data     bss     dec     hex  filename
656        0          8     664     298  lpc17xx
Run Code Online (Sandbox Code Playgroud)

我希望 const _port 和 _pin 变量存储在闪存中,因为它们被标记为 const 并且初始化值在编译时是已知的,但它们在 .bss 部分中分配。有没有办法让它们驻留在闪存中?

编辑:我试过这个:

struct IO {

    LPC_GPIO_TypeDef* port;
    int pin;

    void test() const {
        //_port->FIOSET = _pin;

        LPC_GPIO0->FIOSET = 0;
    }

}; …
Run Code Online (Sandbox Code Playgroud)

c++ embedded constants

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

标签 统计

c++ ×1

constants ×1

embedded ×1