DKENNY 发表于 2024-4-1 15:14

基于mbed-os APM32F407IG TINY板载DAPLINK烧录固件更新

本帖最后由 DKENNY 于 2024-4-3 08:52 编辑

#申请原创# @21小跑堂         最近申请到了APM32F407IG-Tiny板,这块开发板做工不错,尤其自带了DAPLINK下载器,外设资源也挺丰富的,很适合做mbedos移植,并且mbedos官方stduio是有自带的DAPLINK烧录固件的,而如果我们要使用mbed studio开发的话,就需要手动改写板载的DAPLINK固件,那么怎么改写呢?这篇文档就简单介绍一下。
1、APM32F407IG 参数   系统       ·Arm® Cortex®-M4F       ·工作主频168MHz       ·内置16个数据流的DMA       ·支持FPU和DSP指令   存储       ·Flash512/1024KB       ·SRAM192+4KB       ·SDRAM2MB   电源管理       ·工作电压 1.8~3.6V       ·支持上电/掉电/欠压复位       ·支持可编程电源电压检测器   定时器       ·16位高级定时器:2       ·16/32位通用定时器:8/2       ·16位基本定时器:2       ·看门狗定时器:2       ·24位系统滴答定时器:1   模拟外设       ·12位ADC:3,通道数:24       ·12位DAC: 1,双通道   I/O       ·多达140个I/O       ·均可映射到外部中断向量   通信外设       ·U(S)ART:6       ·I2C:3       ·SPI(I2S):3(2)       ·USB_OTG:3       ·CAN:2       ·SDIO:1       ·EMMC       ·Ethernet MAC:1EthernetMAC:1
2、DAPLINK概述      • Arm Mbed DAPLink 是一个开源软件项目,支持对在Arm Cortex CPU 上运行的应用软件进行编程和调试。DAPLink通常称为接口固件,在连接到应用MCU的SWD或JTAG端口的辅助MCU上运行。几乎所有开发板上都可以找到这种配置。枚举为USB 复合设备,它在开发计算机和 CPU调试访问端口之间创建桥接。DAPLink 使开发人员能够:      •MSC - 拖放式编程闪存      •CDC - 用于日志、跟踪和终端仿真的虚拟 com 端口      •CMSIS-DAPv2 WinUSB(无驱动程序供应商特定批量)- 符合 CMSIS 标准的调试通道      •CMSIS-DAPv1 HID - 符合CMSIS标准的调试通道      •WebUSB CMSIS-DAP HID - 符合CMSIS标准的调试通道
      它相比于F407自带的DAPLINK,多了拖拽式烧录以及串口集成这两个功能。
3、固件更新   

    在此之前,我们需要确保我们电脑已经安装好了git以及python(python3.7及以上)环境,这里就不在过多赘述git以及python的安装了。下面是git和python的官网网址,可去官网自行下载。(这里我只介绍了windows上固件更新的流程)
    git官网:https://git-scm.com
    python官网:https://www.python.org

3.1 固件所需资源
    1、APM32F407IG固件更新hex文件:https://github.com/GeehySemi/mbed-os-DAPLINK-Hardware    2、DAPLINK源码获取:https://github.com/ARMmbed/DAPLink    3、一根USB线,用于连接PC端与开发板    4、两根杜邦线,用于连接 APM32 LINK 与 F407 开发板的串口    5、用于固件烧录的工具(jlink等等)
3.2 固件更新步骤3.2.1 参考APM32 LINK原理图,使用烧录器与开发板连接




我们接线,应该接靠近USB接口的那一堆排针,这个才是LINK的固件烧录接口,而上面的一排接口是APM32F407IG开发板的烧录接口。

3.2.2 接好线之后,打开烧写工具,我这里使用的是jflash,打开jflash工具,创建新工程

3.2.3 搜索芯片选项,选择APM32F103CB


3.2.4 修改Speed,改为200KHz



3.2.5 点击"Connect"



3.2.6 把准备好的bl.bin文件拖入jflash



3.2.7 确认地址是0x08000000,点击OK



3.2.8 擦除原来的固件



3.2.9 下载新的固件



3.2.10 运行新的固件



3.2.11 用一根USB把PC和开发板连接,电脑就会识别出一个磁盘


3.2.12 把准备的固件更新的hex文件直接拖拽至磁盘



磁盘更改为DAPLINK则说明固件更新成功。

并且可以点击查看里面的信息。



3.3 验证固件更新
    我们可以从Geehy官网下载APM32F4系列官方SDK来验证固件是否更新成功。

3.3.1 打开ADC_AnalogWindowWatchdog,点击魔术棒,配置编译生成hex文件。
   


3.3.2 把生成的hex文件拖拽到生成的PC识别的磁盘中,可查看磁盘里面的信息,若没有FAIL.txt,则程序成功烧录。
   

3.3.3 把DAPLINK的RX、TX接口分别与PA9、PA10连接。打开串口调试助手,配置波特率为115200,复位开发板,串口若成功打印数据,则说明固件更新成功。



    以上就是本次APM32F407IG-Tiny的DAPLINK固件更新的方法,如有问题,欢迎各位讨论交流。













guijial511 发表于 2024-4-12 07:57

居然还有2MB SDRAM

DKENNY 发表于 2024-4-13 12:02

本贴同步一个视频链接,如果还是不能理解怎么更新固件的小伙伴,可去这个视频里查看哦:https://www.bilibili.com/video/BV1xx421m7qR/?vd_source=8bc025abd9ffee779c078fc851736fcf

xionghaoyun 发表于 2024-4-11 16:56

这么复杂 APM32F407IG开发板打扰了

OKAKAKO 发表于 2024-4-15 19:47

APM32F407IG-Tiny板,这块开发板做工不错,尤其自带了DAPLINK下载器

szt1993 发表于 2024-4-16 20:16

手把手更新APM32F407IG TINY板载DAPLINK烧录固件,过程极为详细

[鑫森淼焱垚] 发表于 2024-4-19 14:19

文章内容很详细,手把手。
点赞。{:victory:}

qiangtech 发表于 2024-4-25 15:30

烧录这个DAP LINK的固件后,不能使用CMSIS-DAP调试了吗

DKENNY 发表于 2024-4-25 16:19

qiangtech 发表于 2024-4-25 15:30
烧录这个DAP LINK的固件后,不能使用CMSIS-DAP调试了吗

可以使用CMSIS-DAP调试,只是相比较原来的板载固件多了一个串口集成和拖拽式烧录功能,相当于做了一个功能拓展,CMSIS-DAP的原来基本功能依旧是可以使用的

qiangtech 发表于 2024-4-25 19:35

DKENNY 发表于 2024-4-25 16:19
可以使用CMSIS-DAP调试,只是相比较原来的板载固件多了一个串口集成和拖拽式烧录功能,相当于做了一个功 ...

但是我的KEIL的DEBUG里面选CMSIS-DAP调试器,却没有发现调试器呢?设备管理器里面是有一个DAPLINK的。

DKENNY 发表于 2024-4-26 08:49

qiangtech 发表于 2024-4-25 19:35
但是我的KEIL的DEBUG里面选CMSIS-DAP调试器,却没有发现调试器呢?设备管理器里面是有一个DAPLINK的。 ...
你的固件更新后,识别的磁盘的序列号是1801开头的吗?


正常来说,在接上USB线后,选择Debug,出现的序列号是跟details.txt文件对应的。如果没有识别出磁盘,或者序列号不对,检查一下固件更新的哪一步遗漏或者出错了,要不重新下载一次固件看看。我这里是可以正常识别的。

qiangtech 发表于 2024-4-26 09:11

本帖最后由 qiangtech 于 2024-4-26 09:21 编辑

DKENNY 发表于 2024-4-26 08:49
你的固件更新后,识别的磁盘的序列号是1801开头的吗?



DETAILS.TXT里面是相同的。


就是KEIL DEBUG 的CMSIS_DAP里面找不到调试器。


设备管理器看到一个DAPLINK和一个串口。




可能是驱动的问题?

qiangtech 发表于 2024-4-26 09:35

在设备管理器中删除掉一个,就可以正常识别了。



页: [1]
查看完整版本: 基于mbed-os APM32F407IG TINY板载DAPLINK烧录固件更新