作者:Jasper-ling玲 | 来源:互联网 | 2023-09-12 15:27
文章目录1.KEIL的下载及安装1.1mdk531的下载1.2mdk531的安装2基于STM32编写汇编程序2.1在Keil中新建工程2.2添加源文件2.3编译并调试程序2.4HE
文章目录 1.KEIL的下载及安装 1.1 mdk531的下载 1.2 mdk531的安装 2 基于STM32编写汇编程序 2.1 在Keil中新建工程 2.2 添加源文件 2.3 编译并调试程序 2.4 HEX文件分析 3 总结 4 参考文献
1.KEIL的下载及安装 1.1 mdk531的下载 链接:https://pan.baidu.com/s/1uiPGz_5Gorv0wOsAGUQsvg 提取码:3an4
1.2 mdk531的安装 解压压缩包后以管理员身份运行mdk531.exe
点击Next
勾选同意后,点击Next
选择好安装目录后点击Next
双击一下文件,安装STM32库
安装好后,我们可以激活它,以管理员身份运行Keil uVision5(注意一定要用管理员身份运行,否则无法激活),点击File中的License Management
之后会出现以下界面,复制红框中的CID码
解压keygen压缩包后,双击打开
第一步Target选择ARM,第二步将License Management中复制的CID码粘贴到注册机中的CID框中,第三步点击Generate,第四步将框中出现的Code码复制到License Management窗口中的New License ID Code中,然后点击Add LIC即可激活到2032。
2 基于STM32编写汇编程序 2.1 在Keil中新建工程 点击Project——>New uVision Project创建一个新工程
选择保存路径,最好每个工程都新建一个文件夹,命名文件后点击保存
在以下界面中选择自己对应的芯片
点击OK后会自动弹出以下窗口,勾选CMSIS中的CORE和Device中的Startup即可
2.2 添加源文件 在新建好的工程中找到Source Group 1后右键,然后点击Add New Item to Group Source Group 1…
因为我们是汇编文件,所以选择.s结尾的Asm File,然后输入文件名后点击添加即可。
编写汇编程序
AREA MYDATA, DATAAREA MYCODE, CODEENTRYEXPORT __main__mainMOV R0, #10MOV R1, #11MOV R2, #12MOV R3, #13;LDR R0, =func01BL func01;LDR R1, =func02BL func02BL func03LDR LR, =func01LDR PC, =func03B .func01MOV R5, #05BX LRfunc02MOV R6, #06BX LRfunc03MOV R7, #07MOV R8, #08 BX LREND
2.3 编译并调试程序 Ctrl+F7编译程序
右键工程点击Options for Target ‘Target1’,或点击红色小方框标记出的魔法棒
在Output下勾选Create HEX File以创建HEX文件
F7或点击Build,我们可以观察到hex文件的生成
在Debug下勾选Use Simulator(因为我们这里仅使用软件仿真),勾选Run to main()。更改Dialog DLL项为DARMSTM.DLL和TARMSTM.DLL;parameter项为-pSTM32F103C8,用于设置支持STM32F103C8的软硬件仿真。
点击Start/Stop Debug Session开始调试
在调试界面下设置断点进行动态调试,我们在MOV R3, #13处设置断点
点击Run(F5)运行,我们可以看到R0,R1,R2都发生了改变,而R3仍为0。
取消断点,我们可以看见R0—R3,R5—R8都发生了变化
2.4 HEX文件分析 打开生成的hex文件
:020000040800F2
第一个字节 0x02表示本行数据的长度; 第二、三个字节 0x00 0x00表示本行数据的起始地址; 第四个字节 0x04表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05。 后面是数据字节0x08和0x00 最后一个字节 0xF2为校验和。
数据类型如下: 00: Data Rrecord 用来记录数据,HEX文件的大部分记录都是数据记录 01: End of File Record 用来标识文件结束,放在文件的最后,标识HEX文件的结尾 02: Extended Segment Address Record 用来标识扩展段地址的记录 03: Start Segment Address Record 开始段地址记录 04: Extended Linear Address Record 用来标识扩展线性地址的记录 05:Start Linear Address Record 开始线性地址记录
3 总结 本文讲述了keil中进行的软件仿真,虽然过程简单,却也遇到不少问题,好在都顺利解决了。如有不足,欢迎指出!
4 参考文献 https://blog.csdn.net/qq_45237293/article/details/111825193?spm=1001.2014.3001.5501 https://blog.csdn.net/qlexcel/article/details/5494909