【经验】单独下载可执行文件到灵动MM32F5系列微控制器的几种简易方法
使用Keil MDK或者IAR等使用图形界面的开发环境,可以在图形界面环境下编译源码工程,并下载编译生成的可执行文件到目标微控制器中。但若使用ARMGCC等命令行工具链,需要额外的下载工具,才能将编译生成的可执行文件下载到目标微控制器中。
若使用SEGGER J-Link调试器,可以搭配SEGGER Ozone软件或者J-FLASH、J-FLASH Lite实现单独下载的功能。但J-Link调试器价格昂贵,并且老版本的J-LINK调试器无法支持更新的微控制设备。相比而言,开源的DAP-Link方案更接地气。可以适配DAP-Link的命令行工具有openocd、pyocd等,但这些工具对某些具体微控制器设备的兼容性并不是很好,时不时会出现不识别设备或者连接不上的情况,需要开发者自行调试才能确保它们能够正常工作。同时,基于命令的操作方式,对于已经习惯了在图形界面环境下调试的开发者而言,也不是很友好。不过,若是需要搭建持续集成和自动化测试系统,这些基于命令行的工具仍是不可或缺的。
对于仅专注于微控制器端的软件开发者而言,希望能够以最简单的方式解决单独下载可执行文件的问题。本文将以下载MicroPython固件文件到灵动MM32F5微控制器为例,总结了几种简单易用的方法,专门针对使用DAP-Link调试器的情况,通过常用图形界面工具,实现单独下载可执行文件的功能。
PS:针对MM32F5微控制器,不得不使用本文描述方法的原因,还在于一些主观因素:
笔者手头上的J-Link v8不再支持STAR-MC1(Arm Cortex-M33)内核
笔者使用pyocd+DAP-Link的组合,经过一段时间的调试,仍无法实现连接到MM32F5微控制器
使用DAP-Link在Keil中可以调试MM32F5微控制器
使用这些工具可以识别常用的可执行文件类型,例如bin、hex、axf、elf、s19等。用户可根据需要尝试。
借用Keil工程
Keil IDE实现下载功能的部分,相对于编译过程,在内部应该也是一个独立的小工具,这是笔者得以实现用Keil下载程序的关键。Keil没有将内部的下载工具独立地开放出来,因此,笔者不得不创建一个不包含任何源码的空工程,跳过编译部分,仅使用其中下载程序的功能。具体操作步骤如下:
1、启动Keil IDE,创建新工程,并选定设备类型为目标微控制器设备。
笔者实际在本机的`d:\_worksapce\keil\mm32f5`目录下,创建了`mm32f5.uvprojx`工程文件。
2、在`options` -> `Output` 选项卡中,指定将要下载的可执行文件的路径。
在样例中,笔者在`mm32f5`目录下,存放了`micropython.hex`文件。点击`Select Folder for Objects...`按钮,指定为`mm32f5`目录,然后在`Name of Executable:`对应的文本框中输入了`micropython.hex`文件名。
从字面上看,这里指定的是编译输出的路径和文件名,但实际上,下载过程是同编译过程绑定的,编译过程生成的可执行文件,将被Keil自动作为下载过程的输入文件。
3、在主窗口的工具栏中,单击LOAD按钮,启动下载。
通过`Build Output`窗口可以查看到,当前已经擦除、下载并且校验成功。
4、使用Keil IDE也可以实现命令行式的下载操作。
此时,可将使用Keil IDE创建的工程视作`uv4.exe`程序的配置文件,例如,在之前创建的`mm32f5.uvprojx`文件中,编辑`OutputDirectory`和`OutputName`字段,指定将要下载程序的路径和文件名。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
<SchemaVersion>2.1</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Targets>
<Target>
<TargetName>Target 1</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>MM32F5277E9P</Device>
<Vendor>MindMotion</Vendor>
<PackID>MindMotion.MM32F5277E_DFP.0.0.3</PackID>
<PackURL>http://www.mindmotion.com.cn/Download/MDK_KEIL/</PackURL>
<Cpu>IRAM(0x30000000,0x1C000) IROM(0x08000000,0x40000) CPUTYPE("Cortex-M33") CLOCK(12000000) ELITTLE</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll>UL2V8M(-S0 -C0 -P0 -FD30000000 -FC1000 -FN1 -FF0MM32F5270_256 -FS08000000 -FL040000 -FP0($$Device:MM32F5277E9P$Flash\MM32F5270_256.FLM))</FlashDriverDll>
...
<OutputDirectory>.\</OutputDirectory>
<OutputName>micropython.hex</OutputName>
...
然后在Windows的命令行界面,输入调用Keil下载代码的命令:
uv4.exe -f "d:\_workspace\keil\mm32f5\mm32f5.uvprojx" -j0 -o "d:\_workspace\keil\mm32f5\download_log.txt"
使用命令行方式有一点不方便,命令行在后台调用Keil执行下载过程没有任何用户交互。命令行触发执行`uv4.exe`程序不是阻塞式的,所以无法通过程序是否返回判定下载过程已结束。虽然在命令中指定输出log到指定文件中,但Keil并不是在下载结束后才创建输出文件,而是逐条写入输出文件。如果用户在下载过程中打开这个log输出文件,将会看到已经执行的部分操作。因此,也不能通过是否创建log输出文件判定已将下载成功。必须检查log输出文件的内容,待其中包含下载成功并通过验证的记录后,才能最终判定下载情况。
使用Ozone
常用J-Link调试器的开发者对Ozone都不陌生。Ozone和J-Link都是SEGGER公司设计发布的面向调试和下载应用的工具,Ozone是一套具有图形界面的上位机工具,可以适配J-Link调试器,独立下载可执行文件到目标微控制器并进行调试。但实际上,Ozone除了适配自家发售的J-Link调试器外,还提供了对开源CMSIS-DAP(DAP-Link)的支持,即使用Ozone通过DAP-Link连接到目标微控制器,也能够实现独立下载而执行文件并调试的功能。不过,Ozone支持DAP-Link毕竟只是额外的福利,几乎每个步骤都会弹窗提示,“这只是个试用功能,未经过充分测试”。
使用Ozone适配DAP-Link的操作同使用J-Link的情况相同,具体步骤如下:
1、启动Ozone软件,选择目标微控制器设备。
刚启动Ozone软件时,Ozone会自动检测到当前电脑上已经接入了DAP-Link调试器,然后提示警告“必须接受如下条款:
1.当前软件仅适用非商业用途或评估;
2.SEGGER官方不会提供技术支持”。选择接受“Accpet”。
2、选择目标微控制器设备。
当确认目标微控制器设备后,警告提示对话框会再次弹出。仍然是接受“Accept”。
3、在“连接配置”对话框中,可以看到已经识别出来的DAP-Link了。
Ozone连接调试器的速度,在默认情况下被配置成4MHz。笔者手上的DAP-Link方案中,使用的是低速USB接口,考虑稳妥的情况,将速度改为1MHz。
4、选择将要下载的可执行文件
5、开始下载。
再次弹出提示对话框。选择接受“Accept”。
再次弹出提示对话框。选择接受“Yes”。
6、下载成功
如果对频繁弹出的警告对话框不喜,可勾选“不要重复弹出”复选框,有一定改善效果。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自灵动MM32MCU公众号,原文标题为:灵动微课堂 (第243讲)|单独下载可执行文件到MM32F5微控制器,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关研发服务和供应服务
相关推荐
灵动微电子MM32F0160系列MCU FlexCAN-FD通信应用指南
MM32F0160系列MCU具有一个 FlexCAN 模块,该模块遵循 ISO 11898-1 标准、 CAN FD 和 CAN 2.0B 协议规范,不仅兼容传统CAN,还支持CAN FD模式。本章节初步学习使用MM32F0160 FlexCAN-FD接口实现CAN FD通信,相关例程参考灵动官网的LibSamples或在此基础上修改。
设计经验 发布时间 : 2024-01-07
使用灵动MM32F5270 MCU UART配置实现LIN通信
本文主要简述MM32F5270 UART是如何实现LIN通信的。从LIN驱动程序、 主机程序、从机程序和验证等方面来讲代码实现。
设计经验 发布时间 : 2024-02-23
【经验】灵动MindSDK搭建Keil MDK开发环境指南
本文介绍基于Windows操作系统构建嵌入式系统开发环境过程中需要使用的主要软件Keil MDK,并对一些需要特别关注的要点重点说明。Keil MDK是灵动官方的软件开发平台MindSDK支持的主要编译工具之一。
设计经验 发布时间 : 2023-07-02
【IC】“灵动·星”系列MM32高性能MCU产品搭载Star-MC1提供强劲内核动力,性能提升20%
“灵动·星”系列 MM32 高性能 MCU 产品,搭载安谋科技(Arm China)Star-MC1 内核性能,其1.5 DMIPS / MHz,提升 20% ,4.02 CoreMark / MHz,提升20% 。目前包含 4 个子系列: MM32F3,灵动·天枢 MM32F5,灵动·玉衡 MM32G5,灵动·天玑 MM32H5,为用户提供灵活、丰富的选择。
产品 发布时间 : 2024-10-23
MindMotion(灵动微)MM32系列32位MCU选型指南
描述- 灵动微电子成立于2011年,是中国本土领先的通用32位MCU产品及解决方案供应商。灵动微电子的 MCU 产品以 MM32 为标识,基于 Arm Cortex-M 系列内核,自主研发软硬件和生态系统。
型号- MM32G0163D4PV,MM32L0XX,MM32F0144C6PM,MM32F5230,MM32SPIN580C,MM32G0020,MM32G0140,MM32L073PF,MM32F0133C4Q,MM32SPIN080GN,MM32SPIN560CM,MM32SPIN023C,MM32F0133C4P,MM32F5287L8PV,MM32SPIN533AM,MM32F0162D7P,MM32F0121C6P,MM32F0163D4Q,MM32SPIN0230,MM32SPIN080C,MM32F0141C1T,MM32L062NT,MM32F0020B1N,MM32F0144C1TV,MM32F5330,MM32G0001,MM32G0120,MM32F0144C1TM,MM32F0163D7P,MM32SPIN030CN,MM32G0121C1TV,MM32F0010A1TV,MM32SPIN07PF,MM32SPIN05PFOP,MM32SPIN0230B1TV,MM32SPIN37PSD,MM32G0001A6T,MM32F3270,MM32F0121C4P,MM32F0121C4Q,MM32F5277E9PV,MM32F5287L9PV,MM32F0163D6P,MM32F5333D6PV,MM32SPIN0280DAPV,MM32F0121C4N,MM32SPIN080G,MM32SPIN560,MM32F0144C4PM,MM32F0144C4PV,MM32F5280,MM32SPIN06NT,MM32F0140,MM32SPIN560C,MM32F0020,MM32G5333D6QV,MM32F0162D4Q,MM32F0050C1TV,MM32F0273D6P,MM32SPIN0230B3NV,MM32SPIN06PF,MM32G0144C4QV,MM32SPIN0280,MM32L052NT,MM32F5270,MM32F0144C4P,MM32F5277E8PV,MM32F031C6T6,MM32F0130,MM32F0010,MM32F0020B1TV,MM32F5333D7PV,MM32G0144C4PV,MM32SPIN080CN,MM32F0144C4Q,MM32SPIN060G,MM32L0136C7P,MM32F0133C7P,MM32SPIN05NW,MM32F5331D3NV,MM32F0040B1T,MM32SPIN05NT,MM32G0001A6T1V,MM32SPIN06PT,MM32F0120,MM32F0162D6P,MM32F5331D3NM,MM32F003NW,MM32G0160,MM32SPIN27NF,MM32F0163D4QM,MM32SPIN05PF,MM32F031,MM32F3273G6P,MM32F0163D4QV,MM32L0136B6P,MM32G0001A1TV,MM32F0133C6P,MM32SPIN0280D7PV,MM32F5277E7PV,MM32F0144C6P,MM32SPIN222C,MM32F0144C6PV,MM32F0010A6T,MM32G0001A1T,MM32F3273G7P,MM32L0130,MM32G0001A1N,MM32SPIN05PT,MM32G0121C4PV,MM32F0010A1T,MM32F5233D7PV,MM32SPIN27PF,MM32F0010A1N,MM32G5330,MM32SPINEBK,MM32SPIN07,MM32F3273G8P,MM32SPIN160C,MM32SPIN06,MM32F0040B1N,MM32SPIN0230B1NV,MM32L0136C6P,MM32SPIN05,MM32L0020,MM32F0050,MM32SPIN0280D6PV,MM32SPIN533,MM32F031K6U6,MM32F3273G9P,MM32F0163D6PM,MM32SPIN040C,MM32G0020B1T,MM32F0163D6PV,MM32F003,MM32SPIN37,MM32G0020B1N,MM32F0273D8P,MM32F0160,MM32L0136C3T,MM32F0040,MM32G0001A1NV,MM32SPIN0280D6QV,MM32F0144C1T,MM32F103CBT6,MM32F5233D6PV,MM32F0144C4QM,MM32F3273E6P,MM32SPIN27PQ,MM32SPIN27PS,MM32SPIN27PT,MM32L0136C4N,MM32SPIN27,MM32F0020B1NV,MM32F0270,MM32G0121C4QV,MM32F031F6U6,MM32F0273D7P,MM32F003TW,MM32G0144C1TV,MM32F3273E7P,MM32F0141B1T,MM32G0163D6PV,MM32F0163D7PM,MM32SPIN030C,MM32F0163D7PV,MM32F0131C7P,MM32F103,MM32SPIN05TW,MM32F031Y6Y6,MM32F0141C4P,MM32F0141C4Q,MM32F0141C4N,MM32F031K6T6,MM32F0010A1NV,MM32F0131C6P,MM32SPIN422C,MM32F0020B1T,MM32SPIN0280D4PV,MM32L0020B1T,MM32F103RBT6,MM32L0020B1N,MM32F031F6P6,MM32F0121C1N,MM32F0050C1NV,MM32F5333D4QM,MM32G0001A6TV,MM32SPIN360C,MM32,MM32F5333D4QV,MM32F0141C6P,MM32F0141B4P,MM32F0131C4P,MM32F0131C4Q,MM32SPIN0230B3TV,MM32SPIN533A,MM32SPIN033A,MM32F5287L7PV,MM32F5233D4QV
【IC】灵动微电子高性能通用32位MCU产品MM32H5480荣获“2024年度硬核MCU芯片奖”
近日,第六届硬核芯生态大会在深圳举办,同期2024年度硬核中国芯获奖榜单正式发布。作为国内领先的本土通用32位MCU产品及解决方案供应商,MindMotion灵动微电子凭借高性能产品MM32H5480斩获“2024年度硬核MCU芯片奖”。
原厂动态 发布时间 : 2024-10-18
【IC】灵动发布全新入门级32位MCU MM32G0001系列,内置时钟全温度范围内偏差不超过±2%
灵动股份推出全新超值型MM32G0001系列MCU。2023年初,灵动首次发布了其主打高性价比的MM32G系列,目前已陆续推出了G0140,G0160和G5330系列产品。为进一步丰富MM32G系列产品组合,灵动和上下游合作伙伴通力合作,打造出全新入门级超值型MM32G0001系列MCU。
新产品 发布时间 : 2023-07-01
【IC】灵动新推出32位MCU MM32F0120,主频高达72MHz,提供64KB Flash和8KB RAM
灵动微电子发布的MM32F0120,搭载Cortex M0内核,主频高达72MHz,提供64KB Flash和8KB RAM,最高支持48pin封装。适用于屏显控制、电动玩具、电源管理、马达控制、无线快充等多种应用场合。
产品 发布时间 : 2024-09-11
灵动微电子扎根张江造“芯”,打造本土32位MCU知名品牌
灵动微电子成立于2011年,2016年进军MCU市场,2019年积极向工业、大家电、汽车等领域发力,目前已涵盖消费电子、电机与电源、家电、汽车、计算机与通信、工业控制等应用领域,客户群体包括飞利浦、小米、汇川、海尔、海信、美的等,是中国本土领先的通用32位MCU 产品及解决方案供应商。
原厂动态 发布时间 : 2024-09-19
灵动MM32SPIN⸺专注电机控制的MCU和SOC
型号- SPIN080G,MM32SPIN030C,SPIN360C,MM32SPIN06NT,SPIN033A,SPIN590G,MM32SPIN560C,MM32SPIN05PT,MM32SPIN580C,MM32SPIN05TW,SPIN0260,MM32SPIN27PF,MM32SPINEBK,MM32SPIN0230B3NV,MM32SPIN080GN,MM32SPIN06PF,SPIN02XX,MM32SPIN07,MM32SPIN0280,MM32SPIN160C,SPIN533A,MM32SPIN,MM32SPIN560CM,SPIN27,MM32SPIN023C,MM32SPIN06,MM32SPIN05,MM32SPIN0230B1NV,MM32SPIN422C,MM32SPIN0280D4PV,MM32SPIN0280D6PV,SPIN060G,SPIN0250,SPIN080C,SPIN222C,SPIN0290,SPIN040C,MM32SPIN080CN,MM32SPIN0230,MM32SPIN060G,MM32SPIN080C,SPIN0230,MM32SPIN040C,SPIN56XX,MM32SPIN37,MM32SPIN05NW,SPIN580C,SPIN160C,SPIN023C,MM32SPIN05NT,MM32SPIN06PT,MM32SPIN0280D6QV,MM32SPIN360C,SPIN0280,SPIN495C,MM32SPIN030CN,MM32SPIN27NF,SPIN560C,SPIN05XX,MM32SPIN07PF,SPIN07,SPIN06,MM32SPIN05PF,MM32SPIN27PQ,MM32SPIN0230B3TV,SPIN5630,MM32SPIN05PFOP,MM32SPIN27PS,MM32SPIN27PT,MM32SPIN0230B1TV,MM32SPIN37PSD,SPIN05,MM32SPIN533A,MM32SPIN033A,MM32SPIN27,MM32SPIN0280D7PV,MM32SPIN222C,SPIN080X,SPIN422C,MM32SPIN0280DAPV,SPIN030C,MM32SPIN080G
New Milestone! Following the Success of MM32G0001, MindMotion Launches the Next-Level, High-Value MCU – MM32F0120
MindMotion Microelectronics is excited to announce the official launch of its next-level MCU, the MM32F0120. In 2023, MindMotion‘s entry-level MCU, MM32G0001, made a huge impact with its cost-performance ratio, comparable to or even surpassing 8/16-bit MCUs, earning high praise in the market.
产品 发布时间 : 2024-09-14
基于灵动MM32F0130微控制器的智能插排方案,实现远程开关控制、定时开关、随时了解家电设备的使用状况
智能插座又可以称为WIFI插座,在普通插座的功能基础上延伸了许多功能,如防雷击,防短路,防过载,防漏电,配合智能手机的APP应用,可以实现远程开关控制、定时开关、随时了解家电设备的使用状况。基于灵动MM32F0130微控制器的插排,具有以下特点:-内置Timer进行解码红外输入-通过串口与云端连接,进行远程控制,以及电量监控等-通过I2C与计量芯片通讯,进行异常检测,过流,过/欠压等保护
应用方案 发布时间 : 2024-03-13
【经验】灵动微电子MM32F0160微控制器开源项目:如何实现一套低成本带RGB灯效的机械键盘
灵动的软件与系统工程SE团队,基于带有 USB 外设模块的 MM32F0160 微控制器,实现了一套低成本带RGB灯效的机械键盘。这里将设计机械键盘的全过程开源出来,感兴趣的开发者,可以向灵动申请 MM32F0160 微控制器的样片,复刻一把自己专属的机械键盘,也可以继续进行二次开发,实现更加有趣的作品。
设计经验 发布时间 : 2023-07-01
基于MM32F5270 MCU初步学习移植FreeRTOS
FreeRTOS是一个RTOS类的嵌入式实时操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行。本系列微课堂基于MM32F5270 MCU初步学习使用FreeRTOS开发。
设计经验 发布时间 : 2024-08-30
电子商城
现货市场
服务
可定制板装式压力传感器支持产品量程从5inch水柱到100 psi气压;数字输出压力传感器压力范围0.5~60inH2O,温度补偿范围-20~85ºС;模拟和数字低压传感器可以直接与微控制器通信,具备多种小型SIP和DIP封装可选择。
提交需求>
定制水冷板尺寸30*30mm~1000*1000 mm,厚度1mm~50mm,散热能力最高50KW,承压可达3MPA;液冷机箱散热能力达500W~100KW。项目单次采购额需满足1万元以上,或年需求5万元以上。
提交需求>
登录 | 立即注册
提交评论