[应用相关] 基于国民N32G45x的SD卡IAP升级系统开发纪实

[复制链接]
584|13
 楼主| ead5ah 发表于 2025-5-30 16:49 | 显示全部楼层 |阅读模式
最近看到一项开源活动,要求基于 N32G45x 系列 MCU 实现 通过 SD 卡完成 IAP 升级。正好我手头有块 N32G45x 开发板,加上之前做过一些 BootLoader 项目,就决定参加这次活动,顺便提升下自己。

目标功能如下:

插入 SD 卡后检测是否有固件更新

支持自动升级 & 按键触发升级

升级过程用 LED 和串口反馈状态

设计思路 & 升级流程规划
今天花了点时间思考整体架构:

BootLoader 与 APP 分区:
BootLoader 地址:0x08000000 ~ 0x08007FFF

APP 起始地址:0x08008000

升级流程草图如下:
arduino
复制
编辑
[启动] → 检测 SD 卡 → 检查是否存在 "FW.BIN" 文件 → 校验 → Flash 擦除 → 写入新固件 → 跳转 APP
SD 卡模块调通
这一步是重头戏。我选用的是 SPI 模式访问 SD 卡,文件系统用的是 FatFs(官方例程中已有封装)。

c
复制
编辑
f_mount(&fs, "", 1);         // 挂载
f_open(&file, "FW.BIN", FA_READ);  // 打开固件
调了两个小时,才发现我的 SD 卡格式是 exFAT,不支持!重格式化为 FAT32,成功识别
chenjun89 发表于 2025-6-4 21:59 来自手机 | 显示全部楼层
插入自动检测,自动进入升级进程。
weifeng90 发表于 2025-6-5 08:03 来自手机 | 显示全部楼层
SD或者U盘自动升级都很方便
nuan11nuan 发表于 2025-6-6 12:14 | 显示全部楼层
哈哈是这样的,有些时候会有这种问题出现
hight1light 发表于 2025-6-6 13:19 | 显示全部楼层
这种行为真的不好避免,有些时候忙起来就会容易忘记
suiziq 发表于 2025-6-6 14:33 | 显示全部楼层
对的,一般是FAT32,但是为啥不支持EXFAT真的不理解
hhdhy 发表于 2025-6-6 15:45 | 显示全部楼层
这种一般是不是可以通过仿真来解决?
gra22ce 发表于 2025-6-6 17:08 | 显示全部楼层
在开发过程中,需对系统进行调试,确保各功能模块能正常工作。
eleg34ance 发表于 2025-6-6 18:17 | 显示全部楼层
建议可通过串口打印调试信息、使用LED指示灯等方式来辅助调试。
wamed 发表于 2025-6-6 20:10 | 显示全部楼层
如果格式不对,一般会报错什么信息吗?
gongqijuns 发表于 2025-6-7 09:07 | 显示全部楼层
这种格式问题真的难弄
latera 发表于 2025-6-7 11:03 | 显示全部楼层
学到了,
一切D都好 发表于 2025-6-7 11:08 | 显示全部楼层
那如果不支持exFAT的话,是不是大文件就交互不了了啊?
星星点点didi 发表于 2025-6-7 12:59 | 显示全部楼层
挂载的时候是不是就不行了啊?如果格式不对的话
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

96

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部