深入剖析 AT32F403A BOOT0 功能异常及有效解决办法

时间:2025-08-14

在电子设备的开发与应用中,微控制器(MCU)的稳定性和兼容性至关重要。AT32F403A 这款微控制器虽然采用了 M4 内核,但具备与 Sxx32F103 兼容的特性,这意味着可以将 cube 生成的 103 程序直接烧录到 403a 上运行,为开发者提供了便利。


近,在一块使用 AT32F403A 的板子上,开发人员设计了具备 ISP 功能的电路,将 ISP 脚连接到一个按键上。其设计目标是,若在上电前按下 ISP 按键,板子就能进入 ISP 状态,从而可通过串口对 MCU 进行程序升级。


然而,在实际使用过程中,却出现了问题。当程序运行时按下 ISP 按键,程序会出现跑飞的情况,这与初的设计不符。通过调试器跟踪发现,按下 ISP 键后,程序会跑到地址 0 开始的位置。


进一步的测试发现,使用 AT32_Work_Bench 生成的工程编写测试程序时,ISP 按键功能正常;但使用 STM32CUBEMX 生成的工程编写测试程序时,就会出现程序跑飞的问题。这表明问题可能并非出在 MCU 的兼容性上,而是软件对中断向量表的设置存在缺陷。


开发人员仔细比对了两个工程中的 startup.C 程序,发现 SCB->VTOR 设置似乎存在问题。经过深入研究,终找到了解决办法:在 Cube 生成的程序中,只需在 SystemInit 文件中修改 SCB->VTOR = FLASH_BASE,就能解决上电后改变 BOOT0 引脚状态导致程序跑飞的问题。

上一篇:全面解析开关电源基本原理及反激、正激类型
下一篇:深度剖析:T/R 组件测试中的三阶互调失真 IMD3

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料