本帖最后由 book1024 于 2021-8-16 11:25 编辑
调用函数: void USART_Init(USART_Type* USARTx, USART_InitType* USART_InitStruct),初始化串时,执行到语句:tmpreg = ((uint64_t)apbclock * 1000 / 16 / USART_InitStruct->USART_BaudRate);,之后程序就死掉了。
MCU: AT32F421C8T7
编译器:arm-none-eabi-gcc
调试:j-link,swd,arm-none-eabi-gdb
单独测试了一下:
u64 apbclock = 120000000 * 1000;
u32 baud_rate = 11520;
u32 tmpreg = 0;
apbclock /= 16;
tmpreg = apbclock / baud_rate;
执行到语句: apbclock /=16;,之后程序死掉了。
然后临时安装IAR,编译、调试,没有出现这个问题,由于版权原因,后续不能用IAR开发。
|