龙空技术网

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

老马识途单片机 351

前言:

如今朋友们对“下载的文件保存类型只有all files怎么办”都比较重视,兄弟们都需要分析一些“下载的文件保存类型只有all files怎么办”的相关文章。那么小编同时在网上汇集了一些有关“下载的文件保存类型只有all files怎么办””的相关资讯,希望小伙伴们能喜欢,同学们快快来学习一下吧!

写在前面的话

随着我国逐渐由“中国制造”向“中国创造”的转变,国产微控制器芯片行业今年如同雨后春笋般多了起来,芯片制造之路是漫长而曲折的,但是这个过程必须要走,只有经历并走过了这个过程,我们才能把真正的核心技术握在自己手中。

本篇先简单介绍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所示。

图1

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

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

3、MDK注册

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

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

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

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

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

4、安装ME32F030 PACK包

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

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

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

5、新建工程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

依次类推,再添加以下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文件所在的那个文件夹,错选成它的上级或下级文件夹,是无法找到需要的头文件的!添加完成后的效果如下。

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

6、下载与调试

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

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

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

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

图标来下载并仿真程序。

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

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

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

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

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

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

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

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

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

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

标签: #下载的文件保存类型只有all files怎么办