0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单独下载可执行文件到MM32F5微控制器

灵动MM32MCU 来源:灵动MM32MCU 2023-02-17 09:32 次阅读

引言

使用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:\_worksapcekeilmm32f5`目录下,创建了`mm32f5.uvprojx`工程文件。

586cb296-adfa-11ed-bfe3-dac502259ad0.png

图1 在Keil IDE中创建新工程

2在`options` -> `Output` 选项卡中,指定将要下载的可执行文件的路径。

在样例中,笔者在`mm32f5`目录下,存放了`micropython.hex`文件。点击`Select Folder for Objects...`按钮,指定为`mm32f5`目录,然后在`Name of Executable:`对应的文本框中输入了`micropython.hex`文件名。

588b1f2e-adfa-11ed-bfe3-dac502259ad0.png

图2 在Keil工程中指定下载文件的路径及文件名

从字面上看,这里指定的是编译输出的路径和文件名,但实际上,下载过程是同编译过程绑定的,编译过程生成的可执行文件,将被Keil自动作为下载过程的输入文件。

3在主窗口的工具栏中,单击LOAD按钮,启动下载。

58ad0a94-adfa-11ed-bfe3-dac502259ad0.png

图3 在Keil工程中下载可执行文件到微控制器

通过 `Build Output`窗口可以查看到,当前已经擦除、下载并且校验成功。

4使用Keil IDE也可以实现命令行式的下载操作。

此时,可将使用Keil IDE创建的工程视作`uv4.exe`程序的配置文件,例如,在之前创建的`mm32f5.uvprojx`文件中,编辑`OutputDirectory`和`OutputName`字段,指定将要下载程序的路径和文件名。




2.1

###uVisionProject,(C)KeilSoftware
Target1 0x4 ARM-ADS 1 MM32F5277E9P MindMotion MindMotion.MM32F5277E_DFP.0.0.3 http://www.mindmotion.com.cn/Download/MDK_KEIL/ IRAM(0x30000000,0x1C000)IROM(0x08000000,0x40000)CPUTYPE("Cortex-M33")CLOCK(12000000)ELITTLE UL2V8M(-S0-C0-P0-FD30000000-FC1000-FN1-FF0MM32F5270_256-FS08000000-FL040000-FP0($$Device:MM32F5277E9P$FlashMM32F5270_256.FLM)) ... . micropython.hex ...

然后在Windows的命令行界面,输入调用Keil下载代码的命令:

uv4.exe-f"d:\_workspacekeilmm32f5mm32f5.uvprojx"-j0-o"d:\_workspacekeilmm32f5download_log.txt"

593c16ee-adfa-11ed-bfe3-dac502259ad0.png

使用命令行方式有一点不方便,命令行在后台调用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”。

5955c5bc-adfa-11ed-bfe3-dac502259ad0.png

图4 启动Ozone

2选择目标微控制器设备。

当确认目标微控制器设备后,警告提示对话框会再次弹出。仍然是接受“Accept”。

597cbcb2-adfa-11ed-bfe3-dac502259ad0.png

图5 在Ozone中选择目标设备

3在“连接配置”对话框中,可以看到已经识别出来的DAP-Link了。

Ozone连接调试器的速度,在默认情况下被配置成4MHz。笔者手上的DAP-Link方案中,使用的是低速USB接口,考虑稳妥的情况,将速度改为1MHz。

59a5d3fe-adfa-11ed-bfe3-dac502259ad0.png

图6 Ozone显示识别出的DAP-Link调试器

4选择将要下载的可执行文件

59f566bc-adfa-11ed-bfe3-dac502259ad0.png

图7 选择将要下载的可执行文件

5开始下载。

再次弹出提示对话框。选择接受“Accept”。

5a20327a-adfa-11ed-bfe3-dac502259ad0.png

再次弹出提示对话框。选择接受“Yes”。

5a5abf80-adfa-11ed-bfe3-dac502259ad0.png

图8 启动下载确认第二次警告

6下载成功

5a779182-adfa-11ed-bfe3-dac502259ad0.png

图9 使用Ozone下载成功

如果对频繁弹出的警告对话框不喜,可勾选“不要重复弹出”复选框,有一定改善效果。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6808

    浏览量

    147612
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165284
  • 调试器
    +关注

    关注

    1

    文章

    288

    浏览量

    23396
  • J-Link
    +关注

    关注

    0

    文章

    77

    浏览量

    21949
  • MM32F5
    +关注

    关注

    0

    文章

    12

    浏览量

    512

原文标题:灵动微课堂 (第243讲)|单独下载可执行文件到MM32F5微控制器

文章出处:【微信号:MindMotion-MMCU,微信公众号:灵动MM32MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【实用开发工具】将BAT脚本打包成exe可执行文件

    【实用开发工具】将BAT脚本打包成exe可执行文件
    的头像 发表于 08-21 19:51 2.3w次阅读
    【实用开发工具】将BAT脚本打包成exe<b class='flag-5'>可执行文件</b>

    C语言变成可执行文件的四大步骤

    从C语言变成最终的可执行文件,需要经过四步。
    发表于 10-18 10:37 4359次阅读

    怎样生成可执行文件??

    怎么不能生成可执行文件呢大家帮帮忙
    发表于 04-02 23:00

    labview生成可执行文件

    程序做了错误提示功能,但是生成可执行文件后,不提示错误呢
    发表于 05-09 18:22

    写好的LabView程序怎么生成可执行文件

    写好的LabView程序怎么生成可执行文件,客户端只要安装可执行文件就能操作运行了,
    发表于 12-17 10:51

    【视频分享】如何调试可执行文件

    在LabVIEW中,经常发现可执行文件和源代码执行结果有出入。本视频讲解如何调试可执行文件。在优酷上面看到的关于如何调试可执行文件视频,感觉还是挺受益的,分享给大家!
    发表于 07-20 14:46

    关于生成可执行文件的问题

    生成了一个可执行文件,在打开.exe文件时,出现了如图所示的错误,请问该怎么处理?
    发表于 01-29 16:19

    LabVIEW可执行文件作为后台进程运行

    函数, 如何从LabVIEW LabVIEW可执行文件中退出而不必关闭它? 。否则,需要关闭Windows任务管理中的可执行文件,或者以编程方式从另一个VI关闭应用程序,如何以编程方式打开和关闭
    发表于 03-18 21:15

    用MDK生成bin格式的可执行文件

    用MDK 生成bin 文件1用MDK 生成bin 文件Embest 徐良平在RV MDK 中,默认情况下生成*.hex 的可执行文件,但是当我们要生成*.bin 的可执行文件时怎么办呢
    发表于 08-02 10:52 71次下载

    基于LabVIEW的可执行文件调用的研究与实现

    LabVIEW 是美国NI 公司推出的一种基于G 语言的虚拟仪器软件开发工具。在LabVIEW 开发的软件中,用户可能需要调用.exe 可执行文件。本文结合实例详细介绍了三种调用方法:通过Call
    发表于 08-14 11:42 60次下载

    了解在Linux下可执行文件格式

    Linux下面,目标文件、共享对象文件可执行文件都是使用ELF文件格式来存储的。程序经过编译之后会输出目标文件,然后经过链接可以产生
    发表于 05-15 08:49 1770次阅读

    CCES创建可执行文件的操作流程

    本模块将介绍用CrossCore® Embedded Studio (CCES)创建可执行文件的整个流程。涉及的主题包括使用新项目向导、配置系统和工具选项,以及构建过程。
    的头像 发表于 07-11 06:06 3161次阅读

    使用Java语言编写战机的设计报告和源代码以及可执行文件

    本文档的主要内容详细介绍的是使用Java语言编写战机的设计报告和源代码以及可执行文件免费下载导入eclipse即可运行。
    发表于 11-05 08:00 0次下载
    使用Java语言编写战机的设计报告和源代码以及<b class='flag-5'>可执行文件</b>

    【Python】如何将Python脚本打包成exe可执行文件

    【Python实用技巧】如何将Python脚本打包成exe可执行文件
    的头像 发表于 08-18 12:40 1.8w次阅读
    【Python】如何将Python脚本打包成exe<b class='flag-5'>可执行文件</b>

    单独下载可执行文件MM32F5微控制器

    使用Keil MDK或者IAR等使用图形界面的开发环境,可以在图形界面环境下编译源码工程,并下载编译生成的可执行文件到目标微控制器中。
    的头像 发表于 05-24 17:24 1162次阅读
    <b class='flag-5'>单独</b><b class='flag-5'>下载</b><b class='flag-5'>可执行文件</b>到<b class='flag-5'>MM32F5</b><b class='flag-5'>微控制器</b>