ARM练习

news2025/1/13 3:09:14

通过汇编语言完成LED1-3循环点亮练习

.text 
.global _start
_start: 
	/**********LED1点灯**************/
/*初始化RCC*/
RCC_INIT:
	LDR R0,=0X50000A28
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<4)
	ORR R2,R1,#(0x1<<5)
	STR R1,[R0]
	STR R2,[R0]

LED1_INIT:
	@设置输出模式
	LDR R0,=0X50006000
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @清零
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0]


	@设置为推挽输出
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10) @先清零
	STR R1,[R0]


	@设置速度为低速
	LDR R0,=0X50006008
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @先清零
	STR R1,[R0]


	@不设置上拉下拉电阻
	LDR R0,=0X5000600C
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @先清零
	STR R1,[R0]	

LED2_INIT:
	@设置输出模式
	LDR R0,=0X50007000
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @清零
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0]


	@设置为推挽输出
	LDR R0,=0X50007004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10) @先清零
	STR R1,[R0]


	@设置速度为低速
	LDR R0,=0X50007008
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @先清零
	STR R1,[R0]


	@不设置上拉下拉电阻
	LDR R0,=0X5000700C
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<20) @先清零
	STR R1,[R0]	

LED3_INIT:
	@设置输出模式
	LDR R0,=0X50006000
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<16) @清零
	ORR R1,R1,#(0X1<<16) @设置
	STR R1,[R0]


	@设置为推挽输出
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8) @先清零
	STR R1,[R0]


	@设置速度为低速
	LDR R0,=0X50006008
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<16) @先清零
	STR R1,[R0]


	@不设置上拉下拉电阻
	LDR R0,=0X5000600C
	LDR R1,[R0]
	BIC R1,R1,#(0X3<<16) @先清零
	STR R1,[R0]	

loop:
	BL LED1_ON
	BL delay_1s
	BL LED1_OFF
	BL delay_1s

	BL LED2_ON
	BL delay_1s
	BL LED2_OFF
	BL delay_1s

	BL LED3_ON
	BL delay_1s
	BL LED3_OFF
	BL delay_1s

	b loop

LED1_ON:
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<10) @设置
	STR R1,[R0]
	MOV PC,LR

LED1_OFF:
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10) @清零
	STR R1,[R0]
	MOV PC,LR


LED2_ON:
	LDR R0,=0X50007014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<10) @设置
	STR R1,[R0]
	MOV PC,LR

LED2_OFF:
	LDR R0,=0X50007014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10) @清零
	STR R1,[R0]


LED3_ON:
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0X1<<8) @设置
	STR R1,[R0]
	MOV PC,LR

LED3_OFF:
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8) @清零
	STR R1,[R0]



@ 大概1s的延时函数
delay_1s:
	mov r3, #0x10000000
	mm:
	cmp r3, #0
	subne r3, r3, #1
	bne mm
	mov pc, lr


.end

效果展示:

思维导图

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/780890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring(10) 生成和替换Banner启动图案

目录 1.背景2.推荐网站3.如何集成到spring项目中4.效果展示 1.背景 我们在启动 Spring 项目的时候经常会看到一个 Spring 字样的启动图案。如下所示&#xff1a; 如果我们也想根据我们的内容生成这样的图案&#xff0c;应该怎么操作呢&#xff1f; 2.推荐网站 可以生成这种图…

Docker 制作镜像

自定义制作镜像 我们学习了Dockerfile语法,那么如何应用Dockerfile制作自定义的镜像呢?那今天我们就来实战一下,以主流的微服务Jar 为例子,开启我们自定义制作镜像之旅。 建立简单Springboot项目,并打包成jar 简历demo项目(访问路径 /start/springboot)配置端口,以及利…

P2196 [NOIP1996 提高组] 挖地雷

[NOIP1996 提高组] 挖地雷 题目描述 在一个地图上有 N ( N ≤ 20 ) N\ (N \le 20) N (N≤20) 个地窖&#xff0c;每个地窖中埋有一定数量的地雷。同时&#xff0c;给出地窖之间的连接路径。当地窖及其连接的数据给出之后&#xff0c;某人可以从任一处开始挖地雷&#xff0c;…

飞行动力学 - 第14节-飞机的配平 之 基础点摘要

飞行动力学 - 第14节-飞机的配平 之 基础点摘要 1. 最大上偏配平角2. 重心前限3. 配平曲线4. 空气压缩性影响 & 配平曲线5. 马赫速配平曲线6. 地面效应7. 地效的影响8. 参考资料 1. 最大上偏配平角 升降舵下偏为正从操纵性的角度&#xff0c;重心应该位于【重心前限】 X c…

投个 3D 冰壶,上班玩一玩

本篇文章将介绍如何使用物理引擎和图扑 3D 可视化技术来呈现冰壶运动的模拟。 Oimo.js 物理引擎 Oimo.js 是一个轻量级的物理引擎&#xff0c;它使用 JavaScript 语言编写&#xff0c;并且基于 OimoPhysics 引擎进行了改进和优化。Oimo.js 核心库只有 150K &#xff0c;专门用…

408计算机考研-101-数据结构-基本概念

数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式。 数据结构分为逻辑结构和物理结构(存储结构) 逻辑结构 逻辑结构是指数据之间的相互关系和组织方式。 按照数据元素之间的关系不同&#xff0c;可以分为以下4种&#xff1a; 集合结构线性接口树结构图结构 …

华为OD机试真题 Java 实现【数字游戏】【2023 B卷 100分】,附详细解题思路

TOC 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

操作系统练习:进程间通信(共享内存方式)

说明 本文是《操作系统概念(第九版)》3.4节“进程间通信”的练习。 进程间通信主要由两种模型&#xff1a; 共享内存消息传递 本文使用共享内存的方式实现进程间的通信 创建消息生产者 创建生产者的主要操作包括&#xff1a; 定义共享内存的大小、名称&#xff0c;以及通…

SJA1000的简单调试

文章目录 基本过程SJA1000波特率计算公式验收滤波器使用其他关于CLKOUT测试寄存器初始化过程中会产生中断扩展帧、标准帧的区分计算器 基本过程 SJA1000的接口连接到FPGA上&#xff0c;采用软核进行CAN数据的收发。调试花了1天多的时间&#xff0c;有点波折&#xff0c;下面按…

最新版edge浏览器中安装xpath插件

最近在跟着尚硅谷进行爬虫的学习&#xff0c;老师给出了在谷歌浏览器安装Xpath插件的方法&#xff0c;由于电脑上面未安装谷歌浏览器&#xff0c;所以在网上搜索了在edge上安装Xpath插件的方法&#xff0c;安装完成以后发现使用快捷键 CTRL SHIFTX不能够打开&#xff0c;以为是…

[java安全]CommonsCollections2

文章目录 【java安全】CommonsCollections2前言Commons-Collections4版本中能否调用cc6等链子&#xff1f;PriorityQueue利用链PriorityQueueTransformingComparator**使用了phithon的总结&#xff1a;**POC 进阶POCPOC分析调用链 【java安全】CommonsCollections2 前言 Apac…

【Flutter问题记录】Android Studio不显示(右上角main.dart左边)设备栏

记录一下今天遇到的情况&#xff1a; 用android studio打开项目&#xff0c;我检查了&#xff0c;已经配置了flutter sdk和android sdk&#xff0c;但是右上角main.dart左边的设备栏就是不显示。 解决方法&#xff1a; 恢复如初&#xff1a;

【密码学】三、分组密码概述

分组密码 1.分组密码简介2.分组密码的基本原理2.1代换2.2扩散2.3混淆 3.分组密码的结构3.1Feistel网络3.1.1平衡Feistel网络3.1.2不平衡Feistel网络 3.2SP网络 4.分组密码的设计 分组密码算法是将输入数据划分成固定长度的组进行加密和解密的一类对称密码算法。本章主要介绍分组…

零基础深度学习——学习笔记1 (逻辑回归)

前言 因为各种各样的原因要开始学习深度学习了&#xff0c;跟着吴恩达老师的深度学习视频&#xff0c;自己总结一些知识点&#xff0c;以及学习中遇到的一些问题&#xff0c;以便记录学习轨迹以及以后复习使用&#xff0c;为了便于自己理解&#xff0c;我会将一些知识点用以个…

MySQL 中NULL和空值的区别

MySQL 中NULL和空值的区别&#xff1f; 简介NULL也就是在字段中存储NULL值&#xff0c;空值也就是字段中存储空字符(’’)。区别 1、空值不占空间&#xff0c;NULL值占空间。当字段不为NULL时&#xff0c;也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时&#xff0…

了解 3DS MAX 3D摄像机跟踪设置:第 4 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 项目设置 步骤 1 打开“后效”。 打开后效果 步骤 2 转到合成>新合成以创建新合成。 将“宽度”和“高度”值分别设置为 1280 和 720。将帧速率设置为 25&#xff0c;将持续时间设置为 12 秒。单…

Jenkins发送的邮箱中没有带配置的压缩附件

【问题描述】&#xff1a;Jenkins中明明配置了邮箱发送时要带压缩附件&#xff0c;收到的邮箱中却没有附件内容 【问题定位】&#xff1a;压缩附件没有放在Jenkins工作空间下&#xff0c;所以发送的邮件并未发送附件 【解决办法】&#xff1a; 1&#xff09;把压缩附件放到J…

Scoop安装配置MySQL最详细版(含Navicat连接MySQL)

这是在DataWhale的第一次打卡文章&#xff0c;也是时隔三年再动笔&#xff0c;希望持续下去。 我没想到花费了一整天的时间来配置我的写作环境&#xff08;TyporaPicGo腾讯云oss&#xff09;&#xff0c;因为我不想我的文字局限在某个平台上&#xff0c;很被动&#xff0c;想要…

如何在小程序首页隐藏商品分类

​因为在分类页面有显示分类&#xff0c;所以有的商家希望在首页就不显示分类啦。下面就介绍一下如何在首页隐藏商品分类。 在小程序管理员后台->页面设置->首页&#xff0c;显示商品分类设置为否。设置后&#xff0c;在小程序首页商品分类就不会显示啦。注意&#xff1a…

手机word文档怎么转换成pdf?分享两种方法

手机word文档怎么转换成pdf&#xff1f;在如今信息化的时代&#xff0c;电子文档已经成为人们日常办公不可或缺的一部分。随着科技的不断进步&#xff0c;电子文档的格式也在不断发展。PDF作为电子文档的一种重要格式&#xff0c;被广泛使用。那么&#xff0c;如何将手机上的Wo…