文章目录
一、新建项目
keil5不是在file里创新项目,而是在project里,运行keil5并新建项目
接下来设置路径,项目名称随便填,保存
根据自己的硬件设备选择,没有硬件就随意选择STM32F103中的一个,我这里选了STM32F103RC
如图勾选然后点ok
二、编写代码进行测试
右键source group1,添加新项目
创建汇编文件
输入代码
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
点击魔法棒进行仿真器调试,根据自己的实际情况进行设置
如果没有硬件进行仿真调试需要改变这一步的操作,
将Dialog.DLL改为DARMSTM.DLL,Parameter里根据自己的设备来选,应为我新建的时STM32F103RC,所以改为-pSTM32F103RC,如果要生成hex文件需要在output中选中
如下图操作,编译工程并进入调试模式;
结果没有问题
三、查看.hex文件
在魔法棒output中查看路径,找到.hex文件打开
文件内容和如下:
如图,第一行的:020000040800F2中,可以看作是0x02 0x00 0x00 0x04 0x08 0x00 0xf2,其前四个字节和最后一个字节有特殊含义,中间为数据
第一个字节0x02表示数据长度,二三字节表示数据的起始地址,第四个字节表示记录的数据类型。从‘00’到‘05’共六种,他们代表的意义依次为数据记录、文件结束记录、扩展段地址记录、开始段地址记录、扩展线性地址记录和开始线性地址记录。
四、参考资料
基于MDK下的STM32F103纯汇编语言练习
MDK基于STM32汇编程序并编写软件程序