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

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

3天内不再提示

敏矽微电子Cortex-M0学习笔记02——Cortex-M0开发环境的建立及调试

jf_pJlTbmA9 来源:敏矽MCU 作者:敏矽MCU 2023-09-26 17:05 次阅读

本篇先简单介绍MDK的安装流程,然后重点说明如何把敏矽微电的Cortex-M0的PACK包添加到mdk中,这样才能顺利的在MDK环境下开发敏矽微电子Cortex-M0新片。最后用了很大篇幅介绍如何建立工程,工程中各种文件的添加等等。

1、敏矽微电子Cortex-M0的开发环境

敏矽微电子Cortex-M0是基于ARM内核的,所以基于ARM的开发环境都可以用来开发敏矽微电子Cortex-M0的芯片。最常见的两种ARM开发平台是MDK和IAR。我们今天着重介绍MDK环境下如何建立基于敏矽微电子Cortex-M0芯片的项目,以及如何在MDK环境下调试敏矽微电子Cortex-M0芯片。

需要说明的是:MDK软件是需要注册的,强烈建议大家使用正版软件。不过在刚开始学习以及资金有限的情况下,可以使用MDK的评估版本,评估版本的程序容量是32K版本。这个程序容量对于初学来说,是足够用的。

闲话少说,马上开始我们今天的学习之旅。

2、MDK安装

1、首先打开Keil安装包(资料链接中附有MDK 5.28版本安装包),打开后如图1.1所示。

1669253924398144.png

图1

2、随后点击“Next”,进入后续的安装流程,勾选红圈选项后,点击“Next”下一步。随后会提示MDK的安装路径,强烈建议采用默认路径。如果要自定义安装路径,请保证自定义的安装路径中不要出现任何中文名字!点击“Next”下一步后,输入下姓名、公司、邮箱等信息,随意填写下即可,继续点击“Next”便开始正式安装。期间软件会自动安装仿真器驱动,耐心等待即可。

1669253935650545.png

3、等到最后出现下面的界面,软件便已安装成功。

1669253945306060.png

3、MDK注册

1、启动Keil 5,在File选项中选择License Management子选项。

1669253952789926.png

2、按照提示进行注册即可,请按照官方正版途径注册。

3、如果点击Add LIC提示以下的错误信息,看红色下划线的信息,得知是因为没有在管理员模式下操作,权限不足导致的。这个是Windows管理员模式产生的问题。如果你的注册过程没有此错误提示,可以跳过第7步。解决的办法也很简单,按照步骤4操作即可。

1669253979624185.png

4、以管理员模式运行Keil 5,鼠标右键Keil 图标,点击“以管理员身份运行”即可。随后重新按照步骤5操作即可。管理员运行方法如图所示:

1669253988696521.png

5、软件注册完成后,出现“LIC Added Sucessfully”的提示,说明注册成功。

4、安装ME32F030PACK包

1、KEIL安装完成后,就需要安装芯片支持的PACK包,来让KEIL支持我们的芯片,这里建议安装资料提供的Keil 5版本,因为其对应的PACK包是傻瓜式一键安装,操作十分的方便,找到我们的PACK包双击安装即可。

1669254008421597.png

2、PACK包安装完成后,我们可以先确认下,看下KEIL是否已经识别并支持我们的芯片,方法如下,首先创建个新工程,选择project->New uVision Project来建立工程。

1669254013489486.png

3、新建工程时会提示选择芯片类型,从图中看出KEIL已经支持我们的Mesilicon系列芯片。

1669254022943872.png

5、新建工程

1、选择project->New uVision Project来建立工程。

1669254033373316.png

2、选择芯片类型,选择开发板的芯片为Mesilicon->ME32F030 Series->ME32F030C8x6,选择好后,点击“OK”。

1669254039647480.png

3、出现下面的界面,这个是根据需求自己添加开发组件,不多介绍,直接点取消跳过。

1669254046519577.png

4、接下来将资料中的Lib2.3 for keil5x例程解压缩出来,其中公用的.c和.h等文件都在common文件夹内,随后开始向工程中添加.c和.h文件。点击如图所示的快捷按钮。

1669254053953334.png

5、弹出如下界面,在Groups右边有4个按钮,依次为“新建”、“删除”、“上移”、“下移”功能,先选择新建comm、app两个组,你也可以尝试下删除组,把初始自带的Source Group通过红叉按钮删除掉。

1669254060676537.png

向每个Group中添加.程序c文件。那就先举个简单的例子作为开始,首先我们选中需要添加程序的组,比如我们向app组里添加需要的main.c文件,选中app组后,点击右侧的Files框体下的Add Files,选中要添加的main.c文件。点击Add便完成添加。

1669254072261476.png

添加成功后的效果如下图所示,右侧的Files中已包含main.c文件,那么想要删除的话,可以在选中文件后,通过点击上方的红叉进行删除。

1669254084404982.png

依次类推,我们接下来要向comm中添加.c文件。

①、添加core_cm0.c,这个就是我们的单片机的M0内核文件,它在

Lib2.3 for keil 5->common->CoreSupport文件夹中。

1669254094299756.png

②、添加system_CMSDK.c,它在Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk文件夹中。

1669254101216966.png

③、添加startup_CMSDK_CM0.s文件,这个是启动程序文件,它是由汇编语言写成的。是以.s为结尾的文件,所以在添加它的时候需要注意将文件类型选择为All Files才能看见它。

Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk->Startup->arm文件夹中。

1669254165689848.png

1669254155108516.png

④、前面添加都属于单片机的系统文件,接下来就要开始添加我们自己的.c文件了,这个都在Lib2.3 for keil 5->common->Drivers->Source文件夹内。

1669254179634176.png

⑤、第一次新建工程时可以参照现有的例程,比如以Demo-Touch Me按键触摸试验为模板,尝试建立一下工程。添加自己所需要的文件,如图所示:

1669254187154942.png

6、添加完成后,关闭Manage Project Items功能栏。返回KEIL主界面后,在左侧的Project工程栏里,可以看到之前添加的所有程序文件。

1669254195383181.png

7、接下来我们是不是可以编译程序了呢?那不妨先试一下。编译后发现提示很多此类的报错,提示 cannot open source input file "gpio.h": No such file or directory,这是因为我们只添加了.c文件,而需要的头文件路径还没有指定位置。那么接下来就指定头文件路径。

1669254208859447.png

点击红圈标注的Options快捷按钮,也可以通过快捷键ALT + F7来打开。

1669254216328060.png

打开后选中C/C++选项卡,在下面可以看到Include Paths栏,这个就是需要指定的头文件路径,点击右边的 。。。按钮来进行添加。

1669254223240845.png

点击。。。按钮后,通过弹出的对话框来添加头文件路径。同上文讲到的一样,红圈的四个按钮依次为“新建”、“删除”、“上移”、“下移”功能。

1669254236273609.png

那就新建路径吧,点击新建后会生成一个新的路径框,点击红圈标识的。。。来添加。

1669254244258072.png

以core_cm0.c文件对应的头文件core_cm0.h为例子,一路进到上文中添加core_cm0.c的文件夹中,进入如图所示的路径后,点击选择文件夹。

1669254251472083.png

添加完成后,刚才新添加的路径便显示出来了。

1669254272186431.png

依次类推,再添加以下3个路径。

Lib2.3 for keil 5->common->DeviceSupport->arm->cmsdk

Lib2.3 for keil 5->common->Drivers->Include

Lib2.3 for keil 5->Demo-Touch Me->myapp->include

这里添加的时候要注意,是要选择.h文件所在的那个文件夹,错选成它的上级或下级文件夹,是无法找到需要的头文件的!添加完成后的效果如下。

1669254284759275.png

这时候我们再去编译一下试试。没有报错也没有警告,说明项目工程顺利建立。

1669254295156908.png

6、下载与调试

1、程序编译没问题后,接下来就可以下载程序并仿真测试了。在开始前先插上仿真器并连接开发板,打开Options for Target选项卡,选中Debug。这个时候选择仿真器类型(根据实际进行选择,建议买一个U-LINK2仿真器),勾选上Run to main,这样程序下载后直接运行到main函数,否则会先运行startup_CMSDK_M0.s中Reset_Handler程序。虽然这段程序最后也会跳转到我们的main函数,但我们没有必要每次去仿真它。点击Settings查看我们的仿真器配置情况。

1669254306557062.png

点击Settings后,在Debug子选项中看到下面的信息。则说明仿真器识别正常。

1669254314771767.png

再点击查看下Flash Download的选项。这时候看到ME20F030单片机的FLash的下载地址和RAM空间地址都已经明确了,这就是为什么前面强烈推荐安装KEIL 5版本,随后打上PACK包,很多设置项都是PACK包整合配置好的,我们直接用就可以了。

1669254322790751.png

2、仿真选项设置好之后,开始下载程序。点击工具栏上的

1669254331991203.png

图标来下载并仿真程序。

1669254336648346.png

图标所示的功能也可以下载程序,但是它是不带仿真功能的,这点需要注意!下载成功后会多出下面的工具条。

1669254341198330.png

下面我们分别来介绍一下这些仿真调试按钮的功能:

1:复位,点击后程序会从头开始重新运行。

2:全速运行,点击后程序便开始全速运行,运行到断点处会停止,或者使用停着功能。

3:停止,当程序在运行状态下,使用此功能,程序便会停止运行。

4:执行进去,本质是单步运行,如果下一步是要执行的是个函数,那么就行进入到函数 里面,进行单步仿真。

5:段执行,也是单步运行,但不同的是,如果下一步是要执行的是个函数,那么会直接运行整个函数,并不会进入函数内部运行,它是直接以一整段代码为单位进行执行的。

6:执行跳去,当不需要再继续在某个函数里继续单步仿真时,执行此功能,就会直接执行完函数内剩余的代码,随后跳出该函数后会暂停,等待下一步操作。

7:执行到光标处,使用此功能前,先确定想运行到地方,鼠标单击运行的那一行,此时光标便会在这一行显示,这时候再点击此按钮,程序会全速运行,直到在光标处停止。

8:全速运行,此功能是让程序全速运行,除非认为暂停或者遇到断点,否则程序会一直运行。

来源:敏矽MCU

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

    关注

    146

    文章

    16017

    浏览量

    343631
  • Cortex-M0
    +关注

    关注

    4

    文章

    122

    浏览量

    38353
  • MDK
    MDK
    +关注

    关注

    4

    文章

    208

    浏览量

    31771
  • 开发环境
    +关注

    关注

    1

    文章

    203

    浏览量

    16461
收藏 人收藏

    评论

    相关推荐

    ARM Cortex-M0原理与应用实践

    来了一本原创的好书《ARM Cortex-M0原理与应用实践》,分享给大家。书籍目录:ARM Cortex-M核介绍书籍下载地址:`
    发表于 08-12 11:44

    cortex-M0的中文资料

    谁有cortex-M0的中文资料啊,分享一下吧,谢谢啦!!
    发表于 06-02 16:16

    ARM Cortex-M0Cortex-M0+到底有什么区别呢

    ARM Cortex-M0Cortex-M0+到底有什么区别呢
    发表于 01-04 23:15

    cortex-m0学习资料

    本帖最后由 jheng 于 2015-4-9 21:54 编辑 cortex-m0学习
    发表于 04-09 21:48

    ARM Cortex-M0权威指南(英文版)

    ,创作了基于Cortex-M0的重量级作品——《ARM Cortex-M0权威指南》,这也是全球首本系统论述Cortex-M0的内核、体系结构、指令集、编译器、程序设计及软件移植的经典。作者配套提供了大量源代码(可到图书封底网址
    发表于 10-08 16:46

    ARM Cortex-M0内核

    本帖最后由 729930209 于 2017-7-26 20:56 编辑 这是cortex-M0内核,有什么问题可以留言
    发表于 07-26 20:55

    ARM内核Cortex-M0

    ARM 的内核Cortex-M0开源了,可以在FPGA上加上总线和外设利用内核搭建自己的Soc了,很nice
    发表于 12-04 20:30

    如何在cortex-m0的CPU上运行HarmonyOS?

    目前发布的代码中只支持cortex-m4和cortex-m7.如何在cortex-m0的CPU上运行HarmonyOS?
    发表于 09-14 17:41

    Cortex-M0~M4的优势是什么啊?

    简述Cortex-M0~M4的各个优势
    发表于 02-22 06:57

    ARM Cortex-M0设计启动评估用户指南

    Cortex-M0 DesignStart Eval为开发人员提供了一种简单的方法来模拟基于Cortex-M0处理器的SoC设计。 它允许系统设计人员在模拟器上进行设计和测试,然后使用FPGA进行
    发表于 08-18 07:58

    敏矽微电子Cortex-M0学习笔记08——基本定时器详解

    敏矽微电子Cortex-M0学习笔记08——基本定时器详解
    的头像 发表于 09-26 17:13 569次阅读
    敏矽<b class='flag-5'>微电子</b><b class='flag-5'>Cortex-M0</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>08——基本定时器详解

    敏矽微电子Cortex-M0学习笔记07——串口通信详解

    敏矽微电子Cortex-M0学习笔记07——串口通信详解
    的头像 发表于 09-26 17:11 750次阅读
    敏矽<b class='flag-5'>微电子</b><b class='flag-5'>Cortex-M0</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>07——串口通信详解

    敏矽微电子Cortex-M0学习笔记04——GPIO详解及应用实例

    敏矽微电子Cortex-M0学习笔记04——GPIO详解及应用实例
    的头像 发表于 09-26 17:07 600次阅读
    敏矽<b class='flag-5'>微电子</b><b class='flag-5'>Cortex-M0</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>04——GPIO详解及应用实例

    敏矽微电子Cortex-M0学习笔记03——时钟系统设计例程

    敏矽微电子Cortex-M0学习笔记03——时钟系统设计例程
    的头像 发表于 09-26 17:06 488次阅读
    敏矽<b class='flag-5'>微电子</b><b class='flag-5'>Cortex-M0</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>03——时钟系统设计例程

    敏矽微电子Cortex-M0学习笔记01——芯片简介

    敏矽微电子Cortex-M0学习笔记01——芯片简介
    的头像 发表于 09-26 17:03 528次阅读
    敏矽<b class='flag-5'>微电子</b><b class='flag-5'>Cortex-M0</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>01——芯片简介