Linux操作系统ARM指令集与汇编语言程序设计
一、实验目的
1.了解并掌握ARM汇编指令集
2.应用ARM指令集编写一个程序操控开发板上的LED灯
二、实验要求
应用ARM汇编指令集编写程序,实现正常状态下开发板上的LED灯不亮,按下一个按键之后开发板上的LED灯进入流水灯模式。
三、实验原理
四个LED灯的电路如下图所示:
![](https://img-blog.csdnimg.cn/img_convert/1555f65db6fa4cf2a53521c10d7911fd.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/d44b451baeb940949249ef894f20af8f.webp?x-oss-process=image/format,png)
四个按键电路图如下所示:
![](https://img-blog.csdnimg.cn/img_convert/8d05bc414c294a669c08c42254da37ac.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/e6cb865ee7e34db8a202d07e7be25841.webp?x-oss-process=image/format,png)
![](https://img-blog.csdnimg.cn/img_convert/9c30b20d7aaf4e6db5ba78aac0ffeb2c.png)
将LED灯的控制地址放入一个寄存器中,并将其设置为输出模式:
![](https://img-blog.csdnimg.cn/img_convert/58b1fd9adf3d4299b008a9d717954076.jpeg)
![](https://img-blog.csdnimg.cn/img_convert/27bc94269ed741bf9628da0efdcf8c32.png)
把按键控制地址的内容全置零,为输入模式(复位值为0,此步骤可省略)。
四、实验结果
将生成的二进制代码用烧写脚本烧写到SD卡中,插入开发板的SD卡槽,从SD卡启动,按下按键即开启LED流水灯模式。
资料直通车:最新Linux内核源码资料文档+视频资料
内核学习地址:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈
五、结果分析
通过掩码取出按键数据地址中的值的状态来判断按键是否按下,若按下则跳转到LED流水灯的程序当中。
流水灯程序即顺序的程序结构,依次点亮LED灯,延时并熄灭,达到流水效果。
六、附录:实验源代码
.text
.globl _start
_start:// Set GPM4CON[0:3]as outputldr r1, =0x110002E0 @GPM4CON address ldr r0, =0x00001111str r0, [r1]//Set GPX3CON[2:5] as inputldr r1, =0x11000C60 @GPX3CON addressmov r0, #0str r0,[r1] @default is input.So,this section canbe omitted
Key_led://Read the state of keysldr r1, =0x11000C64 @GPX3DAT address->keysldr r3, =0xFFFFFFC3 @Key maskldr r0, [r1] @ Read the state of keysorr r0, r0,r3 @ get the bits of keysmov r0,r0,ROR #2 @ align to the led bitscmp r0, #0xFFFFFFFEbeq led_blinkbl Key_led
led_blink:ldr r1, =0x110002E4mov r0, #0xEstr r0, [r1]bl delayldr r1, =0x110002E4mov r0, #0xDstr r0, [r1]bl delayldr r1, =0x110002E4mov r0, #0xBstr r0, [r1]bl delayldr r1, =0x110002E4mov r0, #0x7str r0, [r1]bl delaybl Key_led
delay:mov r0, #0x200000
delay_loop:cmp r0, #0sub r0, r0, #1bne delay_loopmov pc, lr
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/27bc94269ed741bf9628da0efdcf8c32.png)
Linux操作系统ARM指令集与汇编语言程序设计
一、实验目的1.了解并掌握ARM汇编指令集2.应用ARM指令集编写一个程序操控开发板上的LED灯二、实验要求应用ARM汇编指令集编写程序,实现正常状态下开发板上的LED灯不亮,按下一个按键之后开发板上的LED灯进入流水灯模式。三、实验原理四个LED灯的电路如下图…...
![](https://img-blog.csdnimg.cn/img_convert/0903649b9c6614de9ecdbcd6d9164036.png)
计网之HTTP协议和Fiddler的使用
文章目录一. HTTP概述和fidder的使用1. 什么是HTTP2. 抓包工具fidder的使用2.1 注意事项2.2 fidder的使用二. HTTP协议格式1. HTTP请求格式1.1 基本格式1.2 认识URL1.3 方法2. 请求报头关键字段3. HTTP响应格式3.1 基本格式3.2 状态码一. HTTP概述和fidder的使用 1. 什么是HTT…...
![](https://img-blog.csdnimg.cn/a67aa28c34254d6a8bbb1319b228b1e3.png)
sql性能优化:MS-SQL(SQL Server)跟踪日志信息结果列字段说明,MSSQL的列字段说明(column)
sql性能优化:MS-SQL(SQL Server)跟踪日志信息结果列字段说明,MSSQL的列字段说明(column) 参考: SQL:BatchCompleted 事件类 | Microsoft Learn SQL 跟踪 | Microsoft Learn sp_trace_setevent (…...
![](https://www.ngui.cc/images/no-images.jpg)
DNS主从复制
#前提准备:关闭SElinux 关闭防火墙 时间同步 #环境说明:Centos7 #ip地址:dns-master:10.0.0.100 dns-slave:10.0.0.103 web:10.0.0.101 主DNS服务配置 1.安装软件包: yum install bind -…...
![](https://www.ngui.cc/images/no-images.jpg)
常见的js加密/js解密方法
常见的js加密/js解密方法 当今互联网世界中,数据安全是至关重要的。为了保护用户的隐私和保密信息,开发人员必须采取适当的安全措施。在前端开发中,加密和解密技术是一种常见的数据安全措施,其中 JavaScript 是最常用的语言之一。…...
![](https://www.ngui.cc/images/no-images.jpg)
6 python函数
函数 在实现某个功能对应的代码的时候,如果将实现功能对应的函数放到函数中,那么下一次再需要这个功能的时候,就可以不用再写这个功能对应的代码,直接调用这个功能对应的函数。 1.什么是函数 函数就是实现某一特点功能的代码的封装…...
![](https://img-blog.csdnimg.cn/c04bb29a3a8e4685a69ad7b0d5911325.png)
7.避免不必要的渲染
目录 1 组件更新机制 2 虚拟DOM配合Diff算法 3 减轻state 4 shouldComponentUpdate() 4.1 基本使用 4.2 使用参数 5 纯组件 5.1 基本使用 5.2 纯组件的比较方法 shallow compere 1 组件更新机制 当父组件重新渲染时,父组件的所有子组件也会重新…...
![](https://img-blog.csdnimg.cn/7f8395b2777f446ab6159e479a147b49.jpeg)
国产化大趋势下学习linux的必要性
由于国际上的一些国家的制裁和威胁。最近几年国产化大趋势慢慢的兴起,我们国产化硬件的需求越来越大。对国产操作系统的需求也越来越多,那么我们一直用的Windows系统为什么不用了呢?众所周知的原因,不管是最新的Windows11还是正值…...
![](https://www.ngui.cc/images/no-images.jpg)
浅谈虚树
问题引入 你是否遇到过下面这种问题: SDOI2011 消耗战 在一场战争中,战场由 nnn 个岛屿和 n−1n-1n−1 个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已…...
![](https://www.ngui.cc/images/no-images.jpg)
裸机条件下写一个基于时间片轮转的多任务并发程序
目录前言A. 使用RTOSB.裸机多任务并发前言 在学习各种MCU的时候,都是用在main函数里写一个while(1){/* 执行代码 */},这种方式只能一个函数运行完以后再运行另一个函数。 假设需求控制多个模块,如显示屏幕信息的同时控制电机,还要…...
![](https://www.ngui.cc/images/no-images.jpg)
RK3588 系统定制开关机动画
平台:ITX-3588J, ROC-RK3588S-PC 系统:Android12.0 作者:jpchen & zzz 一. 功能描述 定制自己的开机动画和关机动画 二. 功能实现 1.开启功能 修改device/rockchip/common/BoardConfig.mk文件 BOOT_SHUTDOWN_ANIMATION_RINGINGtrue2.…...
![](https://www.ngui.cc/images/no-images.jpg)
水文-编程命令快查手册
前言 脑子里面记不住一些命令,每次遇到都得查下。我经常在三个实体电脑,windows/uos/ubuntu不同系统上编程。 所以web版本的笔记查看起来方便点。这里报错下。 二级标题 cmake windows在cmake --build的时候,使用–config,指定…...
![](https://img-blog.csdnimg.cn/b6a0ec8ee9b949e3b94be9b8cfe7bd60.png)
如何优雅编写测试用例
当你学会了如何设计测试用例之后,接下来便是开始用例的编写。 在设计阶段,更准确的说应该是识别测试点的过程,而编写阶段则是将测试点细化成一条条测试用例的过程,有了比较全的用例场景后,如何让别人更舒服、更方便、…...
![](https://img-blog.csdnimg.cn/a328d24baf92460e87dd84a46bd9ccfb.png#pic_center)
[入门必看]数据结构2.3:线性表的链式表示
[入门必看]数据结构2.3:线性表的链式表示第二章 线性表2.3 线性表的链式表示知识总览2.3.1 单链表的定义2.3.2_1 单链表的插入删除2.3.2_2 单链表的查找2.3.2_3 单链表的建立2.3.3 双链表2.3.4 循环链表2.3.5 静态链表2.3.6 顺序表和链表的比较2.3.1 单链表的定义单…...
![](https://img-blog.csdnimg.cn/09f3d8a5ca0f4fbb9a5a2445b46dbd65.png)
Golang流媒体实战之二:回源
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 今天的实战是流传输过程中的常见功能:回源如下图,lal(源站)和lal(拉流节点)代表两台电脑,上面都部署了lalVLC在…...
![](https://img-blog.csdnimg.cn/a645bf48fed044e48059174d3fe3f219.png)
webgl——给场景添加光
文章目录前言光照理论介绍光照效果光源类型反射光颜色向场景中添加光向场景中添加环境光和点光源逐片元光照——更加逼真总结前言 在之前的学习中已经将三维物体添加到了场景中,但是并没有在场景中使用光,照可以使模型更具有立体感,本文主要…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue实战【Vue项目开发时常见的几个错误】
目录🌟前言🌟安装超时(install timeout)🌟can’t not find ‘xxModule’ - 找不到某些依赖或者模块🌟data functions should return an object🌟给组件内的原生控件添加事件,不生效了🌟我在函数内用了this.…...
![](https://img-blog.csdnimg.cn/f43a3f73a24b457d91f694f852d8781b.gif)
【多线程】常见的锁策略
✨个人主页:bit me👇 ✨当前专栏:Java EE初阶👇 ✨每日一语:老当益壮,宁移白首之心;穷且益坚,不坠青云之志。 目 录🏳️一. 乐观锁 vs 悲观锁🏴二. 普通的互斥…...
![](https://img-blog.csdnimg.cn/fc0d8b34b2f54271b2396ab1a521fae5.png)
如何让虚拟机里的Ubuntu通过连接手机USB数据线上网
目录 一 前言 二 Windows联网方法 三 Ubuntu联网方法 一 前言 最近遇到了这样一个问题,有一台台式机,地插网口无法访问外网,周边也没有无线路由器,要访问外网,该如何做?进一步的,这台台式机…...
![](https://www.ngui.cc/images/no-images.jpg)
windows渗透(sam、system文件导出)
通过本地PC中渗透测试平台Kali对服务器场景Windows进行系统服务及版本扫描渗透测试,并将该操作显示结果中Telnet服务对应的端口号作为FLAG提交;通过本地PC中渗透测试平台Kali对服务器场景Windows进行系统服...
![](https://img-blog.csdnimg.cn/6aec1a0409e54545ae909048e8a72469.png)
b01lers(php.galf)
目录 前文 正文 前文 <?phpclass A{public $codeNULL;public $argsNULL;public function __construct($code,$argsNULL){$this->code$code;$this->args$args;print_r("2333") ;} public function __invoke($code,$args){echo $code;print_r("执行inv…...
![](https://img-blog.csdnimg.cn/img_convert/f64f28c35a5e1408cf25b89e84f767a7.png)
记一次若依后台管理系统渗透
前言 最近客户开始hw前的风险排查,让我们帮他做个渗透测试,只给一个单位名称。通过前期的信息收集,发现了这个站点: 没有验证码,再加上这个图标,吸引了我注意: 从弱口令开始 若依默认口令为ad…...
![](https://img-blog.csdnimg.cn/cde7ab2b573147559ea7a15c6c00a42b.png)
Mybatis(四):自定义映射resultMap
自定义映射resultMap前言一、处理字段和属性的映射关系问题:方案一:使用别名方案二:在mybatis-config.xml中设置mapUnderscoreToCamelCase方案三:在映射文件中设置redultMap二、多对一映射处理问题:方案一:…...
![](https://img-blog.csdnimg.cn/2f819457dc7446ee9d4e61afbfa86ca2.png#pic_center)
机器学习---降维算法
知其然知其所以然【写在前面】主成分分析(PCA)原理部分代码部分可视化部分线性判别分析(LDA)原理部分代码部分可视化部分独立成分分析(ICA)原理部分代码部分可视化部分t-SNE降维算法原理部分代码部分可视化…...
![](https://img-blog.csdnimg.cn/a49a4ca62ded4a8ebcc7001c8c654009.png#pic_center)
【Vue2从入门到精通】详解Vue.js的15种常用指令及其使用场景
文章目录前言1. v-text / {{ expression }}2.v-html3.v-bind4.v-on5. v-model6.v-for7.v-if / v-else-if / v-else9.v-show10.v-cloak11.v-pre12.组件注册指令13.动态组件指令14.自定义指令15.过滤器指令前言 Vue.js 是一款流行的前端框架,它通过指令(Di…...
![](https://img-blog.csdnimg.cn/090ced760496471d87c45eb957a1b51e.png)
数据库知识总结
数据库知识点总结个人向。 目录第一章 绪论第二章 关系数据库第三章 关系数据库标准语言SQL第四章 数据库安全性第五章 数据库完整性第六章 关系数据理论第七章 数据库设计第十章 数据库恢复技术第十一章 并发控制第一章 绪论 数据(data): 描述事物的符号记录。 数据库(DataB…...
![](https://www.ngui.cc/images/no-images.jpg)
处理数组循环中删除元素导致索引错位情况
就是很多时候我们对一个数组进行操作的时候,在for遍历的过程中删掉了一个元素,那么在删掉那个元素之后的所有元素的索引值都会减少一位,数组长度缩短一位,删完之后,正在进行的循环会继续循环下去,但是循环的…...
![](https://csdnimg.cn/release/blog_editor_html/release2.2.4/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N2N8)
快速排序,分治法实际应用(含码源与解析)
🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨,经典算法的解析✨都在这儿,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 -…...
![](https://img-blog.csdnimg.cn/910275f075b9410aa0f5e5312e7a21db.png)
linux入门---操作体统的概念
什么是操作系统 操作系统是一个对软硬件资源进行管理的软件。计算机由一堆硬件组成,这些硬件遵循着冯诺依曼体系结构 在这个硬件的基础上还有一个软件叫做操作系统 操作系统的任务是对硬件进行管理,既然是管理的话操作系统得访问到底层的硬件…...
![](https://img-blog.csdnimg.cn/img_convert/229c4fd9e36da01b3d534baaaa99ed8e.png)
《Qt 6 C++开发指南》提供4个版本的示例程序
《Qt 6 C开发指南》包含丰富的示例项目,为了方便读者使用《Qt 6 C开发指南》学习Qt编程,本书提供了4个版本的示例程序。读者可在人民邮电出版社异步社区本书的配套资源(如图1)里下载这4个版本的示例程序。图1 异步社区本书配套资源…...
![](https://img-blog.csdnimg.cn/img_convert/000f6b0334594ce24237dcbb845419dc.png)
网站建设制作公司哪家/女教师遭网课入侵直播录屏曝光i
一、环境准备node v10.13.0whistle二、新建工程1、创建项目新建文件夹,并设置一个项目名称执行npm init,其中name需要符合whistle.your-plugin-name规范增加.gitignore,并添加忽略package-lock.json2、增加TypeScript项目目录下执行npm insta…...
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
aspx网站使用什么做的/百度关键词价格
(原文曾在:http://liyitan.sinaapp.com 都是本人) 最近听大牛讨论遗传算法,讨论其对各种启发搜索问题,都有比较好的鲁棒性,所以心痒手贱,尝试了一下。 实际上仅仅只实现了,搜索一个字…...
![](/images/no-images.jpg)
西安专业网站开发公司/学seo推广
1. Vue.js devtools 用于开发调试Vue.js的一个必备插件。可以在Chrome中的扩展程序中直接安装,也可以本地文件的方式安装。 2. vue-lazyload 图片懒加载 插件地址:https://github.com/hilongjw/vue-lazyload demo:http://hilongjw.github.…...
![](/images/no-images.jpg)
织梦网暂时关闭网站/网络推广营销方式
在我们的项目中,常常会碰到图片与文字混排的问题。解决这类问题的方法有非常多,本文给出的方法不是唯一的。仅仅有依据实际场景才干找到更适合的方法。 本文主要通过xml布局来实现图片与文字的混排(水平排列)。1.利用TextView实现…...
![](/images/no-images.jpg)
哪里有网站建设培训班/seo博客网址
实现左右两个页面,左边页面作为右边的附属页,并且可以拖动缩放左边的页面,左边的页面有纸张折叠的动画效果。 由于android系统的动画只有默认的4种,即:移动、缩放、旋转、拉伸(倾斜),…...
![](/images/no-images.jpg)
建设企业网站源码/头条权重查询
近日,北京盛讯美恒科技发展有限公司应百度云邀请,正式入驻百度云市场。 过去一年,百度云与其合作伙伴共同打造了全区域覆盖及百度云生态闭环,与合作伙伴携手为用户提供了持续、稳定、高质量服务能力,已经有了令人艳羡的…...