之前在学习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},否则编译器会报警告。