我先说说我问题产生的背景,我是在编译ucosiii的时候出现了这种问题,在移植的过程中环境是从keil5到embitz,不用纠结embitz是什么软件,embitz采用的编译器是arm-eabi-gcc
(以下为转载,原文链接:https://blog.csdn.net/qq_21856675/article/details/84037009)
不知道为什么在keil下面运行好好的代码跑到arm-eabi-gcc下面就会出问题,找了一圈大部分都是在讲重定义和include先后的问题。但是实际上只需要换成__attribute__ ((aligned (4)));
比如
'''
__align(4) uint8_t Tx_Buff[ETH_TX_BUF_SIZE*ETH_TXBUFNB];
'''
换成
'''
uint8_t Tx_Buff[ETH_TX_BUF_SIZE*ETH_TXBUFNB] __attribute__ ((aligned (4)));;
'''