【嵌入式学习】ARM day04.11

一、思维导图

二、练习

实现三个灯闪烁

汇编代码

.text 
.global _start
_start: 
            @使能GPIOE和F时钟
            LDR     r0,=0x50000A28
            LDR      r1,[R0]
            ORR     R1,R1,#(0X3<<4)
            STR      R1,[R0]

          @配置GPIOE和F的MODER寄存器
            LDR     r0,=0x50006000   @GPIOE
            LDR     R1,=0X50007000   @GPIOF
            LDR      R2,[R0]
            BIC       R2,R2,#(0X3<<20)
            BIC       R2,R2,#(0X3<<16)
            ORR     R2,R2,#(0X1<<20)
            ORR     R2,R2,#(0X1<<16)
            STR      R2,[R0]
            LDR      R2,[R1]
            BIC       R2,R2,#(0X3<<20)
            ORR     R2,R2,#(0X1<<20)
            STR      R2,[R1]

             @配置GPIOE和F的OTYPER寄存器
            LDR     r0,=0x50006004   @GPIOE
            LDR     R1,=0X50007004   @GPIOF
            LDR      R2,[R0]
            BIC       R2,R2,#(0X1<<10)
            BIC       R2,R2,#(0X1<<8)
            STR      R2,[R0]
            LDR      R2,[R1]
            BIC       R2,R2,#(0X1<<10)
            STR      R2,[R1]

          @配置GPIOE和F的OSPEEDR寄存器
            LDR     r0,=0x50006008   @GPIOE
            LDR     R1,=0X50007008   @GPIOF
            LDR      R2,[R0].text 
.global _start
_start: 
            @使能GPIOE和F时钟
            LDR     r0,=0x50000A28
            LDR      r1,[R0]
            ORR     R1,R1,#(0X3<<4)
            STR      R1,[R0]

          @配置GPIOE和F的MODER寄存器
            LDR     r0,=0x50006000   @GPIOE
            LDR     R1,=0X50007000   @GPIOF
            LDR      R2,[R0]
            BIC       R2,R2,#(0X3<<20)
            BIC       R2,R2,#(0X3<<16)
            ORR     R2,R2,#(0X1<<20)
            ORR     R2,R2,#(0X1<<16)
            STR      R2,[R0]
            LDR      R2,[R1]
            BIC       R2,R2,#(0X3<<20)
            ORR     R2,R2,#(0X1<<20)
            STR      R2,[R1]

             @配置GPIOE和F的OTYPER寄存器
            LDR     r0,=0x50006004   @GPIOE
            LDR     R1,=0X50007004   @GPIOF
            LDR      R2,[R0]
            BIC       R2,R2,#(0X1<<10)
            BIC       R2,R2,#(0X1<<8)
            STR      R2,[R0]
            BIC       R2,R2,#(0X3<<20)
            BIC       R2,R2,#(0X3<<16)
            STR      R2,[R0]
            LDR      R2,[R1]
            BIC       R2,R2,#(0X3<<20)
            STR      R2,[R1]


            @配置GPIOE和F的PUPDR寄存器
            LDR     r0,=0x5000600C   @GPIOE
            LDR     R1,=0X5000700C   @GPIOF
            LDR      R2,[R0]
            BIC       R2,R2,#(0X3<<20)
            BIC       R2,R2,#(0X3<<16)
            STR      R2,[R0]
            LDR      R2,[R1]
            BIC       R2,R2,#(0X3<<20)
            STR      R2,[R1]
LOOP:
           BL  LED_ON
           BL  DELAY
           BL  LED_OFF
           BL  DELAY
           B  LOOP

LED_ON:
            @GPIOE
            LDR     r0,=0x50006014
            LDR      r1,[R0]
            ORR      R1,R1,#(0X1<<10)
            ORR      R1,R1,#(0X1<<8)
            STR      R1,[R0]
            @GPIOF
            LDR     r0,=0x50007014
            LDR      r1,[R0]
            ORR      R1,R1,#(0X1<<10)
            STR      R1,[R0]
            MOV PC,LR

LED_OFF:
             @GPIOE
            LDR     R0,=0x50006014
            LDR      R1,[R0]
            BIC      R1,R1,#(0X1<<10)
            BIC      R1,R1,#(0X1<<8)
            STR      R1,[R0]
            @GPIOF
            LDR     r0,=0x50007014
            LDR      r1,[R0]
            BIC      R1,R1,#(0X1<<10)
            STR      R1,[R0]
            MOV PC,LR

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

Makefile 

NAME=asm-led
CROSS_COMPILE = arm-linux-gnueabihf-

CC = $(CROSS_COMPILE)gcc

LD = $(CROSS_COMPILE)ld
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump

all:
	
	$(CC) -O0 -g -c $(NAME).S -o $(NAME).o
	
	$(LD) -Ttext=0xC0008000 $(NAME).o -o $(NAME).elf 
	 
	$(OBJCOPY) -O binary $(NAME).elf  $(NAME).bin

	$(OBJDUMP) -D $(NAME).elf > $(NAME).dis
clean:
	rm -rf *.elf *.bin *.o *.dis

install:
	
	sudo cp $(NAME).bin  /mnt/hgfs/share/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言.指针(5)

指针&#xff08;5&#xff09; 1.sizeof和strlen的对比1.1sizeof1.2strlen1.3sizeof和strlen的对比 2.数组和指针笔试题解析2.1一维数组2.2字符数组2.3二维数组 3.指针运算笔试题解析3.1 题目13.2 题目23.3 题目33.4 题目43.5 题目53.6 题目63.7 题目7 1.sizeof和strlen的对比…

Qt栅格布局的示例

QGridLayout * layoutnew QGridLayout;for(int i0;i<10;i){for(int j0;j<6;j){QLabel *labelnew QLabel(this);label->setText(QString("%1行%2列").arg(i).arg(j));layout->addWidget(label,i,j);}}ui->widget->setLayout(layout); 这样写程序会崩…

NC65 查询默认密码(sql)

NC65 使用sql查询设置的默认密码&#xff08;如果系统设置有&#xff09;&#xff1a; select * from sm_user_defaultpwd

电商技术揭秘十三:云计算在电商中的应用场景

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

C++11 设计模式2. 简单工厂模式

简单工厂&#xff08;Simple Factory&#xff09;模式 我们从实际例子出发&#xff0c;来看在什么情况下&#xff0c;应用简单工厂模式。 还是以一个游戏举例 //策划&#xff1a;亡灵类怪物&#xff0c;元素类怪物&#xff0c;机械类怪物&#xff1a;都有生命值&#xff0…

「Java开发指南」如何利用MyEclipse启用Spring DSL?(一)

本教程将引导您通过启用Spring DSL和使用Service Spring DSL抽象来引导Spring和Spring代码生成项目&#xff0c;本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中&#xff0c;您将学习如何&#xff1a; 为Spring DSL初始化一个项目创建一个模型包创建一个服务和操…

实体抽取全解析:技术与实战

目录 一、前言二、实体抽取技术概览基于规则的实体抽取基于统计的实体抽取基于深度学习的实体抽取 三、实体抽取的发展历程早期的实体抽取方法基于规则和词典的方法基于特征的机器学习方法 深度学习时代的实体抽取从传统模型到神经网络序列标注模型的兴起预训练语言模型的革命 …

如何修改 MySQL 8.0 的密码

在 MySQL 8.0 中修改用户密码是数据库管理的一项基本任务。本教程将引导您完成这一过程&#xff0c;确保即使是初学者也能理解并成功执行。 介绍 MySQL 是最流行的关系数据库管理系统之一。作为数据库管理员或开发人员&#xff0c;您可能需要更改用户的密码来保证账户安全。本…

QT 信号与槽的简单使用

文章目录 1.通过Singloat and Slots Editor 添加信号与槽2. 通过拖动动态添加3.通过转到槽方式添加&#xff08;自动关联&#xff09;4. 自定义信号与槽&#xff08;connect)4.1 connect方式4.2 自定义信号 1.通过Singloat and Slots Editor 添加信号与槽 点添加&#xff0c;然…

突破像素限制,尽显照片细腻之美——Topaz Gigapixel AI for Mac/Win

在这个数字化的时代&#xff0c;我们都热爱用照片记录生活中的美好瞬间。然而&#xff0c;有时候我们会发现&#xff0c;由于各种原因&#xff0c;照片的像素可能无法满足我们的需求。这时候&#xff0c;Topaz Gigapixel AI for Mac/Win 这款强大的照片放大工具应运而生。 Top…

open c UF_MODL_create_simple_hole 识别放置平面 UF_MODL_ask_face_data

在BLOCK上创建一个简单孔 UF_FEATURE_SIGN sign UF_NULLSIGN;double block_orig[3] { -25.0,-25.0,0.0 };char* block_len[3] { "50","50","30" };tag_t blk_obj;UF_MODL_create_block1(sign, block_orig, block_len, &blk_obj);tag_t bo…

PSPICE、Multisim和Saber哪个更适合电路仿真?没想到是它

PSPICE、Multisim和Saber这三个软件都是非常流行的模拟电路仿真工具&#xff0c;它们各自有各自的优缺点&#xff0c;我简单讲一下&#xff1a; PSPICE&#xff1a; 优点&#xff1a; 精度高&#xff1a;PSPICE是专业的电路仿真软件&#xff0c;可以进行高精度的模拟电路仿真…

兮兮牧场养殖小游戏积分兑换互动商城引流模式

刚注册的新会员必须要进入牧场才能激活所有功能 一、获得动物的途径的方式 第一种是邀请好友注册获得&#xff0c;第二种是看广告获得 邀诘好友注册获得动物明细: 1、从兮兮牧场的邀请好友的链接去邀请好友才能获得&#xff0c;其他邀请码无效 2、注册赠送小鸡一只; 3、邀…

基于Springboot + vue + MySQL +Tomcat 社区医院管理服务系统 (含源码)

目录 &#x1f4da; 前言 &#x1f4d1;摘要 &#x1f4d1;系统架构 &#x1f4da; 数据库设计 &#x1f4ac; 用户注册实体属性图 &#x1f4ac; 医生实体属性图 &#x1f4da; 系统功能的具体实现 &#x1f4ac; 前台模块 用户注册 医生信息 &#x1f4ac; 后台功能模…

Docker部署SpringBoot+Vue前后端分离项目

文章目录 1. 安装Docker1. 1 卸载旧版Docker1.2 配置yum仓库1.3 安装Docker1.4 添加自启动配置1.5 配置阿里云镜像加速1.6 测试 2. 安装Nginx2.1 拉取镜像2.2 安装Nginx2.3 测试 3. 安装MySQL3.1 拉取镜像3.2 安装MySQL3.3 连接MySQL 4. 部署SpringBoot项目4.1 Maven打包4.2 编…

centos7安装 on-my-zsh

如下&#x1f447; yum install -y zsh chsh -s /bin/zsh yum install -y git sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 重启即可生效啦~

Windows搭建LightPicture图片管理网站结合内网穿透实现公网访问本地图片

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

【LAMMPS学习】八、基础知识(2.2)类型标签

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

车载数据终端丨车载平板丨车载平板电脑为何在叉车上使用

车载终端平板是一种专门设计用于车辆和运输行业的电子设备。它们通常被安装在叉车、卡车、拖车和其他机动车辆上&#xff0c;以便驾驶员可以更方便地管理和控制运输任务。 为了了解车载终端平板为何能够在叉车上使用&#xff0c;我们需要考虑以下几个方面&#xff1a; 物理结构…

HarmonyOS4 页面路由

Index.ets: import router from ohos.routerclass RouterInfo {// 页面路径url: string// 页面标题title: stringconstructor(url: string, title: string) {this.url urlthis.title title} }Entry // 入口組件 Component struct Index {State message: string 页面列表// …