0628_ARM4

练习:

stm32流水灯

.text 
.global _start
_start: @使能GPIOE外设时钟   0X50000A28     RCC_MP_AHB4ENSETR[4]->1
LDR R0,=0x50000a28   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
ORR R1,R1,#(0x3<<4)   @将第4,5位设置为1
STR R1,[R0]  @将修改后的数值写回去@设置PE10为输出   0X50006000 [21:20]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PE8为输出   0X50006000 [17:16]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @先清零
ORR R1,R1,#(0x1<<16)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PF10为输出   0X50007000 [21:20]->01
LDR R0,=0x50007000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PE10为推挽输出  0X50006004  [10]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PE8为推挽输出  0X50006004  [8]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<8)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PF10为推挽输出  0X50007004  [10]->0
LDR R0,=0x50007004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PE10低速输出  0X50006008   [21:20]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE8低速输出  0X50006008   [17:16]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PF10低速输出  0X50007008   [21:20]->00
LDR R0,=0x50007008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE10无上啦下拉电阻  0X5000600C  [21:20]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE8无上啦下拉电阻  0X5000600C  [17:16]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PF10无上啦下拉电阻  0X5000700C  [21:20]->00
LDR R0,=0x5000700C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去WH:BL LED1_ONBL DELAYBL LED1_OFFBL DELAYBL LED2_ONBL DELAYBL LED2_OFFBL DELAYBL LED3_ONBL DELAYBL LED3_OFFBL DELAY
B WHLED1_ON:@设置PE10输出高电平  0X50006014  [10]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<10)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED2_ON:@设置PF10输出高电平  0X50007014  [10]->1LDR R0,=0x50007014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<10)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED3_ON:@设置PE8输出高电平  0X50006014  [8]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<8)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED1_OFF:@设置PE10输出高电平  0X50006014  [10]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<10)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED2_OFF:@设置PF10输出高电平  0X50007014  [10]->1LDR R0,=0x50007014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<10)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED3_OFF:@设置PE8输出高电平  0X50006014  [8]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<8)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LR@封装延时函数
DELAY:LDR R3,=0x10000000
MM:CMP R3,#0SUBNE R3,R3,#1BNE MMMOV PC,LR.end

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

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

相关文章

.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作

一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 &#xff08;1&#xff09;判断bucket是否存在 &#xff08;2&#xff09;新建bucket &#xff08…

AI大模型-关于推理、可解释性和 LLMs_ai 推理模型

引言&#xff1a;以下文章的主题我已经思考了很久&#xff0c;我希望能我的话能引起你的思考&#xff0c;并于一些更悲观的AI评论相均衡。推理和可解释性是充满细微差别的主题——我希望这篇文章能体现这一点。 去年 GPT-4 发布时&#xff0c;我注意到出现了一个特殊的议论&…

新能源行业必会基础知识-----电力市场概论笔记-----经济学基础

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 什么是市场2. 电力市场机制设计的基本要求 1. 什么是市场 经济学定义 市场是供需双方交易并决定商品价格和产量的机制市场可…

JVM原理(一):JVM运行时数据区域的分析

1. 程序计数器 程序计数器是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。 作用 在Java虛拟机的概念模型里&#xff0c;字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令&#xff0c;它是程序控制流的指示…

一站式企业服务平台能够帮助企业解决哪些问题?

近年来一站式企业服务平台备受区域政府及园区管理者的青睐&#xff0c;充当着区域政府或园区的千里眼和顺风耳&#xff0c;可以用来捕捉与区域经济发展相关的信息&#xff0c;也可以用来倾听企业的诉求&#xff0c;更是成为了区域深抓企业服务的多面手。 同时&#xff0c;一站式…

高电压技术-冲击高压发生器MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 冲击电压发生器是产生冲击电压波的装置&#xff0c;用于检验电力设备耐受大气过电压和操作过电压的绝缘性能&#xff0c;冲击电压发生器能产生标准雷电冲击电压波形&#xff0c;雷电冲击电压截波,标准操作冲击…

容器化spring boot应用程序

容器化spring boot应用程序有多种方式&#xff0c;如基于简单的Dockerfile&#xff0c;多阶段Dockerfile以及基于Docker Compose等&#xff0c;我们将逐步给大家介绍&#xff0c;本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。 创建Spring boot应用程序 …

未来科技中的RTK接收机应用探索

RTK实时差分定位技术&#xff08;RTK&#xff0c;Real-Time Kinematic&#xff09;&#xff0c;作为高精度定位技术的一种重要手段&#xff0c;已经在地理测绘、测量工程、航空航天等领域取得了广泛应用。随着科技的不断发展&#xff0c;RTK导航接收机的应用领域也日益拓宽。首…

AI大模型日报#0628:谷歌开源9B 27B版Gemma2、AI首次实时生成视频、讯飞星火4.0发布

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

合并排序的数组

题目链接 合并排序的数组 题目描述 注意点 A的末端有足够的缓冲空间容纳BA和B都是排序的 解答思路 最初想到的是双指针&#xff0c;从小到大找到合并B时应该A相应位置应该插入的元素&#xff0c;因为在插入的过程中B的元素会替换A原有位置的元素&#xff0c;所以需要先将A…

营销翻车,杜国楹出面道歉,小罐茶的“大师作”故事仓皇结尾

“小罐茶&#xff0c;大师作”&#xff0c;这句slogan曾一度在央视平台长时间、高密度播放&#xff0c;成为家喻户晓的广告词&#xff0c;也打响了小罐茶品牌的名号。但同时&#xff0c;市场上关于“大师作”真实性的质疑也从未停息。 就在6月25日小罐茶十二周年发布会上&#…

Jenkins容器的部署

本文主要是记录如何在Centos7上安装docker,以及在docker里面配置tomcat、mysql、jenkins等环境。 一、安装docker 1.1 准备工作 centos7、VMware17Pro 1.2 通过yum在线安装dokcer yum -y install docker1.3 启动docker服务 systemctl start docker.service1.4 查看docke…

JavaSE期末复习速成笔记

面向对象 1. 面向对象的概念 面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它将现实世界的事物抽象为对象&#xff0c;通过类和对象来创建各种功能模块&#xff0c;以此来设计和开发软件。 2. 类与对象 类&#xff1a;是对象的模板&#xff0c;定义了…

自动化巡检革命:旗晟双圆管轨道机器人的创新应用

在输煤皮带线和矿山带式输送机的巡检过程中&#xff0c;面临着高湿度、多粉尘、温湿度极端、噪音干扰&#xff1b;设备磨损频繁&#xff0c;难以及时发现问题&#xff1b;传统的人工巡检方式存在劳动强度大、效率低、检测质量不稳定、数据采集和分析滞后&#xff0c;无法实现实…

oracle 11g rac创建实例时发现只给一节点创建了实例 二节点没创建的处理方法

由于操作失误没有在二节点创建实例 删除数据库重新dbca建库 [oracleracdg1-1 dbs]$ dbca -silent -deleteDatabase -sourceDB rac11dg1 -sysDBAUserName sys -sysDBAPassword oracle_4U Connecting to database 4% complete 9% complete 14% complete 19% complete 23% …

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 两个字符串间的最短路径(200分) - 三语言AC题解(Python/Java/Cpp)

&#x1f36d; 大家好这里是清隆学长 &#xff0c;一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 &#x1f4bb; ACM银牌&#x1f948;| 多次AK大厂笔试 &#xff5c; 编程一对一辅导 &#x1f44f; 感谢大家的订阅➕ 和 喜欢&#x1f497; &#x1f…

npm创建一个空的vue3项目的方法或者pnpm创建vue3项目

1、前提我们已经安装了npm&#xff0c;或者pnpm 2、我们用npm来创建vue3项目 快速上手 | Vue.js 官网地址 这里我安装是的 node v18.20.3 以下是安装过程 &#xff1a; npm create vuelatest 根据自己的需要进行创建即可。 3、我们用pnpm来创建vite vue3项目 pnpm create …

Android 界面库 (二) 之 Data binding 详细介绍

1. 简介 回顾我们在前面文章《Android 界面库 (一) 之 View binding 简单使用》中学习的 View Binding&#xff0c;它旨在简化 View 与代码之间的绑定过程。它会在编译时期为每个 XML 布局文件生成相应的绑定类(Binding class)&#xff0c;该类里包含了布局文件每个有 ID 的 Vi…

【深度学习】服务器炼丹代码配置、Python使用指定gpu显卡运行代码

【显卡】服务器炼丹代码配置 写在最前面一、查看哪几块显卡能用二、使用指定gpu运行代码1、指定使用GPU0运行脚本&#xff08;默认是第一张显卡, 0代表第一张显卡的id,其他的以此类推&#xff09;2、指定使用多张显卡运行脚本 三、如何使用1、单块显卡使用2、多GPU训练使用Data…

昇思25天学习打卡营第3天|数据集全攻略:加载、操作与自定义

导入数据集相关库和类 首先&#xff0c;导入了 NumPy 库&#xff0c;并将其简称为 np 。要知道&#xff0c;NumPy 乃是用于科学计算的关键库&#xff0c;作用非凡。接着&#xff0c;从 mindspore.dataset 当中导入了 vision 模块。此外&#xff0c;还从 mindspore.dataset 里引…