STM32使用__attribute__((at(0x????????)))将变量定义到绝对地址

     之前在学习51的时候,遇到使用byte xdata SendBuffer[5]  _at_ 0x8000,表明把数组SendBuffer放到外部RAM的0x8300的位置。STM32是怎么定义的呢?

    查了一下STM32使用uint32_t  SendBuffer[5] __attribute__((at(0X20000000))),注意attribute的前后都是两个下划线"_"组成,此外,at后面的地址要保证是可用的RAM地址。如果要定义在ROM的绝对地址上时,注意要在变量类型前加上const修饰uint8_t  test[5]  __attribute__((at(0X08000100))) = {0x12,0x34,0x56,0x78,0x90},否则编译器会报警告。

你可能感兴趣的:(stm32)