目录
一、创建新的项目
1.新建工程
首先点击Project
选择New uVision Project创建一个新的项目
将文件命名后再将其保存
然后会弹出一个窗口选择芯片,选择STM32F103VE,然后点击ok
在CMSIS
下选择 CORE
;Device
下 Startup,然
后点击OK
2.添加源文件
点击Target1选择 Source Group 1
,点击 Add New Item to Group 'Source Group 1'
选择 Asm Files (.s)
添加汇编文件,然后输入文件名,并点击 Add
添加完成后就可以进行程序的编译并运行调试。
二、编写程序运行,调试
在TSET下编写程序代码,如下
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
1.程序的编译
点击 Options for Target,在Output界面下,勾选 Create HEX File
,生成 hex 文件
然后在 Debug界面下,勾选 Use Simulator
,进行虚拟调试,点击OK
保存设置
再将debug中的Dialog和右侧Parameter
点击build和rebuild进行编译
2.程序调试
点击start开始运行仿真
结果符合预期,寄存器 R5
,R6
,R7
,R8
的值和程序设置一致
三、分析生成的HEX文件
扩展线性地址记录(hex 文件的第一排十六进制)也叫作 32 位地址记录或 HEX386 记录
这些记录包含数据地址的高 16 位
扩展线性地址记录总是有两个数据字节
通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址
Intel HEX 由任意数量的十六进制记录组成。每个记录包含 5 个域,它们按一定格式排列::llaaaatt[dd...]cc
每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字
在文件的最后一排,是一个文件的结束标志:
:00000001FF
四、总结
总的来说在在Keil环境下创建STM32汇编语言工程需要前期的准备工作较多,需要先进行一些设置和选择相应的部分,在整个的调试过程中我也存在着许多的问题,还存在很多的不足需要去改正。
五、参考文献