[STM32L4] uart4与内部flash操作怎么会冲突

[复制链接]
 楼主| xxrs 发表于 2020-7-24 23:33 | 显示全部楼层 |阅读模式
实现wifi远程升级功能,因此会用串口控制wifi模块,并且会执行内部flash的擦写。整个工程都是仿照IAP的示例写的,网上很多,就不多说了。第一次测试的时候wifi使用的USART2,无任何问题。等真正制版的时候换成了UART4接口,就出问题了。
     首先UART4本身是没问题的,串口和wifi模块都验证过了,但执行原来的远程升级程序是,先初始化UART4,再执行flash操作,执行到IAP_Init()->IAP_FlashErase()->HAL_FLASH_Unlock()函数就会出现异常,程序跳转到.s文件的这里,死掉

                B       .

                ENDP

                ALIGN
先执行flash操作,再执行UART4,不知道在哪里跳转的,最后还是会死到上边说的那里。这还仅仅是初始化,没有真正运行升级过程呢。换回UASRT2无任何问题,检查好多遍,看不出什么问题。
wangzsa 发表于 2020-7-24 23:36 | 显示全部楼层
可能引发了系统异常
huwr 发表于 2020-7-24 23:39 | 显示全部楼层
最好用仿真器跟踪定位问题
初级工程渣 发表于 2020-7-24 23:41 | 显示全部楼层
先执行flash操作,再执行UART4,不知道在哪里跳转,那是哪里跳转了啊、、、
初级工程渣 发表于 2020-7-24 23:42 | 显示全部楼层
系统异常有可能,可以重来一下试试
chenho 发表于 2020-7-24 23:42 | 显示全部楼层
注意下你所选芯片的确支持UART4
初级工程渣 发表于 2020-7-24 23:42 | 显示全部楼层
IAP_Init()->IAP_FlashErase()->HAL_FLASH_Unlock()
pengf 发表于 2020-7-24 23:45 | 显示全部楼层
注意启动文件的正确性
liuzaiy 发表于 2020-7-24 23:52 | 显示全部楼层

好奇怪的问题,确实没想出问题在哪?
kangzj 发表于 2020-7-24 23:54 | 显示全部楼层
建议UART4自己用寄存器操作初始化,避免库的干扰。
lium 发表于 2020-7-24 23:55 | 显示全部楼层

当时地震了吧
gongche 发表于 2020-7-24 23:57 | 显示全部楼层
内部冲突,没有遇到过
香水城 发表于 2020-7-25 09:59 | 显示全部楼层
本帖最后由 香水城 于 2020-7-25 10:07 编辑

请说明芯片完整料号为宜
特别注意下启动文件、中断方面的问题
llljh 发表于 2020-7-25 18:20 | 显示全部楼层
这种就直接用串口2吧。反正有个能用的,正所谓:避恶扬善,扬长避短。
 楼主| xxrs 发表于 2020-7-25 18:24 | 显示全部楼层
谢谢大家,找到原因了。是我把串口4的中断函数给写错了,UART4写成了USART4,结果中断找不到函数跑丢了。
chenjunt 发表于 2020-7-25 18:34 | 显示全部楼层
强行征用了存储空间?
zyf部长 发表于 2020-7-25 18:38 | 显示全部楼层
没用过,远程不是WIFI吗
yufe 发表于 2020-7-25 18:41 | 显示全部楼层
这个怎么会冲突呢 是不是碰巧操作一个地址去了啊
zhanglli 发表于 2020-7-25 18:45 | 显示全部楼层
地址误操作吧
happy_10 发表于 2020-7-25 18:52 | 显示全部楼层
UART4自己用寄存器操作初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部