当前位置:首页 » 《随便一记》 » 正文

搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写_Uaena.&的博客

16 人参与  2022年02月27日 10:52  分类 : 《随便一记》  评论

点击全文阅读


目录

  • 一、搭建并配置Keil嵌入式开发环境
    • (一) Keil MDK-ARM下载
    • (二) Keil MDK-ARM安装
    • (三) Keil MDK-ARM注册
  • 二、基于STM32汇编程序的编写
    • (一)新建工程
    • (二)添加源文件
    • (三)代码编写与调试
    • (四)分析生成的HEX文件
  • 三、总结

一、搭建并配置Keil嵌入式开发环境

(一) Keil MDK-ARM下载

官网下载地址
https://www.keil.com/download/product/

(二) Keil MDK-ARM安装

1.双击安装包,点击Next。
在这里插入图片描述
2.勾选同意协议,点击Next。
在这里插入图片描述
3.选择软件安装路径和支持包安装路径,点击Next。
在这里插入图片描述
4.填写基本信息,点击Next。在这里插入图片描述
5.安装中···
在这里插入图片描述
6.过程中弹出窗口,点击安装。
在这里插入图片描述
7.点击Finish,完成安装。
在这里插入图片描述

(三) Keil MDK-ARM注册

1.以管理员身份打开Keil,点击(File->License Management),复制CID。
在这里插入图片描述
2.打开注册机获取注册码,将注册码添加到注册窗口中。
在这里插入图片描述

二、基于STM32汇编程序的编写

(一)新建工程

1.点击Project->New uVision Project。
在这里插入图片描述
文件命名并保存。
在这里插入图片描述
2.选择仿真芯片。
在这里插入图片描述
3.CMSIS下选择CORE,Device下Startup(其中包含了启动文件)打勾,点击OK。
在这里插入图片描述

(二)添加源文件

1.右击Source Group 1,点击Add New Item to Group‘Source Group 1’···
在这里插入图片描述
2.选择文件类型,点击Asm Files(.s)添加汇编文件,输入文件名,点击Add。
在这里插入图片描述
3.点击Source Group 1左边的加号,看到test.s,添加成功。
在这里插入图片描述

(三)代码编写与调试

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…,在Output界面下,勾选Create HEX File,才生成hex文件。
在这里插入图片描述
在这里插入图片描述
在Debug界面,勾选Use Simulator,点击OK保存。
在这里插入图片描述
点击Rebuild编译。
在这里插入图片描述
编译成功。
在这里插入图片描述
3.程序调试
设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter项为“-pSTM32F103C8”,用于设置支持STM32F103C8的软硬件仿真。
在这里插入图片描述
点击图标进入调试。
在这里插入图片描述
点击Run运行程序。
在这里插入图片描述
结果如图。
在这里插入图片描述

(四)分析生成的HEX文件

找到生成的HEX文件。
在这里插入图片描述
打开如下:
在这里插入图片描述
1.扩展线性地址记录
:020000040800F2 hex文件的第一排十六进制,也叫作 32 位地址记录或 HEX386 记录。这些记录包含数据地址的高16位。扩展线性地址记录总是有两个数据字节。
2.数据部分
Intel HEX 由任意数量的十六进制记录组成。每个记录包含 5 个域,它们按一定格式排列,:llaaaatt[dd…]cc。每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节。
3.文件尾
:00000001FF 在文件的最后一排,是一个文件的结束标志。

三、总结

搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写。实验难度不大,调试过程中还是遇到一些小问题,最后多方面查询并解决了问题。
参考文献
https://blog.csdn.net/m0_58414679/article/details/120467462
https://blog.csdn.net/qq_43279579/article/details/108880667


点击全文阅读


本文链接:http://zhangshiyu.com/post/35459.html

点击  文件  安装  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1