草庐IT

【MM32F5270】Keil开发环境搭建

码工许师傅 2023-04-04 原文

本文完整记录了——如何从零搭建MM32F5270 Keil开发环境以及如何编译运行MM32F5270 SDK中的hello_world示例。本文写作过程中参考了一些链接,具体可以在本文末尾找到,感兴趣的读者可以自行查阅。其中,灵动官网提供了最新的芯片用户手册,逐飞科技的网盘中提供了开发板原理图和硬件试用说明,这些资料在后续的开发过程中是经常需要查阅的,建议下载;灵动SDK下载页面提供了在线的API参考,建议收藏。

零、MM32F5270开发板简介

本次试用的开发板是逐飞科技设计生产的PLUS-MM32F5270,它是灵动官方推荐的PLUS Board系列之一,也是2022年全国大学生物联网设计竞赛 安谋科技&灵动微电子赛题 的板子。板载资源十分丰富,外观如下:

开发板功能框图(来自逐飞科技的试用说明文档):

板子包装内附赠了PWLINK2调试器、USB Type-C线、杜邦线。

一、Keil下载和安装

1.1 下载Keil MDK

由于MM32F5270的CPU核是STAR-MC1,而Keil MDK 5.37才添加了对它的支持,因此必须下载MDK 5.37版本才能支持MM32F5270的开发(具体可以参考Keil MDK 5.37的Release Note)。

Keil MDK官网下载链接:https://www2.keil.com/mdk5 (需要注册,下载速度略慢)

国内5.37版本下载链接:https://download.armfly.com/armbbs/bbs/96992/MDK537.EXE

MD5: 9a3e824a57eb370555826d53f2f6056d (国内下载完成后,记得md5sum校验一下)

1.2 安装Keil MDK

MDK安装,默认设置,一路下一步就好了,没啥难度,不再详细介绍。

1.3 激活Keil MDK

首先,下载KeyGen程序(可以生成2032年的,亲测有效): https://pan.baidu.com/s/1oZPXu8OkkZ2EXuePwGbu0A?pwd=keil

下载完成后,解压开keil_keygen_2032。

Keil MDK安装好了之后,打开Keil uVision5。通过 File→License Management菜单,打开License Management界面。在License Management界面中,复制CID。

打开keil_keygen_2032.exe,粘贴CID,Target选择ARM,点Generate生成License ID Code(LIC)。将生成的LIC复制到Keil的License Management界面,粘贴到“New License ID Code”文本框中,点”Add LIC”即可激活Keil。

二、MM32F5270 Keil Pack下载和安装

2.1 下载MM32 Keil Pack

MM32 Keil Pack下载链接:https://mindmotion.com.cn/support/software/keil_pack/

官网提供的是一个压缩包,里面有灵动MM32系列所有芯片的Keil Pack。

2.2 安装MM32 Keil Pack

解压后,双击 MindMotion.MM32F5277E_DFP.0.0.7.pack 文件安装MM32F5270支持包(Keil安装成功后,会自动关联.pack文件)。

三、MM32F5270 SDK下载

MM32F5270 SDK下载链接:https://mindsdk.mindmotion.com.cn/(需要注册账号登录下载)
PS:建议从官网注册下载,一方面来源可靠,另一方面可以保证下载的是最新版本(SDK也会有更新)。

3.1 构建MM32F5270 SDK

登录账号后,默认显示sdk-create页面。在该页面中,Toolchain选择mdk,Board选择plus-f5270,点击BUILD PROJECT开始创建SDK:

3.2 下载MM32F5270 SDK

稍等片刻,页面自动跳转到Build dashboard页面。点击中间的 Windows mdk_plus-f5270 链接后,自动跳转到刚刚触发创建的结果页面:

点击“Download Board Package”开始下载SDK,文件名为 plus-f5270_mdk.zip。

四、编译hello_world示例

4.1 打开hello_world工程

解压开 plus-f5270_mdk.zip 文件,可以看到SDK内的文件目录顶层结构如下:

打开demo_apps\demo_apps\basic\hello_world子目录:

其中,build子目录下有project.uvprojx文件,双击打开(Keil MDK安装成功,会自动关联.uvprojx后缀的文件)。

4.2 构建hello_world工程

使用F7快捷键,或者左上角的Build图标,触发编译构建。

构建完成后,可以看到Build Output子窗体输出了程序空间占用情况:

五、连接PWLINK2调试器和USB串口

5.1 连接PWLINK2调试器

PWLINK2调试器用于开发板的程序烧录和调试,它的一端可以通过USB-A接口连接到电脑,另一端可以通过杜邦线连接到开发板。

开始调试之前,首先需要将PWLINK2和开发板通过附带的杜邦线连接起来。PWLINK2附带的杜邦线,10pin固定的一头带有凸起,直接插入PWLINK2的10针接口上即可。

接下来,需要将杜邦线散开的一头与开发板的调试接口相连。PLUSF5270开发板调试接口的针脚标注如下图所示:

(图片来自,逐飞科技网盘《PLUS-F5270 硬件使用说明》中的“调试接口连接方式”插图)

结合PWLINK2正面的丝印,这里至少要连接4根线:

  • GND,地线
  • RST,复位信号
  • SWDIO,SWD接口输入输出信号
  • SWDCLK,SWD接口时钟信号
    (因为需要另接一根USB串口线,可以供电,所以这里不需要连接3.3v)

最后,将PWLINK2的另一端插入到电脑的USB口上。

5.2 连接USB串口

另外,需要通过将开发板的USB-UART口连接到电脑,以便接收和查看串口输出。

开发板的USB-UART口和主控芯片MM32F5270之间已有一个CH340 USB转串口芯片。

因此,直接使用附赠的USB Type-C线,一段插入到开发板的USB-UART口,另一端插入电脑即可。

连接正常后,设备管理器中将会显示一个CH340的串口设备(如果没有正常识别,可以去沁衡官网下载CH340驱动),如下图所示:

六、配置Keil项目的调试器

6.1 修改Keil MDK项目的调试器配置

Keil项目默认的调试器是ULINK2,无法直接用于PWLINK2。

右击Project视图中的“Target 1”,或者点击工具栏第二行的魔术棒图标,弹出“Options for ‘Target 1

”窗口,如下图所示:

点击Debug标签,Use下拉选择“CMSIS-DAP”调试器(因为附赠的PWLINK2运行的固件是CMSIS-DAP),如下图所示:

配置到这里,一般就可以烧录和调试了。

七、烧录和运行hello_world示例

7.1 烧录hello_world程序

以上操作完成后,点击界面上的下载图标,或者按F8快捷键,即可开始烧录。

烧录过程中,状态栏会显示进度。烧录完成后,Build Output窗口可以看到所用时间的输出:

7.2 运行hello_world程序

烧录完成后,使用串口助手或者其他串口工具连接到前面设备管理器中新增的CH340的串口上,我的是COM7,我这里使用的是MobaXterm,串口参数:

  • 波特率:9600
  • 数据位:8
  • 奇偶校验:无
  • 停止位:1

如下图所示:

点OK打开串口。

MobaXterm打开串口后,按开发板的复位按键。可以看到串口输出:

7.3 设置下载后自动复位

按照前面的步骤,烧录完成后,需要手动按复位按键让程序运行。如果程序反复修改,或者需要进行断点调试的话,每次都要按复位才能运行程序稍显麻烦。因此,建议开启“下载后复位”选项,下面介绍如何操作。

点击“Options for ‘Target 1”窗口中Use右侧的Settings,弹出CMSIS-DAP设置界面,如下图所示:

这里可以看到,SW Device中已经显示了一个设备,说明调试接口已经正常连接并通讯了。

点击Flash Download标签,勾选Reset and Run:

这样每次下载之后自动复位主控芯片,方便调试。这一步不是必须设置的,但如果不设置,下载完成后,需要手动按复位按键,对主控芯片进行复位。

八、参考链接

本篇是对灵动官网资料和技术社区已有的几篇环境搭建帖的整理和总结。主要参考了以下内容:

  1. 【灵动官网】PLUS-F5270开发板介绍(含资料链接): https://www.mindmotion.com.cn/support/development_tools/evaluation_boards/plus_board/mm32f5277e9pv/
  2. 【灵动官网】MM32F5270芯片介绍(含资料链接): https://www.mindmotion.com.cn/products/mm32mcu/mm32f/mm32f_performance/mm32f5270/
  3. 【技术社区】基于灵动MM32F5系列芯片的PLUS-F5270开发板资料(包含逐飞科技网盘链接): https://aijishu.com/a/1060000000341750
  4. 【技术社区】[MM32F5270开发板试用] 基本开发环境搭建篇: https://aijishu.com/a/1060000000346688
  5. 【技术社区】带灵动微MM32F5的Plus-F5270开发板怎么玩? https://aijishu.com/a/1060000000341495

本文首发于极术社区,部分内容修改后再次发布,原文链接:https://aijishu.com/a/1060000000346928

有关【MM32F5270】Keil开发环境搭建的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby-on-rails - 将 Ruby 中的日期/时间格式化为 YYYY-MM-DD HH :MM:SS - 2

    这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  9. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  10. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

随机推荐