ARM 点灯

.text 
.global _start
_start: @led1@设置GPIOE时钟使能  RCC_MP_AHB4ENSETR[4]->1   0X50000A28LDR R0,=0X50000A28  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<4)  @将第4位设置为1STR R1,[R0] @将修改后的值写回去@设置PE10为输出  GPIOE_MODER[21:20]->01   0X50006000LDR R0,=0X50006000  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01ORR R1,R1,#(0x1<<20)STR R1,[R0] @将修改后的值写回去@设置PE10为推挽输出 GPIOE_OTYPER[10]->0  0X50006004LDR R0,=0X50006004  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<10)  @将第[10]位设置为0STR R1,[R0] @将修改后的值写回去@设置PE10为低速输出 GPIOE_OSPEEDR[21:20]->00  0x50006008LDR R0,=0X50006008  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01STR R1,[R0] @将修改后的值写回去@设置PE10输出时无上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600CLDR R0,=0X5000600C  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01STR R1,[R0] @将修改后的值写回去@led2@设置GPIOE时钟使能  RCC_MP_AHB4ENSETR[5]->1   0X50000A28LDR R0,=0X50000A28  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<5)  @将第5位设置为1STR R1,[R0] @将修改后的值写回去@设置PF10为输出  GPIOE_MODER[21:20]->01   0X50007000LDR R0,=0X50007000  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01ORR R1,R1,#(0x1<<20)STR R1,[R0] @将修改后的值写回去@设置PF10为推挽输出 GPIOE_OTYPER[10]->0  0X50007004LDR R0,=0X50007004  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<10)  @将第[10]位设置为0STR R1,[R0] @将修改后的值写回去@设置PF10为低速输出 GPIOE_OSPEEDR[21:20]->00  0x50007008LDR R0,=0X50007008  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01STR R1,[R0] @将修改后的值写回去@设置PF10输出时无上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000700CLDR R0,=0X5000700C  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01STR R1,[R0] @将修改后的值写回去  @led1@LED3@设置GPIOE时钟使能  RCC_MP_AHB4ENSETR[4]->1   0X50000A28LDR R0,=0X50000A28  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<4)  @将第4位设置为1STR R1,[R0] @将修改后的值写回去@设置PE8为输出  GPIOE_MODER[17:16]->01   0X50006000LDR R0,=0X50006000  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<16)  @将第[17:16]位设置为01ORR R1,R1,#(0x1<<16)STR R1,[R0] @将修改后的值写回去@设置PE8为推挽输出 GPIOE_OTYPER[10]->0  0X50006004LDR R0,=0X50006004  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<8)  @将第[8]位设置为0STR R1,[R0] @将修改后的值写回去@设置PE8为低速输出 GPIOE_OSPEEDR[21:20]->00  0x50006008LDR R0,=0X50006008  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<20)  @将第[21:20]位设置为01STR R1,[R0] @将修改后的值写回去@设置PG10输出时无上拉下拉电阻  GPIOE_PUPDR[16:17]->00  0X5000600CLDR R0,=0X5000600C  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x3<<16)  @将第[17:16]位设置为01STR R1,[R0] @将修改后的值写回去flash:bl led1_on  @灯亮bl delay  @延时bl led1_off  @灯灭bl delaybl led2_on  @灯亮bl delay  @延时bl led2_off  @灯灭bl delaybl led3_on  @灯亮bl delay  @延时bl led3_off  @灯灭bl delayb flashled1_on:@设置PE10输出高电平  GPIOE_ODR[10]->1   0x50006014LDR R0,=0X50006014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<10)  @将第[10]位设置为1STR R1,[R0] @将修改后的值写回去mov pc,lrled1_off:@设置PE10输出高电平  GPIOE_ODR[10]->0   0x50006014LDR R0,=0X50006014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<10)  @将第[10]位设置为0STR R1,[R0] @将修改后的值写回去mov pc,lrled2_on:@设置PF10输出高电平  GPIOE_ODR[10]->1   0x50007014LDR R0,=0X50007014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<10)  @将第[10]位设置为1STR R1,[R0] @将修改后的值写回去mov pc,lrled2_off:@设置PF10输出高电平  GPIOE_ODR[10]->0   0x50007014LDR R0,=0X50007014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<10)  @将第[10]位设置为0STR R1,[R0] @将修改后的值写回去mov pc,lrled3_on:@设置PG10输出高电平  GPIOE_ODR[10]->1   0x50006014LDR R0,=0X50006014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中ORR R1,R1,#(0x1<<8)  @将第[8]位设置为1STR R1,[R0] @将修改后的值写回去mov pc,lrled3_off:@设置PG10输出高电平  GPIOE_ODR[10]->0   0x50006014LDR R0,=0X50006014  @指定寄存器地址LDR R1,[R0]  @将寄存器数值取出来放在R1中BIC R1,R1,#(0x1<<8)  @将第[8]位设置为0STR R1,[R0] @将修改后的值写回去mov pc,lrdelay:LDR  R3,=0x10000000
mm:cmp r3,#0subne r3,r3,#1bne mmmov pc,lr.end

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

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

相关文章

Python 爬虫之下载视频(三)

批量下载某B主视频 文章目录 批量下载某B主视频前言一、基本思路二、确定遍历循环结构三、基本思路中第12步三、基本思路中第345步总结 前言 上一篇讲了如何去获取标题和视频链接。这篇就跟大家讲一下如何去下载这些视频。本篇会以标题和 视频链接 为突破口&#xff0c;来寻找…

GrayLog日志平台的基本使用-docker容器日志接入

1、/etc/docker/daemon.json中加入如下配置并重启服务 [rootlocalhost src]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://dhq9bx4f.mirror.aliyuncs.com"], "log-driver": "gelf", "log-opts":…

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合&#xff0c;为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中&#xff0c;我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外&#x…

PortSwigger Business Logic Vulnerabilities

lab1: Excessive trust in client-side controls 给了100块 买价值1337的货 在历史包里发现 尝试直接修改价格 lab2: High-level logic vulnerability 这里把加入购物车时价格可控的点修复了 但是数量可控 我们可以买负数的东西来加钱 但是返回Cart total price cannot be …

【数据结构】四、串

目录 一、定义 二、表示与实现 定长顺序存储 堆分配存储 链式存储 三、BF算法 四、KMP算法 1.求next数组 方法一 方法二&#xff08;考试方法&#xff09; 2.KMP算法实现 方法一 方法二 3.nextval 4.时间复杂度 本节最重要的就是KMP算法&#xff0c;其他要求不高…

汽车级EEPROM 存储器 M24C64-DRMN3TP/K是电可擦除可编程只读存储器?它的功能特性有哪些?

M24C64-DRMN3TP/K是一款64 Kbit串行EEPROM汽车级设备&#xff0c;工作温度高达125C。符合汽车标准AEC-Q100 1级规定的极高可靠性。 该设备可通过一个高达1MHz的简单串行I2C兼容接口访问。 存储器阵列基于先进的真EEPROM技术&#xff08;电可擦除可编程存储器&#xff09;。M2…

【力扣】543. 二叉树的直径

543. 二叉树的直径 突然间发现现在刷的题好多都和大一时学的数据结构密切相关&#xff0c;比如说这道题就用到的深度优先搜索算法。 题解&#xff1a; 以根节点为例&#xff0c;我们通过遍历左边的深度就可以得到当前左子树的长度&#xff0c;然后再遍历其右边&#xff0c;就…

吴恩达RLHF课程笔记

1.创建偏好数据集 一个prompt输入到LLM后可以有多个回答&#xff0c;对每个回答选择偏好 比如{prompt,answer1,answer2,prefer1} 2.根据这个数据集&#xff08;偏好数据集&#xff09;&#xff0c;创建reward model&#xff0c;这个model也是一个LLM,并且它是回归模型&#…

momentum2靶机

文章妙语 遇事不决&#xff0c;可问春风&#xff1b; 春风不语&#xff0c;遵循己心。 文章目录 文章妙语前言一、信息收集1.IP地址扫描2.端口扫描3.目录扫描 二&#xff0c;漏洞发现分析代码bp爆破1.生成字典2.生成恶意shell.php2.抓包 三&#xff0c;漏洞利用1.反弹shell 四…

Diffusion扩散模型学习:图片高斯加噪

高斯分布即正态分布&#xff1b;图片高斯加噪即把图片矩阵每个值和一个高斯分布的矩阵上的对应值相加 1、高斯分布 np.random.normal 一维&#xff1a; import numpy as np import matplotlib.pyplot as pltdef generate_gaussian_noise(mean, std_dev, size):noise np.ran…

低代码如何助力企业数字化转型?

目录 一、低代码开发是什么&#xff1f; 二、低代码与企业数字化转型 1&#xff09;集成化 2&#xff09;智能化 3&#xff09;定制化 三、低代码开发平台对于企业数字化转型的优势 01、提供源码 02、私有化部署 03、敏捷开发 04、拓展能力 四、低代码带来的效益 以…

量化服务器 - 后台挂载运行

服务器 - 后台运行 pip3命令被kill 在正常的pip命令后面加上 -no-cache-dir tmux 使用教程 https://codeleading.com/article/40954761108/ 如果你希望在 tmux 中后台执行一个 Python 脚本&#xff0c;你可以按照以下步骤操作&#xff1a; 启动 tmux: tmux这将会创建一个新…

绝对干货-讲讲设计模式之结构型设计模式

经典的23种设计模式种属于结构型设计模式的是装饰模式&#xff0c;适配器模式&#xff0c;代理模式&#xff0c;组合模式&#xff0c;桥接模式&#xff0c;外观模式&#xff0c;享元模式。 如果说创建型设计模式解决的是创建对象的问题&#xff0c;那么结构型模式就是通过类和…

JS逆向基础

JS逆向基础 一、什么是JS逆向&#xff1f;二、接口抓包三、逆向分析 一、什么是JS逆向&#xff1f; 我们在网站进行账号登录的时候对网页源进行抓包就会发现我们输入的密码在后台会显示为一串由字母或数字等符号&#xff0c;这就是经过加密呈现的一段加密文字&#xff0c;而分…

python脚本 链接到ssh服务器 快速登录ssh服务器 ssh登录

此文分享一个python脚本,用于管理和快速链接到ssh服务器。 效果演示 🔥完整演示效果 👇第一步,显然,我们需要选择功能 👇第二步,确认 or 选择ssh服务器,根据配置文件中提供的ssh信息,有以下情况 👇场景一,只有一个候选ssh服务器,则脚本会提示用户是否确认链…

blender径向渐变材质-着色编辑器

要点&#xff1a; 1、用纹理坐标中的物体输出连接映射中的矢量输入 2、物体选择一个空坐标&#xff0c;将空坐标延z轴上移一段距离 3、空坐标的大小要缩放到和要添加材质的物体大小保持一致

存 储 管 理

(1) 存储管理的任务和功能是什么&#xff1f; 解&#xff1a; 存储管理的主要任务是&#xff1a; 支持多道程序的并发执行&#xff0c;使多道程序能共享存储资源&#xff0c;在互不干扰的环境中并发执行。方便用户&#xff0c;使用户减少甚至摆脱对存储器的管理&#xff0c;使…

【前端】前后端通信方法与差异(未完待续)

系列文章 【Vue】vue增加导航标签 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/134965353 【Vue】Element开发笔记 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/133947977 【Vue】vue&#xff0c;在Windows IIS平台…

WPF中使用DataGrid封装组合控件TreeView+DataGrid

&#xff08;关注博主后&#xff0c;在“粉丝专栏”&#xff0c;可免费阅读此文&#xff09; wpf的功能非常强大&#xff0c;很多控件都是原生的&#xff0c;但是要使用TreeViewDataGrid的组合&#xff0c;就需要我们自己去封装实现。 我们需要的效果如图所示&#x…

Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580

Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580 已亲自复现 漏洞名称漏洞描述影响版本 漏洞复现环境搭建漏洞利用 修复建议总结 Apache ShenYu 网关JWT认证绕过漏洞 CVE-2021-37580 已亲自复现) 漏洞名称 漏洞描述 Apache ShenYu是一个异步的&#xff0c;高性能的&#x…