硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1015|回复: 5
收起左侧

[有问必答] 请教一个奇怪的问题,__main出错原因不明

[复制链接]

12

主题

26

回帖

62

积分

初级会员

积分
62
发表于 2021-10-25 13:52:44 | 显示全部楼层 |阅读模式
本帖最后由 szttg 于 2021-10-25 13:56 编辑

一个项目的构成是Bootloader + APP的方式,使用的是F407VET6。
最近发现一个寄怪的问题。在个别的MCU上会发生HardFault,仔细检查错误发生在App中的__main()调用期间。
有时是UsageFault, 有时是BusFault, 具体的地址还不完全一样。更奇怪的是如果注释掉最后几个不用的中断向量(在startup_stm32f40_41xxx.s中),这种错误就不会再发生了。
Bootloader烧写在0x8000000处,占用前面48KB,App烧写在0x800C000处.

具体情况说明如下:
1、在Bootloader运行时,一直使用的HSI做主频,没有用PLL和HSE。初始化了串口1,检查如果没有新App代码,就用如下代码转到App的Reset_Handler()中:

                                JumpAddress = *(__IO uint32_t*) (0x0800C000 + 4);
                                Jump_To_Application = (pFunction) JumpAddress;
                                __set_MSP(*(__IO uint32_t*) IAP_Application_Address);
                                Jump_To_Application();
2、转入App后,SystemInit()函数运行正常,将主时钟设成了PLL, CPU运行在168M.
用调试跟踪的方法,发现错误均发生在 __main()函数调用期间, 共有两种错误:

一是总线错误,显示了具体的错误地址,但每次错误的地址又不完全一样。
      BusFault_Handler(),  SCB->CFSR = 8200
      SCB->BFAR = a7e087c
二是Usage错误,有时是无效的状态, 有时是无效指令。
      UsageFault_Handler(), SCB->CFSR = 10000

      UsageFault_Handler(), SCB->CFSR = 20000










回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
发表于 2021-10-25 15:04:21 | 显示全部楼层
BOOT程序里面什么都不做,直接跳转是否正常
回复

使用道具 举报

12

主题

26

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2021-10-25 18:01:27 | 显示全部楼层
直接跳的话,没有错误出现,这样看很大可能是Bootloader里面的配置影响到了App的初始化。我再找下具体原因。
回复

使用道具 举报

12

主题

26

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2021-10-27 18:21:52 | 显示全部楼层
Bootloader原来用的是HSI做的PLL时钟源,现在改成HSE做PLL的时钟源,什么也不做,直接进App后仍然有BusFault 和UsageFault异常产生。
只有用HSI直接做系统时钟的时候,直接转App,才不会出错。但因为要可能用到spi恢复固件,又不能直接用HSI做系统时钟。
回复

使用道具 举报

12

主题

26

回帖

62

积分

初级会员

积分
62
 楼主| 发表于 2021-10-27 18:23:09 | 显示全部楼层
需要说明的是,此问题只出现在个别的MCU上,绝大部分MCU没有问题。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
发表于 2021-10-28 01:19:15 | 显示全部楼层
szttg 发表于 2021-10-27 18:23
需要说明的是,此问题只出现在个别的MCU上,绝大部分MCU没有问题。

你这个APP也是什么都不做,仅做个简单的IO反转试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-4 22:27 , Processed in 0.165339 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表