基于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固件更新的方法,如有问题,欢迎各位讨论交流。
居然还有2MB SDRAM 本贴同步一个视频链接,如果还是不能理解怎么更新固件的小伙伴,可去这个视频里查看哦:https://www.bilibili.com/video/BV1xx421m7qR/?vd_source=8bc025abd9ffee779c078fc851736fcf 这么复杂 APM32F407IG开发板打扰了 APM32F407IG-Tiny板,这块开发板做工不错,尤其自带了DAPLINK下载器 手把手更新APM32F407IG TINY板载DAPLINK烧录固件,过程极为详细 文章内容很详细,手把手。
点赞。{:victory:} 烧录这个DAP LINK的固件后,不能使用CMSIS-DAP调试了吗 qiangtech 发表于 2024-4-25 15:30
烧录这个DAP LINK的固件后,不能使用CMSIS-DAP调试了吗
可以使用CMSIS-DAP调试,只是相比较原来的板载固件多了一个串口集成和拖拽式烧录功能,相当于做了一个功能拓展,CMSIS-DAP的原来基本功能依旧是可以使用的 DKENNY 发表于 2024-4-25 16:19
可以使用CMSIS-DAP调试,只是相比较原来的板载固件多了一个串口集成和拖拽式烧录功能,相当于做了一个功 ...
但是我的KEIL的DEBUG里面选CMSIS-DAP调试器,却没有发现调试器呢?设备管理器里面是有一个DAPLINK的。 qiangtech 发表于 2024-4-25 19:35
但是我的KEIL的DEBUG里面选CMSIS-DAP调试器,却没有发现调试器呢?设备管理器里面是有一个DAPLINK的。 ...
你的固件更新后,识别的磁盘的序列号是1801开头的吗?
正常来说,在接上USB线后,选择Debug,出现的序列号是跟details.txt文件对应的。如果没有识别出磁盘,或者序列号不对,检查一下固件更新的哪一步遗漏或者出错了,要不重新下载一次固件看看。我这里是可以正常识别的。
本帖最后由 qiangtech 于 2024-4-26 09:21 编辑
DKENNY 发表于 2024-4-26 08:49
你的固件更新后,识别的磁盘的序列号是1801开头的吗?
DETAILS.TXT里面是相同的。
就是KEIL DEBUG 的CMSIS_DAP里面找不到调试器。
设备管理器看到一个DAPLINK和一个串口。
可能是驱动的问题?
在设备管理器中删除掉一个,就可以正常识别了。
页:
[1]