项目创建过程
1.打开keil uVision5,点击上方project,选择new project
2.设置好项目名称和存储位置,然后选择芯片,本人选择的是STM32F103ZE
3.勾选下列选项,点击ok
4.在source group1里新建一个item,文件选择为asm file,本人取名为test
5.在test.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
6.点击左上角魔法棒,在debug中勾选use simulator,并选择J-link/J-TRACE Cortex,在output中勾选create HEX file
7.点击左上角build
8.点击右上角start/stop debug,出现下列画面则表示运行成功
hex文件分析
找到output目录下的hex文件
使用记事方式打开
如图,第一行的:020000040800F2中,可以看作是0x02 0x00 0x00 0x04 0x08 0x00 0xf2
第一个 0x02 为数据长度。
紧跟着后面的0x00 0x00 为地址。
再后面的0x04为数据类型,类型共分以下几类:
‘00’ Data Record//数据记录
‘01’ End of File Record//文件结束记录
‘02’ Extended Segment Address Record//扩展段地址记录
‘03’ Start Segment Address Record//开始段地址记录
‘04’ Extended Linear Address Record//扩展线性地址记录
‘05’ Start Linear Address Record//开始线性地址记录
然后,接着0x04后面的两个 0x08 0x00就是数据。
最后一个0xF2是校验码,效验码=0x100-累加和。
随便拿一条数据记录分析,比如第二条吧
内容 | 描述 |
---|---|
:100000:001806002031010008390100083B0100080A | |
10 | 数据将被下载到存储器当中的地址 |
00 | 记录类型(数据记录) |
1806…0008 | 数据 |
0A | 这个记录的校验和 |