基于MDK创建纯汇编语言的STM32工程


一、新建工程

双击打开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 文件,才能下载到单片机上。这次实验使得我初步了解了如何从新建工程到烧录代码的全过程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值