利用keil完成ARM汇编语言编程入门实践

article/2025/11/5 16:04:20

文章目录

  • 一、安装keil软件
    • 1.下载安装包
    • 2.安装keil
    • 3.安装stm32 pack
  • 二、简单的stm汇编语言的编程
    • 1.新建工程项目
    • 2、新建main.c文件
    • 3.编译
    • 4.stm32仿真调试
    • 5.hex文件分析解读


一、安装keil软件

1.下载安装包

下载安装mdk5软件和stm32包(链接:https://pan.baidu.com/s/1f0nHjn7sSG8SK3waV_G1Pg
提取码:94xf)
下载完毕后解压安装包然后就可以开始安装MDK。

2.安装keil

解压压缩包并打开mdk
在这里插入图片描述
然后点击next继续安装
在这里插入图片描述
在这里插入图片描述
点击Finsh完成安装
手动安装pack包否则会安装失败
在这里插入图片描述

3.安装stm32 pack

双击ARM.CMSIS.3.20.4
在这里插入图片描述
点击next继续安装
在这里插入图片描述
完成安装
同样在刚刚在解压文件中找到Keil.STM32F1xx_DFP.1.0.4
在这里插入图片描述
随后完成安装

二、简单的stm汇编语言的编程

1.新建工程项目

在这里插入图片描述
单击上方工具栏Project对文件命名并选择好存储的文件地址
在这里插入图片描述
选择好相应芯,这里我们选择STM32F103RB
在这里插入图片描述
点击OK完成工程创建

2、新建main.c文件

点击白纸图标并输入以下代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入完成后,点击左上角的保存这时候会弹出一个窗口让命名文件名,输入main.c(注意这里一定要输入文件格式.c不然文件将不会被认为是C语言文件,会出错)
在这里插入图片描述
点击保存
在这里插入图片描述
右键点击 Source Group 1 ,然后点击 Add Existing Files to Group …(在工程下添加main.c文件)
在这里插入图片描述
把刚刚的main.c文件添加到工程文件下,之后可以发现Source Group 1文件下多了一个main.c文件

3.编译

点击左上角这个图标编译程序
在这里插入图片描述
此框出现时编译成功

4.stm32仿真调试

在调试前需要做好相应设置
找到上方一个像魔法棒的图标点击
弹出一个窗口,单击Debug,勾选 Use Simulator ,再选择 ULINK2/ME Cortex Debugger ,并点击 Settings
在这里插入图片描述
之后又是一个弹窗,确定一下Port是JTAG,Reset可以设置为Autodetect或SYSRESEETREQ,然后点击OK返回上一级窗口,再点击OK。
在这里插入图片描述
之后就是调试,点击上方像放大镜的图标
在这里插入图片描述
左上方是调试进行时可以用到的工具
至此完成编译调试

5.hex文件分析解读

可以在文件中找到刚刚生成的hex文件
在这里插入图片描述
在这里插入图片描述
分析第一行的内容:020000040800F2,可以看成:0x02,0x00,0x00,0x04,0x08,0x00,0xF2。其中前四个字节和最后一个字节有特殊含义。中间为数据。以下分别解读:
0x02 :表示该行数据中有两个数据。
两个0x00 :表示本行数据的起始地址位。
0x04 :扩展线性地址记录:用来标识扩展线性地址的记录(其他数据表示:
'00’Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录

'01’文件结束记录:用来标识文件结束,放在文件的最后,标识HEX文件的结尾

'02’扩展段地址记录:用来标识扩展段地址的记录

'03’开始段地址记录:开始段地址记录
'05’开始线性地址记录:开始线性地址记录


0x08,0x00 :该行两个字节的数据,数据类型是 04 ,即该行记录的是一个拓展地址(0x08 0x00 是地址信息,用法是将该地址(0x0800<<16) 后作为基地址。
0xF2 :校验和,校验和= 0x100 - 累加和


http://chatgpt.dhexx.cn/article/Ji1hZq4p.shtml

相关文章

如何在ARM下进行高效的C编程?

通过一定的风格来编写C程序&#xff0c;可以帮助C编译器生成执行速度更快的ARM代码。下面就是一些与性能相关的关键点&#xff1a; 1.对局部变量、函数参数和返回值要使用signed和unsigned int类型。这样可以避免类型转换&#xff0c;而且可高效地使用ARM的32位数据操作指令。 …

## ARM基础编程实验

ARM基础编程实验 作者&#xff1a; Saint 掘金&#xff1a;https://juejin.im/user/5aa1f89b6fb9a028bb18966a 微博&#xff1a;https://weibo.com/5458277467/profile?topnav1&wvr6&is_all1 GitHub&#xff1a;github.com/saint-000 CSDN: https://me.csdn.net/qq_4…

ARM汇编编程基础

(一) -- ARM CPU寄存器 本系列文章节选自本人所著《深入浅出嵌入式底层软件开发》。 本系列文章&#xff0c;所需代码请从以下地址下载: http://download.csdn.net/download/scyangzhu/4602585 ARM的汇编编程&#xff0c;本质上就是针对&#xff23;&#xff30;&#…

搭建Keil编程环境,ARM汇编语言编程入门实践

多看多学 一、安装及配置环境01 型号分类及缩写02 资料共享03 安装器件支持包04 Keil简单设置 二、简单程序编译01 新建工程02 配置环境03 添加源文件04 设置仿真器模式05 编译调试06 分析Hex文件 三、中值滤波及程序设计01 中值滤波02 流程框图03 程序设计 四、总结参考资料 一…

ARM编程环境搭建教程

随着移动互联网的繁荣发展&#xff0c;物联网人工智能的兴起&#xff0c;嵌入式开发成为了越来越多IT人必须学习的内容&#xff0c;而在嵌入式芯片领域&#xff0c;ARM具有无可撼动的市场占有率&#xff0c;所以说&#xff0c;学习嵌入式不学ARM&#xff0c;不如回家卖红薯。 接…

嵌入式ARM设计编程(四) ARM启动过程控制

文章和代码已归档至【Github仓库&#xff1a;hardware-tutorial】&#xff0c;需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 &#xff08;1&#xff09; 掌握建立基本完整的ARM 工程&#xff0c;包含启动代码&#xff0c;C语言程序等&…

《嵌入式基础》实验三 ARM编程模型和ARM指令

零、前言 本人不擅长写汇编相关的东西&#xff0c;所以以下内容也是不断摸索&#xff08;百度 &#xff09; 整出来的&#xff0c;和linux的实验报告的质量相比较低。 一、 实验目的 掌握ARM微处理器的汇编指令的使用方法。掌握使用 LDM/STM&#xff0c;B&#xff0c;BL 等指…

嵌入式ARM设计编程(一) 简单数据搬移

文章和代码已归档至【Github仓库&#xff1a;hardware-tutorial】&#xff0c;需要的朋友们自取。或者公众号【AIShareLab】回复 嵌入式 也可获取。 一、实验目的 熟悉实验开发环境&#xff0c;掌握简单ARM汇编指令的使用方法。 二、实验环境 硬件&#xff1a;PC机 软件&am…

ARM汇编语言编程入门实践

文章目录 一、keil的安装二、安装stm32 pack三、keil 的简单设置四、基于STM32汇编程序的编写4.1 新建工程4.2 新建test.s文件4.3 编译程序4.4 分析HEX文件 五、总结六、参考资料 一、keil的安装 双击打开mdk_510.exe应用程序文件&#xff0c;点击Next>>。勾选I agree……

ARM体系结构与编程模型总结

ARM体系结构与编程模型 ARM体系结构 一、ARM处理器简介及RISC特点 ARM处理器简介 ARM&#xff08;Advanced RISC Machines&#xff09;是一个32位RISC&#xff08;精简指令集&#xff09;处理器架构&#xff0c;ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多…

数学建模-层次分析法(评价模型)

层次分析法概述 层次分析法的步骤和方法 1. 建立层次结构模型 2. 构造判断(成对比较)矩阵 3. 层次单排序及其一致性检验 4. 层次总排序及其一致性检验 总结 应用层次分析法的注意事项 举例 层次分析法代码实现 disp(输入判断矩阵C) Cinput(C); %输入矩阵 [n,n] size(C);%…

数学建模-层次分析模型

层次分析法的基本原理与步骤 人们在进行社会的、经济的以及科学管理领域问题的系统分析中&#xff0c;面临的常常是一个由相互关联、相互制约的众多因素构成的复杂而往往缺少定量数据的系统。层次分析法为这类问题的决策和排序提供了一种新的、简洁而实用的建模方法。 运用层次…

数学建模-层次分析法

个人主页&#xff1a; 个人主页 系列专栏&#xff1a; 数学建模 目录 前言 一、引入 二、层析分析法 1.思想介绍 2.判断矩阵 3.一致矩阵 4.一致性检验 5.一致性检验步骤&#xff08;两张图片告诉你&#xff09; 6.计算权重 一致矩阵计算权重&#xff1a; 判断矩阵计…

数学建模--层次分析法

层次分析法的求解步骤 1.建立层次结构模型 模型分为三层。分别为最高层&#xff08;决策问题最终要解决什么&#xff0c;即决策的目的&#xff09;、中间层&#xff08;考虑的因素&#xff0c;决策的准则。比如买衣服要考虑价格、尺寸、款式等因素&#xff09;和最低层&#…

层次分析法模型(数学建模学习)

本系列参考清风老师的数学建模课程 层次分析法模型 一、模型介绍 &#xff08;一&#xff09;模型引入 对于方案选择类问题&#xff0c;评价类问题采用层次分析法&#xff08;The ayalytic hierarchy process / AHP&#xff09;模型进行评分&#xff0c;之后评分高的就是最佳…

数据库常用数据模型1(层次模型)

1 数据模型分为两类&#xff1a;一类是概念模型&#xff08;信息模型&#xff09;&#xff0c;第二类是逻辑模型&#xff08;数据建模&#xff09;和物理模型&#xff08;对数据最底层的抽象&#xff09;。 2 常用的逻辑模型&#xff1a;层次模型、网状模型、关系模型、面向对…

计算机网络层次模型

计算机网络层次模型 OSI 7层协议 物理层&#xff1a;在局部局域网上传送数据帧&#xff08;Data Frame&#xff09;&#xff0c;它负责管理电脑通信设备和网络媒体之间的互通。数据链路层&#xff1a;在两个网络实体之间提供数据链路连接的创建、维持和释放管理。构成数据链路…

批判马斯洛需求层次模型

再次批判马斯洛需求层次模型&#xff0c;有啥缺陷&#xff1f; 趣讲大白话&#xff1a;文化不同&#xff0c;心理不同 【趣讲信息科技182期】 **************************** 每个民族的文化心理结构都不一样 常常低估文化对人的影响 有一门心理学分支&#xff0c;文化心理学 专…

网络层次模型及各层对应协议

一、OSI七层模型 OSI七层协议模型主要是&#xff1a;应用层&#xff08;Application&#xff09;、表示层&#xff08;Presentation&#xff09;、会话层&#xff08;Session&#xff09;、传输层&#xff08;Transport&#xff09;、网络层&#xff08;Network&#xff09;、数…

层次分析法模型

层次分析法 文章目录 层次分析法概述层次分析法简介层次分析法典型应用层次分析法基本原理 层次分析法的步骤和方法建立层次结构模型构造判断矩&#xff08;成对比较&#xff09;阵层次单排序及其一致性检验一致性检验正互反阵最大特征根和特征向量的简化计算 层次总排序及其一…