- 博客(4)
- 收藏
- 关注
原创 使用Ozone+JLINK调试踩坑(已解决)
在 STM32 开发中,我们经常需要printf来输出调试信息,但在,而直接用却能显示。这是为什么呢?GCC + newlib 的printf下,printf会直接调用fputc下,printf最终调用的是 _writeprintf,这就是打印不出来的原因。
2026-01-05 15:02:21
655
原创 bootloader跳转APP(APP部分)
本文介绍了STM32 Bootloader跳转至APP时的关键处理事项:1. 必须重新开启中断(enableIRQ)并恢复FAULTMASK;2. 正确设置中断向量表偏移(SCB->VTOR指向APP区域)。常见问题包括:中断残留(需在跳转前清除所有中断使能位)和时钟未初始化(APP需包含时钟配置代码)。文中给出了APP主函数中的关键初始化代码示例,包括中断使能、向量表偏移设置等,并强调必须同时修改库函数中的向量表地址。最后提供了UART发送测试信息的具体实现代码。
2025-10-27 20:01:43
1692
原创 SD卡+FATFS+boot loader(STM32F407ZGT6)
本文介绍了基于STM32的SD卡Bootloader实现方案。通过CubeMX配置SDIO接口(4位总线模式,400kHz初始化时钟)和FATFS文件系统(需调整栈空间至8KB),实现从SD卡读取FAT32格式文件。系统启动后先挂载文件系统,查找app.bin文件,擦除Flash应用区(0x08020000开始),分段写入固件数据。关键技术包括:SD卡初始化时序控制、FATFS驱动集成、Flash编程擦除操作,以及安全跳转机制(关闭中断、重置时钟、清除中断标志)。该方案支持通过SD卡更新应用程序,实现了从S
2025-10-27 19:56:58
1798
原创 bootloader与app的跳转(前置知识)
本文介绍了STM32中断向量表及其在Bootloader和APP中的应用要点。中断向量表存储中断服务函数入口地址,位于Flash起始位置,MCU上电后自动读取栈指针和复位中断地址启动。关键点包括:1)Bootloader与APP需各自维护中断向量表,APP启动后需通过VTOR寄存器重映射向量表地址;2)Bootloader跳转前必须关闭中断,避免中断冲突导致程序崩溃;3)Flash空间划分需对齐扇区边界,建议Bootloader区128KB;4)IAP更新推荐使用可直接烧录的bin文件而非hex文件。这些措
2025-10-22 21:44:23
1848
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅