一.keil环境搭建
安装教程如下https://blog.youkuaiyun.com/dengjin20104042056/article/details/108057907
二.stm21工程的创建
project->new uVision project
选择支持包STM32F103VE
配置环境
如图点击
在刚建立的.s文件中输入如下代码
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
点击如下图标
在弹窗中如下选择
调整debug如下图
rebuild编译
图标如下
结果如下
run
调试得到的结果为
记事本打开hex文件
- 扩展线性地址记录:020000040800F2
- 扩展线性地址记录(hex 文件的第一排十六进制)也叫作 32 位地址记录或 HEX386 记录
- 这些记录包含数据地址的高 16 位
- 扩展线性地址记录总是有两个数据字节,外观如下
- 当一个扩展线性地址记录被读取,存储于数据域的扩展线性地址被保存,它被应用于从 Intel HEX 文件读取来的随后的记录
- 线性地址保持有效,直到它被另外一个扩展地址记录所改变
- 通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址
- 内容分析:数据记录
- Intel HEX文件由任意数量以回车换行符结束的数据记录组成,比如第一行数据记录:
- 1000000000040020ED000008F5000008F7000008DB
- Intel HEX文件由任意数量以回车换行符结束的数据记录组成,比如第一行数据记录:
- 内容分析:文件尾
- 在文件的最后一排,是一个文件的结束标志(END OF FILE RECORD)::00000001FF
- 00000001FF
- 在文件的最后一排,是一个文件的结束标志(END OF FILE RECORD)::00000001FF