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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写 -> 正文阅读

[嵌入式]搭建并配置Keil嵌入式开发环境,完成一个基于STM32汇编程序的编写

?

一、keil环境的搭建

1、从网上下载mdk531、注册器、支持包。

2、点击安装mdk,根据提示更改路径(用英文且不要有空格),填写完注册信息后点击next等待安装,安装完成后点击finish。
在这里插入图片描述
在这里插入图片描述

3、点击运行注册器程序,在桌面找到keil,右击用管理员身份运行,点击File->Lincense ->Management->Single-User Lincense,找到CID,复制CID中的内容到注册器的CID处,将注册器的target选择为ARM,点击Generate,生成注册码。

在这里插入图片描述

4、将生成的注册码复制粘贴到keil的New Lincense ID Code空白处,点击Add LIC,点击close。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、支持包安装,点击下载的支持包,NEXT开始安装,安装完成后点击Finish。
在这里插入图片描述

二、STM32汇编

1、新建工程

打开keil,Project->New uVision Project新建项目,设置工程项目名称和路径。

2、选择需要使用的芯片

在这里插入图片描述

3、对Run-Time Environment进行设置,设置完成后,点击OK,工程建立完成。

在这里插入图片描述

4、添加文件

右击点击Source Group 1->Add New Item to Group “Source Group 1”,添加Asm File(.s)文件,命名test并保存。在这里插入图片描述

5、添加源文件

为其添加如下代码

 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

六、设置仿真器模式

点击菜单中Project->Options for Target ‘Target1’选择Use Simulation,将Dialog DLL和Parameter修改为自己选择的设备,点击OK。
在这里插入图片描述

七、编译调试

在这里插入图片描述
第三行菜单栏第二个图标是编译按钮,点击编译操作结束后出现“0 Error(s),0 Warning(s)"表示程序中没有错误的语法出现,如果存在有错误的语法,我们可以双击该行,然后就会定位到出错的位置再进行相应的修改;
在这里插入图片描述
红圈所标注的图标是调试按钮
在主界面上方的调试工具条中,我们选择单步执行命令按钮,选择此命令后,在调试的过程中就会逐行程序的执行,此时可以观察该行程序执行完以后得到的结果,方便我们的调试;
在这里插入图片描述
在调试命令执行之后,源程序窗口的左边会出现一个黄色调试箭头,每执行一次程序,箭头就会指向程序所在的那一行。
在这里插入图片描述
在这里插入图片描述
调试运行,结果符合预期,寄存器R5,R6,R7,R8的值和程序设置一致

八、分析HEX文件

点击Project->Options for Target ‘Target1’点击Output,给creat
create HEX File前面打勾会生成hex文件,点击Select Folder for Objects可以看到hex的位置。
在这里插入图片描述

:020000040800F2
:100000000006002031010008390100083B0100080A
:100010003D0100083F010008410100080000000008
:100020000000000000000000000000004301000884
:1000300045010008000000004701000849010008D0
:100040004B0100084B0100084B0100084B01000860
:100050004B0100084B0100084B0100084B01000850
:100060004B0100084B0100084B0100084B01000840
:100070004B0100084B0100084B0100084B01000830
:100080004B0100084B0100084B0100084B01000820
:100090004B0100084B0100084B0100084B01000810
:1000A0004B0100084B0100084B0100084B01000800
:1000B0004B0100084B0100084B0100084B010008F0
:1000C0004B0100084B0100084B0100084B010008E0
:1000D0004B0100084B0100084B0100084B010008D0
:1000E0004B0100084B0100084B0100084B010008C0
:1000F0004B0100084B0100084B0100084B010008B0
:100100004B0100084B0100084B0100084B0100089F
:100110004B0100084B0100084B0100084B0100088F
:100120004B0100084B0100084B0100084B0100087F
:100130000948804709480047FEE7FEE7FEE7FEE77B
:10014000FEE7FEE7FEE7FEE7FEE7FEE704480549B7
:10015000054A064B7047000041020008990200085A
:100160000000002000060020000200200002002005
:10017000704770477047000080B500F001F880BDFF
:1001800082B041F204000021C4F20200019100910A
:1001900050F8041C41F4803140F8041C50F8041C51
:1001A00001F400310091019901310191009919B9CF
:1001B0000199B1F5A06FF1D150F8041C890354BF27
:1001C0000021012100910099012936D142F200015C
:1001D000C4F202010A6842F010020A600A6822F0C2
:1001E00003020A600A6842F002020A6001680160C4
:1001F00001680160016841F480610160016821F4D7
:100200007C110160016841F4E811016050F8041CA0
:1002100041F0807140F8041C50F8041C8901FBD5A2
:10022000016821F003010160016841F002010160F1
:10023000016801F00C010829FAD102B070470000F2
:1002400080B541F20000C4F202000168002241F0D2
:10025000010101604168CFF6FF0211404160016871
:100260004FF6FF72CFF6F66211400160016821F48B
:1002700080210160416821F4FE0141604FF41F01BB
:100280008160FFF779FF4EF60850CEF200004FF084
:100290000061016080BD00004FF00A004FF00B01CB
:1002A0004FF00C024FF00D0300F009F800F00AF8CF
:1002B00000F00BF8DFF81CE0DFF81CF0FEE74FF071
:1002C000050570474FF0060670474FF007074FF0DF
:0C02D00008087047BF020008CB020008BD
:040000050800029954
:00000001FF

什么是hex文件
它是由一行行符合Intel HEX 文件格式的文本所构成的ASCII 文本文件。每一行包含一 个 HEX 记录 ,由对应机器语言码和/或常量数据的十六进制编码数字组成。Hex文件通常用于传输将被存于ROM 或者EPROM 中的程序和数 据。大多数EPROM 编程器或模拟器使用Intel HEX 文件。Hex文件是可以烧写到单片机中,被单片机执行的一种文件格式,生成Hex文件的方式由很多种,可以通过不同的编译器将C程序或者汇编程序编译生成hex。
Intel HEX 由任意数量的十六进制记录组成。每个记录包含5个域,每一组字母 对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节。
在这里插入图片描述
在这里插入图片描述

该文件为16进制的一串字符,hex文件的第一排字符称为扩展线性地址记录,也叫做32位地址记录或HEX386记录。
??其中第一行 :020000040800F2 中,可以看做是0x02 0x00 0x00 0x04 0x08 0x00 0xf2.
第一个0×02表示该行数据中有两个数据
第二个,第三个0x00 0x00表示本行数据的起始地址位
第四个字节0x04表示数据类型,数据类型有0x00、0x01、0x02、0x03、0x04、0x05
00:用来记录数据,HEX文件的大部分记录都是数据记录
01:用来标识文件结束,放在文件的最后标识HEX文件的结尾
02:用来标识扩展段地址的记录
03:开始段地址的记录
04:用来标识扩展线性地址的记录
05:开始线性地址记录
第五个、第六个 0x08 0x00表示数据字节
最后一个字节0xf2为校验和。校验和= 0x100 - 累加和

九、总结

通过本实验的学习,基本了解HEX文件的内容和进行仿真调试的方法以及STM32汇编。

十、参考链接

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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 20:58:04  更:2022-10-08 21:00:53 
 
开发: 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/25 21:35:22-

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