MDK学习
参考资料
http://openedv.com/thread-96050-1-1.html
笔记基于正点原子官方视频
视频连接https://www.bilibili.com/video/BV1Wx411d7wT?p=71&spm_id_from=333.1007.top_right_bar_window_history.content.click
如有侵权,联系删除
1.编译、下载、查找快捷按钮
1)编译快捷按钮
(1)编译当前文件
(2)编译已经修改的文件(仅编译已修改的文件,这样可以节省编译时间)
(3)编译所有文件(一般使用这个即可,当设置过目标配置选项后,必须使用它来重新编译)
(4)停止编译当前文件(点一下取消不了可以多点几下)
2)程序下载快捷按钮
(1)下载前要先进行下载前设置
3)查找快捷按钮
(1)在文件中查找。这是我最常用的查找方式,特别是有多个模块时,当你要找到一个函数或变量是在那个文件中定义的,就可以单击这个图标来在全工程文件中查找。
(2)在当前文件中查找。在编辑框中输入要查找的关键字,按回车即可查到,连续按回车会跳到下一处。
(3)在当前文件中查找。单击后会弹出查找对话框,能进行一些设置,比如大小写区分等。
2.书签使用方法
这个功能还是很实用的,想象一下,当你的一个文件有很多代码的时候,寻找你需要的代码行就变得很不容易,这个时候,设置书签快捷键就派上了用场!
(1)设置书签。将鼠标定位到要标记的代码行,单击该图标则在代码行的左侧设下一个书签,再次单击该按钮,取消该代码行的书签。
(2)跳到上一书签。
(3)跳到下一书签。
(4)取消所有书签
注意:跳转到下一(或上一)书签只在当前文件夹下有用,不会跳转到其他文件夹
3.目标工具选项(Target Options …)
在MDK中图标如图:
-
设备选项卡(device )
在这里可以在图中2区域更改所使用的CPU,图中3区域是该cpu 的一些描述。 -
硬件目标设置选项卡(Target)
1:选择硬件目标设置选项卡
2:指定用于的晶振频率
3:在应用中可以选择实时操作系统(RTOS)。Keil 提供:
RTX Kernel: 它是一个非常有效的 RTOS,支持抢占式的任务调度、 消息和信号传送、信号量等等。 完整的版本带有源代码和包含一个Flash文件系统和TCP/IP协议栈。
4:指定选择 ARM 或者 Thumb 模式进行代码生成。
5:利用 Cross-Module优化为全局代码优化创建一个链接反馈文件。
6:使用MicroLib库。为进一步改进基于ARM处理器的应用代码密度,RealView MDK采用了新型microlib C库(用于C的ISO标准运行时库的一个子集),并将其代码镜像降低最小以满足微控制器应用的需求。Microlib C库可将运行时库代码大大降低。
7:选择大端模式。编译器默认都是小端模式,NXP的LPC2114处理器只支持小端模式,所以该项变成了灰色。三星的S3C2440既支持大端也支持小端,这样的处理器该项就可以选择了。
11:片外ROM设置,最多支持3块ROM(Flash),在Start一栏输入起始地址,在Size一栏输入大小。若是有多片片外ROM,需要在13区域设置一个作为启动存储块,程序从该块启动;有几块ROM需要选中对应的9区域。
12:片内ROM设置。设置方法同片外ROM,只是程序的存储区在芯片内集成。
17:片外RAM设置。基本同片外ROM,只是若选中19、20区域后,对应的RAM不会被默认初始化为0。
18:片内RAM设置。设置方法与片外RAM相同,只是数据的存储区域在芯片内集成。 -
输出选项卡(Output)
1:选择输出选项卡
2:指定输出文件的文件夹,这样做可以减少工程文件夹文件的数目。
3.可执行文件(.hex文件)的名字。可执行文件指生成的.hex文件,因此应先使能4区域。
4:使能后会产生可执行文件。
5.创建批文件
6.生成库文件
- 列表选项卡(Listing)
1:选择列表选项卡
2: 指定输出文件的文件夹,这样做可以减少工程文件夹文件的数目。
3:设置生成/禁止一些.lst、.txt文件。
4.设置生成/禁止一些.map文件(生成的代码详细信息就在这个文件里)
-
用户程序选项卡(User)
1:选择用户选项卡。
2:编辑源文件前运行用户程序。
3:编译前运行用户程序。
4:编译后运行用户程序。 -
C/C++选项卡
1:选择C/C++选项卡。
2:定义预处理符号。假如有一段代码使用了条件编译,如下所示:
#if ABC
void delay_tus(uint32 dly)
{
uint8 i;
for (; dly>0; dly--)
for (i=0; i<4; i++);
}
#endif
如果你想让编译器编译这段代码,有两种方法:
第一种方法:使用#define ABC
第二种方法:在图中2区域所示的编辑框中输入ABC。多个符号用逗号隔开。
3:使能/禁止ARM状态与Thumb状态交互。为了更好的优化存储空间,请使能该选项。
4:设置优化级别,共4级。Level 0为不优化,Level 3为最高级别优化。一般选择default ,即Level 2级优化。
5:附加的优化选项。
6:输出警告信息设置。为了更好的检查程序,设置成All即可。
7:头文件路径设置。
- Asm选项卡
该选项卡与C/C++选项卡十分类似。这里重点说说图中红色区域条件汇编控制符号的应用,因为这个在启动代码中可能会用到的。
摘录一段启动代码:
IF EF:EXTERNAL_MODE
LDR R0, =PINSEL2
LDR R1, =PINSEL2_Val
STR R1, [R0]
ENDIF
在这段代码中,如果在图中1区域的编辑框中输入了符号:EXTERNAL_MODE,则本段代码被编译。
-
连接选项卡(Linker)
对于不是特别大或者特殊的程序,选项卡的内容默认即可,编译器会自动按照你的设置生成连接选项。 -
调试选项卡(Debug)
1:打开调试选项卡。
2:使用软件仿真。
3:使用硬件仿真。
4,5:选中后,点击调试按钮自动运行到main函数。
4.查看函数变量定义的地方:go to definition…
前文有介绍
5.文本美化
下面有一些必需的设置
这里可以修改字体字号和颜色
6.语法检查&代码提示
在Text Completion选项中
(1)结构体语法检查
(2)函数语法检查
(3)输入多少个字符后开始语法检查
7.注释和取消注释方法
单行注释 //
多行注释 /* */
多行注释还有一种方法
选中需要注释的程序段,右键-Advanced-…(如图)
8.工程和文件操作(包括最近使用文件工程等)
(1)工程操作
打开方式
或
打开后界面如下:
新建一个工程分组和文件
完成后如下图
(2)文件操作
点击魔术棒
-C/C++
-...
-引入CORE文件夹
注意:这里选中COER文件夹,MDK只查找CORE文件夹下的文件,若CORE文件夹下还有其他子文件夹里的内容需要添加,则需要将其子文件夹再添加进去
9.打开某个视图(软件的工作界面)
正常的工作界面如下:
如果少了某个模块,我们可以点击菜单栏的View
,在里面调取所需的模块
如果小窗悬浮出来,双击窗口栏即可归位