【Keil】 Keil的搭建并配置,并编写简单的汇编程序


MDK源自德国的KEIL公司,是 RealView MDK的简称。在全球MDK被超过10万的嵌入式开发工程师使用。目前最新版本为:MDK5.21A,该版本使用uVision5 IDE集成开发环境,是目前针对ARM处理器,尤其是Cortex M内核处理器的最佳开发工具。

一、配置环境

1.MDK的安装

MDK(Microcontroller Development Kit)是针对ARM处理器,特别是Cortex-M内核处理器的最佳开发工具。

1.1 MDK5下载

keil官网网址下载

百度网盘分享下载
提取码:8520

1.2安装

  1. 下载后,请点击:mdk_xxx.exe,安装MDK软件

在这里插入图片描述
2.点击NEXT在这里插入图片描述3,勾选并点击NEXT
在这里插入图片描述
4.选择安装路径,并点击Next>>。
在这里插入图片描述
5、随意输入Name和E-mail,再点击Next>>

在这里插入图片描述
6、等待安装 并点击Finish
7、点击OK后,鼠标会变成转圈圈的,因为正在进行在线安装各种pack,但会安装失败,不用着急,右上角关掉窗口,下面开始手动安装pack包。
在这里插入图片描述

2、安装stm32 pack

(1)在刚解压缩的文件中,双击打开ARM.CMSIS.3.20.4包,出现安装界面后点击Next>>,开始安装。

在这里插入图片描述

(2)点击Finish。
在这里插入图片描述
在这里插入图片描述

(3)在刚解压缩的文件中,双击打开Keil.STM32F1xx_DFP.1.0.4包,出现安装界面后点击Next>>,开始安装。

在这里插入图片描述

(4)安装结束后点击Finish。

在这里插入图片描述
在这里插入图片描述

(6)安装2.2.0的STM32 pack

在这里插入图片描述

二、Mdk使用配置技巧

1.设置tab键为2个空格

进入Configuration->Editor,设置如下:
勾选 Insert spaces for tabs项 即这是tab键为空格填充,设置Tab size的数值可以设置填充的空格数,常用的是2或4
在这里插入图片描述

2.代码自动补齐

进入Configuration->Text Completion,设置如下:
勾选“Symbols after”,然后在方框内输入“3”,即输入3个字符就开始字符匹配。最后使用鼠标左键单击“OK”保存配置。

3.语法动态错误检测

进入Configuration->Text Completion,设置如下:
勾选即开启语法动态错误检测

4.右边距指示

进入Configuration->Editor,设置如下:
编辑分隔符标记的位置号。位置号的默认值是80,范围[1-999]。

下拉可选择:

None:无标记;

Vertical Line:虚线标记;

Colored Background:背景颜色标记。

三、编写 一个简单的汇编程序

1、创建新工程

1.1创建工程
①点击Project,选择New uvison Projec
在这里插入图片描述
②选择文件保存的路径以及文件的名称
2.环境配置
①选择对应的芯片,本文章采用的STM32F103C8T6
在这里插入图片描述

②运行环境选择,主要是CMSIS下选择CORE;Device下Startup,其中包含了启动文件
在这里插入图片描述

自此,一个工程的建立就算完成了。

2、添加文件

1.鼠标右键单击Source Group 1,选择Add New Item to Group

在这里插入图片描述
2.选择 Asm File (.s) ,设置源文件的名称,点击Add
在这里插入图片描述

自此,添加文件的过程就完成了,就可以开始编写汇编程序。

3、汇编程序

代码

 AREA MYDATA, DATA
	
 AREA MYCODE, CODE
	ENTRY
	EXPORT __main

__main
	MOV R0, #10
	MOV R1, #11
	MOV R2, #12
	MOV R3, #13
	;LDR R0, =func01

	BL	func01
	;LDR R1, =func02
	BL	func02
	
	BL 	func03
	LDR LR, =func01
	LDR PC, =func03
	B .
		
func01
	MOV R5, #05
	BX LR
	
func02
	MOV R6, #06
	BX LR
	
func03
	MOV R7, #07
	MOV R8, #08	
	BX LR



选择仿真器
设置硬件仿真器为ST_Link(根据自己的实际情况进行选择),仿真器的模式设置为JTAG接口或者SW(根据自己的实际情况进行选择)。设置完成,连接相应的仿真器会有对应信息显示。
在这里插入图片描述

仿真调试(断点设置是在代码行前点击,出现红点,即表明断点设置成功)
在这里插入图片描述

调试效果
在这里插入图片描述

最终结果可以看出寄存器的值与设置的值一致。

4、分析编译生成的Hex文件

1.最终生成程序的各部分的大小
在这里插入图片描述

2.分析Hex文件第一行内容
在这里插入图片描述

第一行内容分别是0x02,0x00,0x00,0x04,0x08,0x00,0xF2。

0x02
该行数据中有两个数据
0x00 0x00
本行数据的起始地址位
0x04
用来标识扩展线性地址的记录
该字节还可以是其他值,下面是其他值的含义
00:用来记录数据,HEX文件的大部分记录都是数据记录
01:用来标识文件结束,放在文件的最后,标识HEX文件的结尾
02:用来标识扩展段地址的记录
03:开始段地址记录
05:开始线性地址记录
0x08 0x00
该行两个字节的数据
数据类型是 04 ,即该行记录的是一个拓展地址(0x08 0x00 是地址信息,用法是将该地址(0x0800<<16) 后作为基地址
0xF2
校验和,校验和= 0x100 - 累加和

五、参考资料

基于MDK创建纯汇编语言的STM32工程——汇编实现LED闪烁
ARM开发:使用MDK编译stm32简单程序(闪烁LED)

猜你喜欢

转载自blog.csdn.net/qq_52201641/article/details/127175778