stm32 bootloader(一)

本文分享了作者在STM32上开发Bootloader的过程。利用串口接收数据并写入外部SPI Flash,实现固件升级。文章详细记录了移植SPI Flash驱动及解决过程中遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现在工作一直做的汇编,不想把以前学的c和stm32丢了。于是决定利用下班的时间写个bootloader。整天思路:从串口接收数据,可以利用ESP8266等透传模块和stm32串口连接。在应用层即APP里接受串口来的数据,把数据写到外部spi flash,并且写入相关需要升级的标志。在mcu重启时检测标志位,如果需要升级就读取升级数据,写到内部flash里。升级成功后将需要升级的标志去除。
flash使用W25Q32,关于它的驱动不想重复造轮子,于是移植安福莱的spi flash驱动,先简单验证,驱动是否有问题。由于我的芯片是c8t6系列,所以把例程里的头文件都换了,然后测试的时候。。。。。。
一度怀疑→_→串口有bug,查了一个小时发现不是,然后怀疑spi驱动bug,查了半天确实我移植的地方没注意到,改了还是不行。发现每次在子函数里写一个4k的零时数组老是进入硬件问题中断里,突然意识到堆栈小了,栈内存改到8k,测试通过。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值