相关文章:敏矽微电子Cortex-M0学习笔记01——芯片简介
本篇先简单介绍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通过红叉按钮删除掉。
向每个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:全速运行,此功能是让程序全速运行,除非认为暂停或者遇到断点,否则程序会一直运行。
来源:敏矽MCU
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。