你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【IAP更新设备】STM32CubeProgrammer DFU功能实现设备固件升级

[复制链接]
STMCU 发布时间:2020-10-10 09:44
【IAP更新设备】STM32CubeProgrammer DFU功能实现设备固件升级


清单
软件:
16.png
硬件:
17.png


18.png
19.png

一、先用STM32CubeMX生成 dfu工程
        图文演示的usb的配置步骤:
20.png
21.png
22.png
前面1,2项默认。
        第3项USBD_DFU_APP_DEFAULT_ADD (Base Address 0x)是指定dfu_app开始存放代码的flash地址,也是说明dfu代码最大占用空间,不能超过这个大小。stm32f401ccu6内置flash大小是256kb,所以我任性使用48Kb来存dfu代码,实际上生成的简单dfu代码是很小的,几kb量级。具体型号具体设置这个地址。stm32默认flash启动地址是0x08000000,0x0800C000 - 0x08000000 = 0xC000,0xC000 ÷ 1024 = 48kb;

        第4项USBD_DFU_MEDIA Interface   @Internal Flash   /0x08000000/03*016Ka,01*016Kg,01*064Kg,01*128Kg


@之后是特殊的映射描述符(解码标准描述)---------Internal Flash
/0x之后是芯片flash起始地址------------------0x08000000
/后面是描述这个芯片flash的Sector的使用---------03*016Ka,01*016Kg,01*064Kg,01*128Kg


        Sector具体是如何分块的要从数据手册(RM0368)中得知:


        不同型号的stm32,其flash大小可能不同,具体看对应手册。stm32f401ccu6的flash大小是256kb,包含的Sector0-Sector5所以03*016Ka的意思是Sector0-Sector2共48kb,a代表是只可读。01*016Kg,01*064Kg,01*128Kg是分别描述剩下的Sector,g代表可读写。
6.jpg
USB标准通信时钟48MHz
7.jpg
        堆栈Heap,Stack要设置大一点,否则usb设备枚举不成功(出现感叹号或者无法识别设备)
        然后就是生成Keil MDK5工程了,补充:我们的工程应避免中文路径或者空格,否则生成工程失败。


二、修改dfu工程
    具体修改是usbd_dfu_if.c,usbd_dfu_if.h和main.c三个文件。(参考链接在本文最后,若想复制代码到最后链接原文中复制)
    usbd_dfu_if.c中修改如下:
2.png
3.png
4.png
5.png
  pEraseInit.NbSectors = 1;//即可,HAL_FLASHEx_Erase函数会遍历erase的。
6.png
7.png
8.png
9.png
    usbd_dfu_if.h中修改如下:
10.png
    main.c中修改如下:
11.png
        主函数意思是Key_IAP默认上拉,即默认跳转app程序,要通过dfu方式下载程序先将Key_IAP拉低。
        编译成功后用stlink烧录到核心板上。
三、生成dfu_app工程
    万物从点灯开始!
    编写好LED程序后,我们只需修改三处地方就可以了。
12.png
修改app flash启动地址和剩余size大小
        打开system_stm32f4xx.c 文件,修改中断向量偏移量,注释上说明偏移量要是0x200的整数倍。我们修改和app的启动地址偏移一致0xC000
13.png
        生成.hex文件
14.png
        编译工程。
四、用stm32CubeProgrammer下载dfu_app程序
15.png
    下载完成有个error表示无法软重新启动设备,需要重新上电,核心板会自动跳转执行app程序

文章出处: Tkwer望远镜

收藏 评论0 发布时间:2020-10-10 09:44

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版