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

【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个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版