IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 关于使用keil5软件进行stm32的简单嵌入编程 -> 正文阅读

[游戏开发]关于使用keil5软件进行stm32的简单嵌入编程

一、建立一个关于stm32的工程

打开keil5,如图先点击Project,再点击New uVision Project.

在这里插入图片描述
之后结果如图,在1处可以更改文件储存路径,2处为工程名字。
在这里插入图片描述
点击保存后如图,在红框中可以搜索需要的板子型号。
注意 :可能搜索之后无结果,有可能是搜索错误,或没有下载安装对应的pack包。
在这里插入图片描述
点击ok之后,如图选择运行环境。CMSIS中选择CORE;Device中选择Startup。
在这里插入图片描述
再次点击ok键后,工程即建立成功。

二、添加文件

先鼠标右击1处,再点击2处,添加文件。
在这里插入图片描述
因为此次准备使用汇编语言进行演示,所以文本格式选择第三个。输入名字点击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文件。其余步骤遍不多说了,我也不清楚。
在这里插入图片描述
此处页面中左边为软件调试设置,右边为有专有下载器的调试设置。选择左边的后,还需改变下方红框中的内容,选择对应板子。点击ok,就可以进行调试了。
在这里插入图片描述
调试结果如上图,左边为结果,调试正确。(断点设置是在代码行前点击,出现红点,即表明断点设置成功)

四、分析hex文件

1.最终生成程序各部分的大小。
在这里插入图片描述
2,hex文件格式简介
hex文件格式是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式有很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。
3,分析hex文件第一行内容。在这里插入图片描述
文件以行为单位,每行以冒号开头,内容全为16进制码
第一行可分为0x02、0x00、0x00、0x04、0x08、0x00、0xF2
0x02:表示数据长度

紧接着的两个0x00为地址

0x04:表示数据类型,有以下几类:
‘00’ Data Record//数据记录
‘01’ End of File Record//文件结束记录
‘02’ Extended Segment Address Record//扩展段地址记录
‘03’ Start Segment Address Record//开始段地址记录
‘04’ Extended Linear Address Record//扩展线性地址记录
‘05’ Start Linear Address Record//开始线性地址记录

再后面的0x08与0x00表示数据

0xF2:表示效验码,校验和,校验和= 0x100 - 累加和

五、总结

经历了各种各样的问题,总算是勉勉强强的写出来了。在过程中遇到了各种各样的问题,在解决问题中也使我记忆更加深刻。反正还有很多不会,连门都没看到,会继续努力。

六、参考

https://blog.csdn.net/qq_43279579/article/details/111717607

(其实在网上搜索了很多,但不好找了,再此谢谢各位大佬,纯正小白,欢迎指正)

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:21:42  更:2021-10-03 17:23:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/28 2:52:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码