产品进入国产化之第一棒:
今天写了个串口中断程序,开启了DMA 发送完成中断和接口中断,一调试程序就当头给我了一棒——程序卡死了,要看是停在了 B . 后面:
按照之前调试的 STM32 的经验,这个应该是使能中断但是没编写中断服务程序导致的,但是我的程序是写了串口中断服务程序的,有点纳闷呢......
感觉国产化之路不容易啊,冒汗冒汗...
网上搜了有的说是中断服务程序被边编译器视而不见、忽视了,没解决方法,也感觉不对;有往右说是 gd的startup.s中可能会漏中断,导致中断好混乱而卡主,试了,问题真解决了,详细如下:
红框的是我添加的,绿框的是用到的中断,添加红框内的代码之后果然可用。
后面查看了下文件,出问题的文件是 GigaDevice.GD32F10x_DFP.2.0.2.pack 内的 startup_gd32f405.s ,407是没问题的,这个版本时有点老旧, 1.0.0 @2016 的版本了。
分享一下问题的出处(这里分享了好多坑): 中科之旅------GD32 /stm32/mpc5604过程中遇到的问题
链接引用若有问题请告知后删除。
|