一、在Keil 里面创建新项目
- 点击 Project ——> New uVision Project 创建新项目
![在这里插入图片描述](https://img-blog.csdnimg.cn/0993dd599eaa4aa2988b41fb0b1fe457.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) - 命名并点击确定
![在这里插入图片描述](https://img-blog.csdnimg.cn/5769782fa3164623973157379cf7eee0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) - 选择芯片,然后点击OK
![在这里插入图片描述](https://img-blog.csdnimg.cn/b0c22dd1fc8d4d28873582deeade3f9f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) - CMSIS 下选择 CORE;Device 下选择 Startup,选完后点击OK
![在这里插入图片描述](https://img-blog.csdnimg.cn/e92231672567436188af5b337e6bd246.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) - 添加源文件,右击 Source Group 1 ,点击 Add New Item to Group ‘Source Group 1’…
![在这里插入图片描述](https://img-blog.csdnimg.cn/55247e6de25549728e54dc67c2495bd6.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) - 选择文件类型,点击 Asm Files (.s) 添加汇编文件,然后输入文件名,并点击 Add
![在这里插入图片描述](https://img-blog.csdnimg.cn/0233ab60a5cb47a08e103a74e9bd18d1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/e80c02442777456a96f57c48df2cce90.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16)
二、代码编写、编译与调试
1.代码编写
在 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
2.程序编译
先进行一些初始设置,点击 Options for Target… ![在这里插入图片描述](https://img-blog.csdnimg.cn/0c111be1b78f4f7b992ecc6d30de0119.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 在Output界面下,勾选 Create HEX File,以生成 hex 文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/a614dbb3ff134612a6ea163357fb007f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 在 Debug界面下,勾选 Use Simulator,因为在后面我们要进行虚拟调试,后OK 保存设置 ![在这里插入图片描述](https://img-blog.csdnimg.cn/179070e7d8c64ee6a6503ab61f85103f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 点击Rebuild进行编译 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fc1e1fd238bc4dca9045736597c68193.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 编译成功,没有错误 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3a7339a561454a30aeef883f11b044c2.png)
3.程序调试
在此之前,我们需要修改Dialog和右侧Parameter如下图: ![在这里插入图片描述](https://img-blog.csdnimg.cn/0a2372b6548e459685670e2876f408f1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 然后点击右上角图标进入调试界面 ![在这里插入图片描述](https://img-blog.csdnimg.cn/9d1840bd29d848c7815f0faf67e81c3f.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16) 通过调试运行,结果符合预期,寄存器 R5,R6,R7,R8 的值和程序设置一致,具体如下图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/c29faa26a20744e5bc352b0bb356bd62.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16)
三、分析生成的HEX文件
用记事本打开hex文件,是一串十六进制字符 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e82950efbc1f46b4b70981d321419652.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6Lev6L-HX-WQrOmbqOWjsA==,size_20,color_FFFFFF,t_70,g_se,x_16)
总结
在Keil环境下创建STM32汇编语言工程还是相对简单的,不过在调试的过程中也遇到了一些问题,在Debug 界面下的Dialog 和右侧Parameter 因为开始并没有更改,所以一直存在问题。
参考博客 https://blog.csdn.net/m0_58414679/article/details/120467462utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr
|