基于MDK创建纯汇编语言的STM32工程

基于STM32的汇编程序 文章目录1.KEIL的下载及安装1.1 mdk531的下载1.2 mdk531的安装2 基于STM32编写汇编程序2.1 在Keil中新建工程2.2 添加源文件2.3 编译并调试程序2.4 HEX文件分析3 总结4 参考文献 1.KEIL的下载及安装 1.1 mdk531的下载 链接:https://pan.baidu.com/s/1uiPGz_5Gorv0wOsAGUQsvg 提取码:3an4 1.2 mdk531的安装 解压压缩包后以管理员身份运行mdk531.exe 点击Next 勾选同意后,点击 阅读详情

一、新建项目

keil5不是在file里创新项目,而是在project里,运行keil5并新建项目在这里插入图片描述
接下来设置路径,项目名称随便填,保存
在这里插入图片描述
根据自己的硬件设备选择,没有硬件就随意选择STM32F103中的一个,我这里选了STM32F103RC
在这里插入图片描述
如图勾选然后点ok
在这里插入图片描述

二、编写代码进行测试

右键source group1,添加新项目
在这里插入图片描述
创建汇编文件
在这里插入图片描述
输入代码

 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

点击魔法棒进行仿真器调试,根据自己的实际情况进行设置
在这里插入图片描述
如果没有硬件进行仿真调试需要改变这一步的操作,
在这里插入图片描述
将Dialog.DLL改为DARMSTM.DLL,Parameter里根据自己的设备来选,应为我新建的时STM32F103RC,所以改为-pSTM32F103RC,如果要生成hex文件需要在output中选中
在这里插入图片描述
如下图操作,编译工程并进入调试模式;
在这里插入图片描述
结果没有问题
在这里插入图片描述

三、查看.hex文件

在魔法棒output中查看路径,找到.hex文件打开
在这里插入图片描述
文件内容和如下:
在这里插入图片描述
如图,第一行的:020000040800F2中,可以看作是0x02 0x00 0x00 0x04 0x08 0x00 0xf2,其前四个字节和最后一个字节有特殊含义,中间为数据
第一个字节0x02表示数据长度,二三字节表示数据的起始地址,第四个字节表示记录的数据类型。从‘00’到‘05’共六种,他们代表的意义依次为数据记录、文件结束记录、扩展段地址记录、开始段地址记录、扩展线性地址记录和开始线性地址记录。

四、参考资料

基于MDK下的STM32F103纯汇编语言练习
MDK基于STM32汇编程序并编写软件程序

ARM汇编程序调试:基于MDK创建纯汇编语言的STM32工程 @[TOC]目录 一、新建工程 1、新建项目 打开安装配置好的Keil5软件,点击菜单栏的Project,选择第一项,如下图所示: 选择文件路径,设置项目名称,不要有中文: 2、配置环境 设置工程的目标环境,本文基于STM32F103VE,因此在弹出的窗口选择相应的选项,点击保存即可: ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择即可; CMSIS下选择CORE; Device下Startup,其中包含了启动文件; 鼠标右键单击Source Group 1,选项如图: 选择 阅读详情

相关推荐

数字孪生在智慧医疗中的5个创新应用:从手术模拟到个性化治疗

数字孪生技术通过创建患者或医疗流程的动态虚拟映射,正在深刻变革智慧医疗。本文重点剖析了其在个性化治疗、手术模拟与导航、药物研发、医院管理优化及慢性病管理五大核心场景的创新应用,展现了如何利用智能映射与数据融合,为精准医疗和高效决策提供强大支持。

weixin_29189003的博客 443

基于MDK创建STM32工程以及HEX文件格式简单说明

目录一、创建一个简单工程二、仿真测试三、HEX文件格式说明 一、创建一个简单工程 1.点击菜单栏的Project再点击new uVision Projec 2.输入项目名称后点保存 3.选择合适的芯片后点OK 4.注意勾选这两个地方,最后点击OK 5.右击Source Group1,然后选择Add New item 6.选择Asm,然后输入名称后点击Add 7.把代码粘贴进新创的.s文件 代码如下 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY

醉意丶千层梦的博客 796

Langfuse实战:从评估打分到问题解决的完整指南

本文详细介绍了如何利用开源LLM工程平台Langfuse对AI应用进行系统性评估与优化。从创建评估数据集、设计自动化评分函数,到深入排查常见问题并关联Trace进行精准打分,提供了完整的实战指南。最后,探讨了如何利用评估结果驱动提示词迭代与A/B测试,并给出了生产环境部署与性能优化的关键考量,帮助开发者构建可测量、可分析、可改进的LLM应用。

backprop5master的博客 650

Keil嵌入式开发环境下基于STM32汇编程序的编写

目录 一、新建工程 二、配置环境 2.1选择设备 2.2选择运行设备 2.3添加源文件 三、汇编程序 3.1编写代码,源代码如下 3.2仿真器设置 3.3编译调试 四、调试分析 前8个字节内容含义: 五、总结 六、参考文献 一、新建工程 打开Keil uVision5(演示版本号为5.31) 点击菜单栏的Project 在弹出的窗口点击选项New uVision Project,创建新的工程 在弹出的窗口中进行设置项目工程的路径、名称并保存(演示名称使用TE.

qq_48273416的博客 813

基于javaEE的图书管理系统

极简的图书管理系统,无任何样式修饰,适合新手练手(图文并释) 1、实现了用户注册、登录,图书的添加、修改、删除和修改操作 2、工具需要:eclipse、mysql、Tomcat 3、做系统之前在eclipse需要配置Tomcat服务器和导入mysql连接数据库的jar包 4、数据库中建一个user表存用户信息,一个book表存图书信息 一、各种页面 index.html文件,系统运行的首页,有登录...

qq_44357792的博客 2万+

InfiniBand(IB)实战指南:从硬件配置到性能优化

本文是一份详尽的InfiniBand实战指南,涵盖从硬件选型、部署到驱动配置、性能优化的全流程。重点解析了InfiniBand作为AI训练与高性能计算(HPC)核心网络的优势,特别是其支持的RDMA技术如何实现微秒级低延迟。文章提供了硬件匹配、NCCL压测、内核参数调优及在PyTorch分布式训练中启用IB的实操步骤,旨在帮助工程师构建和优化高性能计算集群。

mqtt6iot的博客 578

基于stm32f103的MDK汇编介绍

基于stm32f103的MDK汇编介绍一、ARM汇编语法简介二、MDK创建汇编工程三、编译测试及输出解释四、第一个简单的汇编程序 一、ARM汇编语法简介 汇编语言与其他高级语言不同的地方在于,对数据或寄存器的操作是通过各种指令完成的,主要有跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储指令、协处理器指令、异常产生指令6大指令,常用指令集的介绍与使用可参考以下文章: ARM汇编指令集 ARM汇编指令集汇总 二、MDK创建汇编工程 三、编译测试及输出解释 四、第一个简单的汇编程序 ...

被无情调岗的痛苦狗头 1854

在 CentOS7 下安装 Cadence IC验证平台 INCISIVE152

前言 本文所使用的软件 虚拟机软件:VMware Workstation 15 PRO 如何安装? 操作系统:CentOS-7, CentOS-7-x86_64-DVD-1810.iso 如何安装? 简介 INCISIVE Incisive是nc_verilog, nc_sim, nc_lauch,以及ABV,TBV的集合,用于仿真和验证。 InstallScape InstallSc...

沈醉不知的博客 2万+

MDK创建纯汇编语言的STM32工程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、先在keil上创建一个工程二、使用步骤1.引入库2.读入数据总结 前言 MDK(Microcontroller Development Kit),也称MDK-ARM、KEIL MDK、RealView MDK、KEIL For ARM,都是同一个东西。ARM公司现在统一使用MDK-ARM的称呼,MDK的设备数据库中有很多厂商的芯片,是专为微控制器开发的工具,为满足基于MCU进行嵌入式软件开发的工程师需求而设计,支持ARM7

weixin_57517458的博客 312

手把手推导APM的 sqrt_controller控制器

前言 玩过无人机的朋友对APM应该都不会陌生,如果是搞过多旋翼飞控且读过代码,肯定遇到过sqrt_controller控制器,它频繁的在位置、姿态控制中出现,所以非常有必要搞清楚这个控制原理。 下面以高度控制器为例来分析。 高度控制 APM的高度控制采用PID串级3环控制,即外环位置控制,中间速度控制,内环速度控制,如下图所示。 今天要讨论的sqrt_controller就是应用于位置控制器中。位置控制器的输出是速度控制器的参考reference输入,如果采用单P控制,其输出vel_ref = pos_e

周小逗的博客 3027

TMS热管理RCP开发全流程:从MATLAB算法到硬件部署的5个关键步骤

本文详细解析了TMS热管理系统RCP开发的5个关键步骤,从MATLAB算法设计到硬件部署的全流程。通过熠速RCP平台,工程师可以高效实现热管理控制算法的仿真验证、硬件选型、实时化处理及系统集成,显著缩短开发周期并提升系统性能。文章特别强调了Simscape模型验证和硬件接口配置的重要性。

weixin_29224589的博客 388

STM32三种BOOT模式得介绍以及基于MDK创建纯汇编语言的STM32工程

文章目录一、BOOT的三种模式介绍1.介绍2. BOOT模式选择二、MDK创建纯汇编语言 一、BOOT的三种模式介绍 1.介绍 所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 1.1 Main Flash memory 是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。 1.2 Syst

MrKaj的博客 821

MySQL 一一 MySQL基本使用

1、数据库 简单来说,所谓的数据库就是存储数据的容器,而且是永久存储的。 2、为什么需要数据库 3、为什么要学习MySQL数据库 最早MySQL数据,瑞典AB公司开发的一款开源型的关系型数据库。 随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数

Guizy 7万+

ARM汇编基础之基于MDK创建纯汇编语言的STM32工程

本文基于MDK 5.26软件,在stm32f103上进行汇编语言的实验测试;

一名热爱技术的工程师的博客。分享技术干货,记录美好生活。永远相信美好的事情即将发生。 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 最小二乘法构建线性回归方程
下一篇: JAVA连接MySQL 数据库
羚漆
博客等级 码龄5年 31粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值