一、新建工程
双击打开MDK5.26,启动界面如下所示;
在菜单栏找到新建工程 Project
然后选择 New uVision Project…
在弹出的窗口分别设置;
1.设置项目工程的路径;
2.设置项目工程的名称,这里使用TEST;
3.点击保存;
具体如图:
二、配置环境
2.1 选择设备
设置工程的目标环境,本文基于STM32F103ZET6,因此在弹出的窗口选择相应的选项,点击保存即可;具体如下图所示;
2.2 选择运行环境
ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择即可;
1.CMSIS下选择CORE;
2.Device下Startup,其中包含了启动文件;
具体如下图所示;
2.3 添加源文件
鼠标右键单击Source Group 1,具体如下图所示;
选择Add New Item to Group
添加源文件,因为创建汇编项目;
1.选择 Asm File (.s) ,创建汇编文件;
2.设置源文件的名称;
3.点击保存;
最后完成如下图所示;
三、测试代码
3.1 源码
代码如下:
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
3.2 仿真器设置
设置硬件仿真器为ST-Link Debugger,具体根据自己的实际情况进行选择,如下图所示;
3.3 编译调试
编译调试
得到结果
没有错误即可忽略警告。
点击调试按钮
调试结果如图
会生成 HEX文件
用记事本打开 hex 文件,都是一连串的十六进制
扩展线性地址记录(hex 文件的第一排十六进制)也叫作 32 位地址记录或 HEX386 记录
这些记录包含数据地址的高 16 位
扩展线性地址记录总是有两个数据字节,外观如下(这里我通过标记方便对应原始数据):
1.当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从 Intel HEX 文件读取来的随后的记录
2.线性地址保持有效,直到它被另外一个扩展地址记录所改变
3.通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址
四、 参考资料
https://blog.csdn.net/ssj925319/article/details/111868500
总结
要想将程序烧录到单片机上,必须先生成 hex 文件,才能下载到单片机上。这次实验使得我初步了解了如何从新建工程到烧录代码的全过程。