一、创建一个新的工程
1.双击已经下好的MDK.5,打开之后点击菜单栏的project,如下图所示:
点击之后设置工程的文件路径,设置项目名称,最后保存,具体如下图:
?2、为工程选择合适的配备环境,本文选择芯片STM32F103RC,具体如下:
? ? ? ??
然后是运行环境选择,CMSIS下选择CORE,Device下选择Startup,然后点击OK,如下图:
?二、添加源文件
鼠标右键单击Source Group 1,选择Add New Item to Group,如下图:
?选择 Asm File (.s) ,设置源文件的名称,点击Add,如下图:
所有添加文件和环境准备完成之后,开始下一步的汇编语言。
三、汇编语言
?代码
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
设置仿真器信息,进行编译和仿真调试,具体操作结果如下:
得到Hex文件???
四、分析生成的Hex文件?
文件转载到记事本上:
?由上图可知:
第一行内容分别是0x02,0x00,0x00,0x04,0x08,0x00,0xF2。
0x02 该行数据中有两个数据 0x00 0x00 本行数据的起始地址位 0x04 用来标识扩展线性地址的记录 该字节还可以是其他值,下面是其他值的含义 00:用来记录数据,HEX文件的大部分记录都是数据记录 01:用来标识文件结束,放在文件的最后,标识HEX文件的结尾 02:用来标识扩展段地址的记录 03:开始段地址记录 05:开始线性地址记录 0x08 0x00 该行两个字节的数据 数据类型是 04 ,即该行记录的是一个拓展地址(0x08 0x00 是地址信息,用法是将该地址(0x0800<<16) 后作为基地址 0xF2 校验和,校验和= 0x100 - 累加和。
五、参考资料
https://blog.csdn.net/qq_43279579/article/details/111717607https://blog.csdn.net/qq_43279579/article/details/111717607
|