ARM DAY3 点亮三盏灯

news/2024/11/16 10:29:45/

1.汇编代码

.text 
.global _start
_start: //RCC初始化
RCC_INIT://设置GPIOE组使能ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<4)str r1,[r0]//设置GPIOF组使能 ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x1<<5)str r1,[r0]//LED1灯初始化
LED1_INIT://设置模式为输出模式
@	0x50006000[21:20]=01ldr r0,=0x50006000ldr r1,[r0]orr r1,r1,#(0x1<<20)bic r1,r1,#(0x1<<21)str r1,[r0]//设置输出类型为推挽输出
@	0x50006004[10]=0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]//设置输出速率为低速
@	0x50006008[21:20]=00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]//设置上下拉电阻为不上下拉
@	0x5000600C[21:20]=00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]//LED2灯初始化
LED2_INIT://设置模式为输出模式
@	0x50007000[21:20]=01ldr r0,=0x50007000ldr r1,[r0]orr r1,r1,#(0x1<<20)bic r1,r1,#(0x1<<21)str r1,[r0]//设置输出类型为推挽输出
@	0x50007004[10]=0ldr r0,=0x50007004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]//设置输出速率为低速
@	0x50007008[21:20]=00ldr r0,=0x50007008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]//设置上下拉电阻为不上下拉
@	0x5000700C[21:20]=00ldr r0,=0x5000700Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]//LED3灯初始化
LED3_INIT://设置模式为输出模式
@	0x50006000[17:16]=01ldr r0,=0x50006000ldr r1,[r0]orr r1,r1,#(0x1<<16)bic r1,r1,#(0x1<<17)str r1,[r0]//设置输出类型为推挽输出
@	0x50006004[8]=0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<8)str r1,[r0]//设置输出速率为低速
@	0x50006008[17:16]=00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]//设置上下拉电阻为不上下拉
@	0x5000600C[17:16]=00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]@循环函数
loop:bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl LED3_ONbl delay_1sbl LED3_OFFbl delay_1sb loop//LED1灯点亮
LED1_ON:
@	0x50006014[10]=1ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr//LED1灯熄灭
LED1_OFF:ldr r0,=0x50006014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr//LED2灯点亮
LED2_ON:
@	0x50007014[10]=1ldr r0,=0x50007014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr//LED2灯熄灭
LED2_OFF:ldr r0,=0x50007014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr//LED3灯点亮
LED3_ON:
@	0x50006014[8]=1ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<8)str r1,[r0]mov pc,lr//LED3灯熄灭
LED3_OFF:ldr r0,=0x50006014ldr r1,[r0]bic r1,r1,#(0x1<<8)str r1,[r0]mov pc,lr@ 大概1s的延时函数
delay_1s:mov r3, #0x10000000mm:cmp r3, #0subne r3, r3, #1bne mmmov pc, lr.end

实现现象

IMG_1044

2.思维导图


http://www.ppmy.cn/news/977729.html

相关文章

【档案专题】四、电子档案形成与收集

导读&#xff1a;主要针对电子档案形成与收集相关内容介绍。对从事电子档案管理信息化的职业而言&#xff0c;不断夯实电子档案管理相关理论基础是十分重要。只有通过不断梳理相关知识体系和在实际工作当中应用实践&#xff0c;才能走出一条专业化加职业化的道路&#xff0c;从…

【Nodejs】Node.js开发环境安装

1.版本介绍 在命令窗口中输入 node -v 可以查看版本 0.x 完全不技术 ES64.x 部分支持 ES6 特性5.x 部分支持ES6特性&#xff08;比4.x多些&#xff09;&#xff0c;属于过渡产品&#xff0c;现在来说应该没有什么理由去用这个了6.x 支持98%的 ES6 特性8.x 支持 ES6 特性 2.No…

STM32(HAL库)驱动AD8232心率传感器

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 ADC外设配置 2.3 串口外设配置 2.4 GPIO配置 2.5 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 ADC数据采集 3.3 主函数代码整合 4 硬件连接 5 效果展示 1、简介 本文通过STM32…

Qt - 信号和槽

文章目录 信号和槽自定义信号和槽代码实现teacher 类申明信号方法student 添加槽并处理绑定信号和槽 当自定义信号和槽出现重载设置按钮点击 信号可以连接信号断开信号 disconnectQt4版本写法Lambda 表达式函数对象参数操作符重载函数参数可修改标示符函数返回值是函数体 总结拓…

运维高级学习---MySQL主从复制

MySQL内建的复制功能是构建大型&#xff0c;高性能应用程序的基础 通过将MySQL的某一台主机 (master)的数据复制到其他主机(slaves)上&#xff0c;并重新执行一遍来执行复制过程中一台服务器充当主服务器&#xff0c;而其他一个或多个其他服务器充当从服务器 为什么要做主从复…

appscan 应用

HCL appscan是个常见的web app DAST 扫描工具 有企业版和standalone 版本。大家常用的都是单机版本。企业版平台&#xff0c;集成了IAST。 appscan 使用比较简单&#xff0c;基本输入url 账号密码就开扫了。 用了一段时间几点体验 1 还是需要手动explore的&#xff0c;他自…

Python3 API 的封装及调用

一、API 的封装 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作…

HarmonyOS/OpenHarmony应用开发-Stage模型UIAbility组件使用(六)

UIAbility组件间交互&#xff08;设备内&#xff09; UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时&#xff0c;会涉及到启动特定的UIAbility&#xff0c;该UIAbility可以是应用内的其他UIAbility&#xff0c;也可以是其他应用的UIAbility&#xff08;例如启…