如果需要成片区集中存放多个buffer,可以通过以下方式指定存放到SRAM。
#define __ALIGN_4(addr) (((addr) + 3) & ~(0x03)) //地址4字节对齐
#define TCP_TX_DATA_BUF_ADDR 0x2007C000 //buffer起始地址
#define TCP_TX_DATA_BUF_LEN 1536 //buffer长度
#define TCP_RX_DATA_BUF_ADDR __ALIGN_4(TCP_TX_DATA_BUF_ADDR + TCP_TX_DATA_BUF_LEN)//下一个buffer起始地址
#define TCP_RX_DATA_BUF_LEN 1536 //下一个buffer长度
uint8_t ModbusLocalCmdBuf[TCP_TX_DATA_BUF_LEN] __attribute__((at(TCP_TX_DATA_BUF_ADDR ))); //定义buffre时指定地址
其他__attribute__用法
:
__attribute__((constructor)):
__attribute__((destructor));
__attribute__((constructor)) 在main() 之前执行,__attribute__((destructor)) 在main()执行结束之后执行.例如输出“Hello World!”