本篇先简单介绍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
美图手机怎么截图?教你最方便的三招搞定!
AMR\AGV机器人相比人力工作,它有哪些优势
进入Micro LED时代,传统封装方式不再适用
三星Galaxy Fold 2专利图曝光采用了水滴造型设计搭载六颗摄像头
桥梁在线监测系统解决方案
敏矽微电子Cortex-M0学习笔记02——Cortex-M0开发环境的建立及调试
三地控制一盏灯电路图和工作原理讲解
新能源汽车已成热门选择,北京超44万人申请指标 ,申请人数已排至2027年
苹果下一步将用汽车来捞金?还挖走特斯拉设计师
TOPSwitch?Ⅱ在稳压电源中的应用
Snapchat推出具有增强现实功能的相机效果,可激发社交距离
小米POCO X2今日在印度首售,搭载液冷散热模块
你知道linux socket进程通信是怎样实现的?
插入式测温仪适用于哪些场所进行温度检测
双核三防机松下Eluga正式开卖
开关管的工作原理 开关管怎么检测好坏
不伤耳膜的耳机哪种好,保护听力的耳机品牌
ZESS 500
2023年全球半导体行业收入报告:英特尔超越三星位居第一
LV30二维码扫描识别模块,助力手持机二维码扫描更加便捷、高效