嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮

 源码:


.text 
.global _start
_start: 			@进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 				@循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl LED3_ONbl delay_1sbl LED3_OFFbl delay_1sbl LED1_ONbl LED2_ONbl LED3_ONbl delay_1sbl LED1_OFFbl LED2_OFFbl LED3_OFFbl delay_1sb loopRCC_INIT:@使能对应控制器,通过RCC_MP_AHB4ENSETR寄存器进行设置@引脚为E第[4]位 置1,引脚为F寄存器第[5]位 置1ldr r0,=0x50000A28ldr r1,[r0]orr r1,r1,#(0x3<<4)   @将P引脚与F引脚的寄存器一起使能str r1,[r0]mov pc,lr@LED1的所有初始化工作
LED1_INIT:@1.通过GPIOx_MODER寄存器将PE10引脚设置为输出模式,并将[21:20]位 置01ldr r0,=0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]@2.通过GPIOx_OTYPER寄存器将PE10引脚设置为推挽输出模式,并将第[10]位 置0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]@3.通过GPIOx_OSPEEDR寄存器将PE10引脚设置为低速输出模式,并将第[21:20]位 置00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]@4.通过GPIOx_PUPDR寄存器将PE10引脚设置为禁止上下拉电阻模式,并将第[21:20]位 置00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]mov pc,lr@LED2的所有初始化工作
LED2_INIT:@1.通过GPIOx_MODER寄存器将PF10引脚设置为输出模式,并将[21:20]位 置01ldr r0,=0x50007000ldr r1,[r0]bic r1,r1,#(0x3<<20)orr r1,r1,#(0x1<<20)str r1,[r0]@2.通过GPIOx_OTYPER寄存器将PF10引脚设置为推挽输出模式,并将第[10]位 置0ldr r0,=0x50007004ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]@3.通过GPIOx_OSPEEDR寄存器将PF10引脚设置为低速输出模式,并将第[21:20]位 置00ldr r0,=0x50007008ldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]@4.通过GPIOx_PUPDR寄存器将PF10引脚设置为禁止上下拉电阻模式,并将第[21:20]位 置00ldr r0,=0x5000700Cldr r1,[r0]bic r1,r1,#(0x3<<20)str r1,[r0]mov pc,lr@LED3的所有初始化工作
LED3_INIT:@1.通过GPIOx_MODER寄存器将PE8引脚设置为输出模式,并将[17:16]位 置01ldr r0,=0x50006000ldr r1,[r0]bic r1,r1,#(0x3<<16)orr r1,r1,#(0x1<<16)str r1,[r0]@2.通过GPIOx_OTYPER寄存器将PE8引脚设置为推挽输出模式,并将第[8]位 置0ldr r0,=0x50006004ldr r1,[r0]bic r1,r1,#(0x1<<8)str r1,[r0]@3.通过GPIOx_OSPEEDR寄存器将PE8引脚设置为低速输出模式,并将第[17:16]位 置00ldr r0,=0x50006008ldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]@4.通过GPIOx_PUPDR寄存器将PE8引脚设置为禁止上下拉电阻模式,并将第[17:16]位 置00ldr r0,=0x5000600Cldr r1,[r0]bic r1,r1,#(0x3<<16)str r1,[r0]mov pc,lr@点亮LED1灯
LED1_ON:@.通过GPIOx_ODR寄存器将PE10引脚设置为输出高电平模式,并将第[10]位 置1 ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@熄灭LED1灯
LED1_OFF:@.通过GPIOx_ODR寄存器将PE10引脚设置为输出低电平模式,并将第[10]位 置0 ldr r0,=0x50006014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@点亮LED2灯
LED2_ON:@.通过GPIOx_ODR寄存器将PF10引脚设置为输出高电平模式,并将第[10]位 置1 ldr r0,=0x50007014ldr r1,[r0]orr r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@熄灭LED2灯
LED2_OFF:@.通过GPIOx_ODR寄存器将PF10引脚设置为输出低电平模式,并将第[10]位 置0 ldr r0,=0x50007014ldr r1,[r0]bic r1,r1,#(0x1<<10)str r1,[r0]mov pc,lr@点亮LED3灯
LED3_ON:@.通过GPIOx_ODR寄存器将PE8引脚设置为输出高电平模式,并将第[8]位 置1 ldr r0,=0x50006014ldr r1,[r0]orr r1,r1,#(0x1<<8)str r1,[r0]mov pc,lr@熄灭LED3灯
LED3_OFF:@.通过GPIOx_ODR寄存器将PE8引脚设置为输出低电平模式,并将第[8]位 置0 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

二、在C语言中Ox5000A28如何表示一块地址空间

int *ptr = (int *)0x5000A28

        在上述代码中,int *ptr定义了一个指向整数类型的指针ptr,(int *)将地址0x5000A28强制转换为整数类型的指针,后续可以通过*ptr访问与修改该地址空间中的值。

三、思维导图

 

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

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

相关文章

如何进行网络活动监控

组织的 IT 基础架构中的每个网络设备上都发生了大量活动&#xff0c;例如数据包传输、来自网络协议的消息、设备状态事件等。网络活动成为在检测到问题时识别网络瓶颈的面包屑&#xff0c;因此即使是最微小的网络活动也应受到监控&#xff0c;因为它直接影响整体网络性能、运行…

UI设计师个人工作总结范文精选

UI设计师个人工作总结范文(一) 在忙忙碌碌中&#xff0c;2019年又将过去了&#xff0c;在这一年当中&#xff0c;设计部无论是在运作模式、设计产值、还是人员结构&#xff0c;各方面的变化都比较大。 设计部的运作模式是从7月底开始进行调整的&#xff0c;以独立承包制的运营方…

python爬虫5:requests库-案例3

python爬虫5&#xff1a;requests库-案例3 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 申明 ​ 本系列所涉及的代码仅用于个人研究与讨论&#xff0c;并不会对网…

mysql 01.三范式,数据类型

01.概念的区分&#xff1a; mysql是属于DBMS层次的&#xff0c;sql语句是用于DBMS的语句。 02.sql语句详细介绍&#xff1a; SQL的概述Structure Query Language(结构化查询语言)简称SQL&#xff0c;它被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准&#xff0c;后…

conda常用命令及国内镜像源

conda命令使用介绍 启动conda source ~/.bashrc帮助目录 conda create -h检查conda版本 conda --version升级当前版本的conda conda update conda环境管理 列出所有的环境 conda info -e conda env list安装一个不同版本的python新环境 conda create --name py27 pytho…

JavaWeb-DAO设计模式

目录 DAO设计模式 1.认识DAO 2.DAO各部分的详解 3.DAO设计模式流程 DAO设计模式 1.认识DAO DAO(Data Acess Object 数据库访问对象)的主要功能是操作数据库&#xff0c;所以DAO在标准开发架构中数据数据层&#xff0c;以下是标准开发的架构 客户层&#xff1a;目前使用B/…

Openai中的tokens怎么估计

大规模语言模型&#xff08;LLM&#xff09;的出现给自然语言处理领域带来了变革的可能性&#xff0c;Openai开放了chatgpt的API&#xff0c;方便了开发人员使用LLM的推理能力&#xff0c;注册时赠送5美元的使用额度&#xff0c;有效期3个月。 如果想便捷的使用chatgpt的API&a…

Jmeter 二次开发 函数助手 AES加解密

Jmeter 二次开发 函数助手 AES加解密 1. 环境准备2. 关键技术说明2.1 离线导包2.2 示例代码 3. 代码包4. 结果演示 1. 环境准备 IDE &#xff1a;IntelliJ IDEA 2021.1.1 x64JAVA环境 &#xff1a;jdk1.8.0_251离线导包&#xff1a;导入Jmeter安装目录下lib/ext下的ApacheJmet…

Martin_DHCP_V3.0 (DHCP自动化泛洪攻击GUI)

Github>https://github.com/MartinxMax/Martin_DHCP_V3.0 首页 Martin_DHCP_V3.0 自动化DHCP洪泛攻击 Martin_DHCP_V3.0 使用方法 安装三方库 #python3 1.RunMe_Install_Packet.py 攻击路由器 #python3 Martin_DHCP_Attack.py 填写网卡 填写攻击次数 开始运行

高光谱 | 矿物识别和分类标签数据制作、农作物病虫害数据分类、土壤有机质含量回归与制图、木材含水量评估和制图

本课程提供一套基于Python编程工具的高光谱数据处理方法和应用案例。 本课程涵盖高光谱遥感的基础、方法和实践。基础篇以学员为中心&#xff0c;用通俗易懂的语言解释高光谱的基本概念和理论&#xff0c;旨在帮助学员深入理解科学原理。方法篇结合Python编程工具&#xff0c;…

阿里云服务器部署RabbitMQ流程

阿里云百科分享使用阿里云服务器部署RabbitMQ流程&#xff0c;RabbitMQ是实现了高级消息队列协议&#xff08;AMQP&#xff09;的开源消息代理软件&#xff0c;用于在分布式系统中存储转发消息&#xff0c;有良好的易用性、扩展性和高可用性。本文介绍如何通过ECS实例部署Rabbi…

机器学习笔记:李宏毅 stable diffusion

1 基本框架 ①&#xff1a;文字变成向量 ②&#xff1a;喂入噪声文字encoder&#xff0c;产生中间产物 ③&#xff1a;decoder 还原图片 2 text encoder 这张图越往右下表示效果越好&#xff0c;可以看到text encoder尺寸越大&#xff0c;对后续生成图片的增益越多 3 评价图…

公园游玩必备!新零售模式如何吸引更多游客

随着科技的不断演进&#xff0c;新零售模式正以前所未有的速度改变着我们的购物方式和消费体验。其中&#xff0c;自动售货机作为新零售模式的重要组成部分&#xff0c;以其智能化、便捷性和多样性的特点&#xff0c;正逐渐成为城市中熠熠生辉的一道风景线。 从24小时不间断的运…

LeetCode Top100 Liked 题单(序号34~51)

​34. Find First and Last Position of Element in Sorted Array ​ 题意&#xff1a;找到非递减序列中目标的开头和结尾 我的思路 用二分法把每一个数字都找到&#xff0c;最后返回首尾两个数 代码 Runtime12 ms Beats 33.23% Memory14 MB Beats 5.16% class Solution {…

前端练手小项目--自定义时间(html+css+js)

自定义时间 写文章的因 关于要写这篇文章的原因 是记录在工作上遇到的困难需求&#xff0c;是希望能给大家提供一些解决问题的思路 接下来我描述这个需求的多样性&#xff0c;难点在哪。 勾选勾选框开始时间与结束时间默认显示昨天与今天。取消勾选框开始时间与结束时间清空。…

Nginx运行Vue项目:基本运行

需求 在Nginx服务器中&#xff0c;运行Vue项目。 说明 Vue项目打包生成的生产文件&#xff0c;是无法直接在浏览器打开的。需要放到Nginx服务器中&#xff0c;才能够访问。 本文章只介绍最基本的情况&#xff1a;Nginx中运行一个Vue项目。 实际生产环境&#xff0c;一个Ng…

解密 AI 客服;在不同硬件设备上运行大型语言模型的可能性

&#x1f989; AI新闻 &#x1f680; 微软必应首席执行官称必应聊天优于OpenAI的GPT-4&#xff0c;但成本更高 摘要&#xff1a;微软必应的首席执行官米哈伊尔・帕拉欣表示&#xff0c;必应聊天表现优于OpenAI的GPT-4&#xff0c;但使用了更高成本的检索增强推理技术。必应聊…

中科亿海微ROM使用

标题 ROM&#xff08;Read-Only Memory&#xff0c;只读存储器&#xff09;是一种在FPGA&#xff08;Field-Programmable Gate Array&#xff0c;现场可编程门阵列&#xff09;中常用的存储器类型。与RAM&#xff08;Random Access Memory&#xff0c;机存取存储器&#xff09;…

Nginx安全加固,版本隐藏及HTTP请求头修改方法

1 隐藏nginx版本号 1.1 引言 nginx作为目前较为流行的http server软件&#xff0c;其相关的安全漏洞也非常多&#xff0c;攻击者可以根据我们的nginx版本来了解到相关的漏洞从而针对性的进行攻击。 通过新版本的nginx都会修复一些老版本的已知漏洞&#xff0c;但有时候我们生…

提示丢失vcomp140.dll怎么办?如何快速修复vcomp140.dll丢失问题

最近我遇到了一个程序启动失败的问题&#xff0c;错误提示显示缺少了vcomp140.dll文件。经过一番研究和尝试&#xff0c;我终于成功修复了这个问题。在这里&#xff0c;我将分享一下我的修复方法。 目录 vcomp140.dll是什么&#xff1f; 如何快速修复呢&#xff1f; vcomp140…