ARM本身不支持非对齐数据存取;printf的8对齐是C运行库要求的,和硬件无关。这两个冲突导致裸机Printf没有问题,但是操作系统就必须对任务堆栈做出要求。
因此keil下必须
__align(8) static OS_STK TaskEquipmentStk[TASK_EQUIPMENT_STK_SIZE]; //任务堆栈
IAR下
#pragma data_alignment=8
OS_STK Task1_LED1_Stk[Task1_LED1_Stk_Size];