打印
[STM32L4]

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

[复制链接]
818|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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,不知道在哪里跳转,那是哪里跳转了啊、、、

使用特权

评论回复
5
初级工程渣| | 2020-7-24 23:42 | 只看该作者
系统异常有可能,可以重来一下试试

使用特权

评论回复
6
chenho| | 2020-7-24 23:42 | 只看该作者
注意下你所选芯片的确支持UART4

使用特权

评论回复
7
初级工程渣| | 2020-7-24 23:42 | 只看该作者
IAP_Init()->IAP_FlashErase()->HAL_FLASH_Unlock()

使用特权

评论回复
8
pengf| | 2020-7-24 23:45 | 只看该作者
注意启动文件的正确性

使用特权

评论回复
9
liuzaiy| | 2020-7-24 23:52 | 只看该作者

好奇怪的问题,确实没想出问题在哪?

使用特权

评论回复
10
kangzj| | 2020-7-24 23:54 | 只看该作者
建议UART4自己用寄存器操作初始化,避免库的干扰。

使用特权

评论回复
11
lium| | 2020-7-24 23:55 | 只看该作者

当时地震了吧

使用特权

评论回复
12
gongche| | 2020-7-24 23:57 | 只看该作者
内部冲突,没有遇到过

使用特权

评论回复
13
香水城| | 2020-7-25 09:59 | 只看该作者
本帖最后由 香水城 于 2020-7-25 10:07 编辑

请说明芯片完整料号为宜
特别注意下启动文件、中断方面的问题

使用特权

评论回复
14
llljh| | 2020-7-25 18:20 | 只看该作者
这种就直接用串口2吧。反正有个能用的,正所谓:避恶扬善,扬长避短。

使用特权

评论回复
15
xxrs|  楼主 | 2020-7-25 18:24 | 只看该作者
谢谢大家,找到原因了。是我把串口4的中断函数给写错了,UART4写成了USART4,结果中断找不到函数跑丢了。

使用特权

评论回复
16
chenjunt| | 2020-7-25 18:34 | 只看该作者
强行征用了存储空间?

使用特权

评论回复
17
zyf部长| | 2020-7-25 18:38 | 只看该作者
没用过,远程不是WIFI吗

使用特权

评论回复
18
yufe| | 2020-7-25 18:41 | 只看该作者
这个怎么会冲突呢 是不是碰巧操作一个地址去了啊

使用特权

评论回复
19
zhanglli| | 2020-7-25 18:45 | 只看该作者
地址误操作吧

使用特权

评论回复
20
happy_10| | 2020-7-25 18:52 | 只看该作者
UART4自己用寄存器操作初始化

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

405

主题

7415

帖子

1

粉丝