MDK5.28(KEIL)使用经验总结(持续更新)

从一开始学习嵌入式开发,用的开发环境就是Keil,所以到现在也算是对它比较熟悉吧。本文是对它的一些使用经验总结:包括使用小技巧、常见错误解决等。本文内容基于MDK5.28(KEIL5.28版本)。

文章目录

    • 从安装开始
          • 32位单片机开发环境的搭建
          • 搭建兼容C51的环境
    • 如何优雅地调试
          • 用KEIL仿真
          • 用Jlink/JTag调试
    • 常见报错信息与解决办法

从安装开始

软件的安装先从32位的单片机开始,安装好之后我们再配置51的开发环境。

32位单片机开发环境的搭建

第一步:获取.exe文件,去官网下载自己喜欢的版本,然后管理员身份运行并安装在一个自己喜欢的路径下面即可。网上教程很多,这里不做过多的描述。
第二步:激活,激活教程网上也有很多,这里不讲。
第三步:手动导入.pack文件,因为KEIL5安装的时候不会自动把你想要开发的单片机的.pack安装,这和KEIL2和KEIL3有点不同,后两个安装的时候就会把51单片机的pack自动安装。不导入.pack文件的话,新建工程的时候你会神奇的发现找不到自己想要的单片机型号。导入自定义.pack文件之前需要先下载对应的pack文件,Keil官网提供各种厂商的单片机的.pack文件,以stm32为例:比如我要建立基于stm32f40x系列单片机的IDE,就先准备好下面的文件:
MDK5.28(KEIL)使用经验总结(持续更新)_第1张图片
然后,打开桌面上的Keil快捷图标,点击下面的按钮,然后断网,并按下图箭头的指示选择本地pack文件并点击“打开”,最后等着右下角的进度条跑完即可。注意,如果选择本地导入的话一定要断网!

MDK5.28(KEIL)使用经验总结(持续更新)_第2张图片
第四步:新建一个project并开心地敲代码。

搭建兼容C51的环境

如果只做到上一步是不能开发C51的,因为KEIL4及以上的版本就不再把51的开发库自动安装了。KEIL2和3是可以的,但是安装两个Keil软件总感觉太不爽,所以我们要手动配置一下,搭建一个还能开发C51的IDE。
第一步:下载一个安装包,名叫c51v960a.EXE,Keil官网也有,如果找不到或者嫌下载网速慢的话可以私聊笔者。然后双击点击安装,它会自动定位MDK的安装位置,直接点击Next就行了,安装好后再次打开Keil就可以建立基于C51单片机的project了。

如何优雅地调试

用KEIL仿真

当代码量不大的时候,是可以通过Keil直接来仿真的。步骤如下:
第一步:点击魔术棒,然后按下图所示配置:
MDK5.28(KEIL)使用经验总结(持续更新)_第3张图片
第二步:选中Debug选项卡,按箭头修改相关配置如下:
MDK5.28(KEIL)使用经验总结(持续更新)_第4张图片
注意,单片机的型号要和新建project的时候选择的单片机型号相一致。

然后点击:红色的“d”按钮,如下图:
MDK5.28(KEIL)使用经验总结(持续更新)_第5张图片
选中调试窗口里的“Logic Analyzer”(逻辑分析仪),如下图:
MDK5.28(KEIL)使用经验总结(持续更新)_第6张图片
会出现下面的样子:
MDK5.28(KEIL)使用经验总结(持续更新)_第7张图片
先点击左边的“Setup”按钮,然后新建要分析的引脚,输入“PORTx.n”,x为ABCDEFG,n为0-15的数字,然后修改引脚属性为bit,最后点击close后,再点击全速运行代码,就会出现理想的波形了。 再点击红色的“d”就会退出软件仿真。

用Jlink/JTag调试

用这种方法调试的时候首先要修改调试方式,如下图:
MDK5.28(KEIL)使用经验总结(持续更新)_第8张图片
然后点击上面的红色的“d”按钮,代码会先通过烧录器下载到单片机的flash里面,会进入类似上面仿真的界面:
在这里插入图片描述
从左到右分别是:复位、全速运行代码到断点处、灰色的×是用来退出全速运行状态的,后面4个是单步调试的按钮,对应的是:进入函数运行(如果主函数里面调用的子函数就会进入子函数,如果子函数还调用了别的子函数那还要进入第二级的子函数,以此类推)、跳过子函数(把子函数视为普通的语句)、跳出子函数(和第一个相反)、快速进入光标行。
上面提到了断点,断点的设置就是单击行号左侧的空白区。如下图:
MDK5.28(KEIL)使用经验总结(持续更新)_第9张图片
再次点击红点就会取消设置的断点。

常见报错信息与解决办法

碰到了再写。。。

报错语句 解决办法
xx.c(40): error: #268: declaration may not appear after executable statement in block 错因:xx.c文件的第40行有一个变量声明语句,Keil里面不允许在代码块中间声明变量,只能在代码段的开头声明;解决办法:把该行语句放到代码段(例如函数体)的最开始的地方。

未完待续。。。

你可能感兴趣的:(经验分享,单片机,嵌入式软件开发,单片机,嵌入式,stm32,软件使用技巧)