ARM day4 代码

.text 
.global _start
_start: 
    
@设置PE10输出:
@使能GPIOE的外设时钟  RCC_MP_AHB4ENSETR的第[4]设置为1即可使能GPIOE时钟
LDR R0,=0X50000A28   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
ORR R1,R1,#(0x1<<4)   @将第4位设置为1
STR R1,[R0]  @将修改后的数值写回

@设置PE10为输出  将GPIOE_MODER[21:20]设置为01,就能够让PE10为输出工作模式
LDR R0,=0X50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回

@设置PE10为推完输出  将GPIOE_OTYPER寄存器[10]设置为0,就能够让PE10以推挽输出模式进行工作
LDR R0,=0X50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回

@设置PE10为低速输出
LDR R0,=0X50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回

@设置无上拉下拉电阻 
LDR R0,=0X5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
  @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回

@设置PE8为输出  将GPIOE_MODER[21:20]设置为01,就能够让PE10为输出工作模式
LDR R0,=0X50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第21:16清0
ORR R1,R1,#(0x1<<17)   @将第21:17设置为01
STR R1,[R0]  @将修改后的数值写回

@设置PE8为推完输出  将GPIOE_OTYPER寄存器[10]设置为0,就能够让PE10以推挽输出模式进行工作
LDR R0,=0X50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<8)   @将第8清0
STR R1,[R0]  @将修改后的数值写回

@设置PE8为低速输出
LDR R0,=0X50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第21:16清0
STR R1,[R0]  @将修改后的数值写回

@设置无上拉下拉电阻 
LDR R0,=0X5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第21:16清0
  @将第21:16设置为01
STR R1,[R0]  @将修改后的数值写回

@设置PF10为输出  将GPIOE_MODER[21:20]设置为01,就能够让PE10为输出工作模式
LDR R0,=0X50007000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回

@设置PF10为推完输出  将GPIOE_OTYPER寄存器[10]设置为0,就能够让PE10以推挽输出模式进行工作
LDR R0,=0X50007004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回

@设置PF10为低速输出
LDR R0,=0X50007008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回

@设置无上拉下拉电阻 
LDR R0,=0X5000700C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
  @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回


loop:
@设置LED1亮
    BL LED1_ON
    BL DELAY
    BL LED1_OFF

    BL LED2_ON
    BL DELAY
    BL LED2_OFF

    BL LED3_ON
    BL DELAY
    BL LED3_OFF

    BL DELAY
    b loop


LED1_ON:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    ORR R1,R1,#(0x1<<10)   @将第10设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED1_OFF:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    BIC R1,R1,#(0x1<<10)   @将第10设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR

LED2_ON:
   LDR R0,=0X50007014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R2中,R2:PF10
    ORR R1,R1,#(0x1<<10)   @将第10设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED2_OFF:
   LDR R0,=0X50007014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R2中
    BIC R1,R1,#(0x1<<10)   @将第10设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR

LED3_ON:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R3中,R3:PE8
    ORR R1,R1,#(0x1<<8)   @将第10设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED3_OFF:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R3中
    BIC R1,R1,#(0x1<<8)   @将第10设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR

DELAY:
    LDR R3,=0x10000000
MM:
    CMP R3,#0
    SUBNE R3,R3,#1
    BNE MM
    MOV PC,LR

.end
 

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

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

相关文章

Linux课程五课---git的使用

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

springboot与elasticsearch-7.16.2的基础CRUD使用——入门向

highlight: an-old-hope 基于elasticsearch-7.16.2 &#xff0c;使用的是旧版的高级客户端 restHighLevelClient springboot版本2.6.13 项目原代码地址 https://gitee.com/kenwm/es7demo.git 参考博客 1、SpringBoot集成ElasticSearch&#xff0c;实现模糊查询&#xff0c;批…

湖北省地质灾害分布数据 崩塌滑坡泥石流空间分布地质灾害详查等数据集

地质灾害是指在自然或者人为因素的作用下形成的&#xff0c;对人类生命财产造成的损失、对环境造成破坏的地质作用或地质现象。地质灾害在时间和空间上的分布变化规律&#xff0c;既受制于自然环境&#xff0c;又与人类活动有关&#xff0c;往往是人类与自然界相互作用的结果。…

前端 - 基础 表单标签 -- 表单元素( input - type属性) 文本框和密码框

表单元素 &#xff1a; 在表单域中可以定义各种表单元素&#xff0c;这些表单元素就是允许用户在表单中输入或选择 的内容控件。 表单元素的外观也各不一样&#xff0c;有小圆圈&#xff0c;有正方形&#xff0c;也有方框&#xff0c;乱七八糟的&#xff0c;各种各样&#xf…

01 龙芯平台openstack部署搭建-控制节点环境准备

#!/bin/bash 控制节点-环境准备 基本规划 控制节点计算节点10.130.0.3110.130.0.87 一、环境准备 1.hostname主机名配置 hostnamectl set-hostname controller exec bash #添加host controller_ip“10.130.0.31” computer_ip“10.130.0.87” echo “ c o n t r o l l e r …

每日学习笔记:C++ STL 的map、multimap

定义 特点 操作函数 意思就是&#xff0c;使用tuple中的元素来初始化pair&#xff0c;即string(“hello”)、complex(3.4,7.8) 元素的移除讨论

Deepspeed的机制学习以及ZeRO-1、ZeRO-2和ZeRO-3的区别

目录 DeepSpeed 机制 1. 分布式训练 2. 模型并行性 3. 内存和带宽优化 4. 高效的数据加载和预处理 5. 易用性和兼容性 6. 微调和超参数优化 ZeRO-1、ZeRO-2和ZeRO-3的区别 ZeRO优化级别概述 ZeRO-1 ZeRO-2 ZeRO-3 总结 DeepSpeed 机制 1. 分布式训练 DeepSpeed …

egg学习记录2

普通路由设置 router.get("路由",controller.文件.函数) //方法1 router.get("路由","文件.函数") //方法2路由重定向 router.redirect("新路由","旧路由") 插件的使用 安装好插件后&#xff0c;默认是没有启动该插件的…

大数据架构技术选型

OLAP数据库选型对比&#xff1a; AnalyticDB(阿里&#xff09;、Hologres&#xff08;阿里&#xff09;、Doris、StarRocks、ClickHouse、Hbase AnalyticDB技术架构 db是融合数据库、大数据技术于一体的云原生企业级数据仓库服务、支持高吞吐的数据实时增删改查低延时的实时分…

重载、重写(覆盖)和隐藏的区别

提示&#xff1a;文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问&#xff1a; 本文目标&#xff1a; 一、背景 最近 二、 2.1 重载、重写&#xff08;覆盖&#xff09;和隐藏的区别 重载Overloading重写/覆盖Override隐藏Overwrite同一个类父子类关系父子…

stm32f103c8t6学习笔记(学习B站up江科大自化协)-USART串口-软件部分

前言&#xff1a; 本文属于软件部分&#xff0c;具体的串口硬件部分可见http://t.csdnimg.cn/afh48&#xff0c;对于串口的工作原理以及各个寄存器工作流程的记录十分详细。 一、接线图 二、stm32发送-电脑串口助手接收 1.USART初始化流程图 1.开启时钟 把需要使用的USART和…

【java-spring】spring AOP原理

Spring AOP&#xff08;面向切面编程&#xff09;是Spring框架的一个重要组成部分&#xff0c;它允许开发者将通用功能&#xff08;如日志记录、事务管理等&#xff09;从业务逻辑中分离出来&#xff0c;从而提高代码的可维护性和重用性。下面&#xff0c;我们将深入探讨Spring…

golang面试题总结

零、go与其他语言 0、什么是面向对象 在了解 Go 语言是不是面向对象&#xff08;简称&#xff1a;OOP&#xff09; 之前&#xff0c;我们必须先知道 OOP 是啥&#xff0c;得先给他 “下定义” 根据 Wikipedia 的定义&#xff0c;我们梳理出 OOP 的几个基本认知&#xff1a; …

13 龙芯平台openstack部署搭建-nova-controllercomputer部署(单节点)

一、创建Nova相关数据库、凭据与API端点 1.创建数据库并授权 #nova-controller先决条件 mysql -uroot -ploongson -e “CREATE DATABASE nova_api;” mysql -uroot -ploongson -e “CREATE DATABASE nova;” mysql -uroot -ploongson -e “CREATE DATABASE nova_cell0;” my…

leetcode 402. 移掉 K 位数字

题目链接&#xff1a;leetcode 402 1.题目 给你一个以字符串表示的非负整数 num 和一个整数 k &#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的数字最小。请你以字符串形式返回这个最小的数字。 2.示例 1&#xff09;示例 1 &#xff1a; 输入&#xff1a;num …

操作系统设备管理

操作系统实现对外接设备的管理功能&#xff0c;主要是I/O设备&#xff0c;unix适用将外部设备抽象为特殊文件&#xff0c;用户用与外部文件相同的方法操作外部设备&#xff0c;具体又可以分为&#xff1a; 人机交互类外部设备&#xff0c;如鼠标键盘等&#xff0c;这类设备数据…

2024年阿里云服务器搭建幻兽帕鲁游戏_保姆级教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

SpringBoot集成WebService

1&#xff09;添加依赖 <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.3.4</version><exclusions><exclusion><groupId>javax.validation<…

【Linux】线程预备知识{远程拷贝/重入函数与volatile关键字/认识SIGCHILD信号/普通信号/实时信号}

文章目录 0.远程拷贝1.重入函数与volatile关键字2.认识SIGCHILD信号3.普通信号/实时信号 0.远程拷贝 打包资源&#xff1a;tar czf code.tgz *远程传输&#xff1a;scp code.tgz usr服务器ip:/home/usr/路径解压&#xff1a;tar xzf code.tgz 1.重入函数与volatile关键字 先看…

默写单词cpp(初学者版本)

笔摔坏了直接使用版:yum:仔细学习版:yum:1.直接使用版:yum:&#xff08;文件使用规范&#xff09;(1)文件(2)使用规范 2.仔细学习版。将会讲各个函数的功能和细节。今天太晚了&#xff0c;明天再写。 笔摔坏了 在一个阳光明媚的早晨&#xff0c;我愉快的奋笔疾书&#xff0c;抄…