嵌入式Linux之MX6ULL裸机开发学习笔记(汇编LED灯点亮)

汇编LED驱动实验

1.驱动编写

首先创建在vscode上创建工作区,创建led.s汇编文件,然后编写以下程序

.global _start @全局标号

_start:

/* 使能所有外设时钟 */

ldr r0,=0x020c4068 @CCGR0

ldr r1,=0xffffffff @要向CCGR0写入的数据

str r1,[r0] @将0xffffffff写入CCGR0中

ldr r0,=0x020c406c @CCGR1

str r1,[r0]

ldr r0,=0x020c4070 @CCGR2

str r1,[r0]

ldr r0,=0x020c4074 @CCGR3

str r1,[r0]

ldr r0,=0x020c4078 @CCGR4

str r1,[r0]

ldr r0,=0x020c407c @CCGR5

str r1,[r0]

ldr r0,=0x020c4080 @CCGR6

str r1,[r0]

/* 配置GPIO1_IO03 PIN的复用为GPIO,也就是设置

* IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03 = 5

* IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03寄存器地址为 0x020e0068

*/

ldr r0,=0x020e0068 @IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03

ldr r1,=0x5 @要写入的数据

str r1,[r0] @将0x5写入IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03中

/* 配置GPIO1_IO03的电气属性,也就是寄存器:

* IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03

* IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03寄存器地址为0x020e02f4

*

* bit0: 0 低速率

* bit5-3: 110 R0/6驱动能力

* bit7-6: 10 100Mhz速度

* bit11: 0 关闭开路输出

* bit12: 1 使能pull/kepper

* bit13: 0 kepper

* bit15-14: 00 100K下拉

* bit16: 0 关闭hys

*/

ldr r0,=0x020e02f4 @IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03

ldr r1,=0x10b0 @要写入的数据

str r1,[r0] @将0x10b0写入IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03中

/* 设置GPIO

* 设置GPIO1_GDIR寄存器,设置GPIO_GPIO03为输出

* GPIO1_GDIR寄存器地址为0x0209c004.设置GPIO1_GDIR寄存器bit3为1

* 也就是设置GPIO1_IO03为输出。

*/

ldr r0,=0x0209c004 @GPIO1_GDIR

ldr r1,=0x8 @要写入的数据

str r1,[r0] @将0x8写入GPIO1_GDIR中

/* 打开LED,也就是设置GPIO1_IO03为0

* GPIO1_DR寄存器地址为0x0209c000

*/

ldr r0,=0x0209c000 @GPIO1_DR

ldr r1,=0 @要写入的数据

str r1,[r0] @将0x8写入GPIO1_DR中

loop:

b loop

0101=5,复用为GPIO

2.编译程序

创建Makefile文件写入

led.bin : led.s

arm-linux-gnueabihf-gcc -g -c led.s -o led.o

arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elf

arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin

arm-linux-gnueabihf-objdump -D led.elf > led.dis

clean:

rm -rf *.o led.bin led.elf led.dis

3.烧写bin文件到SD卡中并运行

插入SD卡,通过命令ls /dev/sd* -l查看有哪些文件

然后在拔掉看看少了哪些文件

我们就能确定哪个是我们的SD卡文件是sdb,每个人的读卡器不同名字也不同,举例:我这里有一个adb1,那么我就能确定是sdb了

然后从正点原子资料里托取imxdownload文件到我们的工作区里,不知道怎么传输的可以看看正点原子教程

然后更改它的权限chmod imxdownload 777 ,使它的权限全开。

然后使用命令 ./imxdownload led.bin /dev/sdb 把bin文件烧写到SD卡内,当出现

I.MX6ULL bin download software

Edit by:zuozhongkai

Date:2019/6/10

Version:V1.1

log:V1.0 initial version,just support 512MB DDR3

V1.1 and support 256MB DDR3

file led.bin size = 160Bytes

Board DDR SIZE: 512MB

Delete Old load.imx

Create New load.imx

Download load.imx to /dev/sdb ......

[sudo] lcp 的密码:

记录了6+1 的读入

记录了6+1 的写出

3232字节(3.2 kB,3.2 KiB)已复制,0.0678926 s,47.6 kB/s 时就是烧录完成了,如果烧录速度达到了多少M的话是失败的。

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

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

相关文章

LeetCode刷题--- 珠宝的最高价值

个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 ​​​​​​http://t.csdnimg.cn/6AbpV 数据结构与算法 ​​​http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述动…

[C#]使用onnxruntime部署yolov8-onnx印章检测

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8是目标检测领域中的一种先进算法,它是YOLO(You Only Look Once)系列算法的最新发展。YOLO算法以其高效和实时的性能而著名,而YOLOv8则进一…

mysql: 2006, ‘MySQL server has gone away‘

一、错误问题 这个问题是在迁移数据库、备份还原或数据导入时报错:2006, ‘MySQL server has gone away‘ 二、出现原因 sql操作的时间过长,或者是传送的数据太大(例如使用insert ... values的语句过长, 这种情况可以通过修改max_allowed_pac…

【论文阅读笔记】Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields

目录 概述摘要引言参数化效率歧义性 mip-NeRF场景和光线参数化从粗到细的在线蒸馏基于区间的模型的正则化实现细节实验限制总结:附录退火膨胀采样背景颜色 paper:https://arxiv.org/abs/2111.12077 code:https://github.com/google-research/…

网络安全法解读之思维导图

一、出台背景 二、法律基础 三、网络安全法架构 1、第一章 总则(1-14条) 2、第二章 网络安全支持与促进(15-20条) 3、 第三章 网络运行安全(21-39条) (1)第一节 一般规定 &#xf…

Android WiFi 连接

Android WiFi 连接 1、设置中WiFi显示2、WiFi 连接流程2.1 获取PrimaryClientModeManager2.2 ClientModeImpl状态机ConnectableState2.3 ISupplicantStaNetworkCallback 回调监听 3、 简要时序图4、原生低层驱动5、关键日志 1、设置中WiFi显示 Android WiFi基础概览 packages/a…

性能分析与调优: Linux 实现 CPU剖析与火焰图

目录 一、实验 1.环境 2.CPU 剖析 3.CPU火焰图 一、实验 1.环境 (1)主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测GUIgrafana192.168.204.19agent 监测 主机 node_exporter192…

【Java】设计模式之两阶段终止

两阶段终止 两阶段终止,即Two Phase Termination。是用来终止线程的套路。 它的思想是,如何在一个线程T1中优雅地终止线程T2?这里的【优雅】指的是给T2一个料理后事的机会。 错误思路: 使用stop方法。stop 方法会真正杀死线程…

使用命令行方式搭建uni-app + Vue3 + Typescript + Pinia + Vite + Tailwind CSS + uv-ui开发脚手架

使用命令行方式搭建uni-app Vue3 Typescript Pinia Vite Tailwind CSS uv-ui开发脚手架 项目代码以上传至码云,项目地址:https://gitee.com/breezefaith/uniapp-vue3-ts-scaffold 文章目录 使用命令行方式搭建uni-app Vue3 Typescript Pinia V…

多线程执行后台任务,提供效率

场景: 大批量复制物料描述到新的物料上,多线程同时执行已提高效率 REPORT zmm316. INCLUDE zmm316_top. INCLUDE zmm316_f01. *----------------------------------------------------------------------- I N I T I A L I Z A T I O N *------------…

向量数据库:usearch的简单使用+实现图片检索应用

usearch的简单使用 usearch是快速开源搜索和聚类引擎,用于C、C、Python、JavaScript、Rust、Java、Objective-C、Swift、C#、GoLang和Wolfram 🔍中的向量和🔜字符串 // https://github.com/unum-cloud/usearch/blob/main/python/README.md …

[C#]使用sdcb.paddleocr部署v4版本ocr识别模型

【官方框架地址】 https://github.com/sdcb/PaddleSharp 【算法介绍】 PaddleOCR,全称为PaddlePaddle OCR,是PaddlePaddle深度学习平台下的一款强大的光学字符识别工具。它利用深度学习技术,实现了高精度的文字识别,可以帮助用户…

生态系统服务构建生态安全格局中的实践技术应用

生态安全是指生态系统的健康和完整情况。生态安全的内涵可以归纳为:一,保持生态系统活力和内外部组分、结构的稳定与持续性;二,维持生态系统生态功能的完整性;三,面临外来不利因素时,生态系统具…

window使用cpolar实现内网穿透

文章目录 cpolar下载和安装启动和配置cpolar卸载 cpolar下载和安装 进入spolar官网,完成注册,下载相应的cploar版本解压和运行安装文件 配置安装路径,然后选择next,完成即可 启动和配置 点击首页的快捷图标打开网页&#xf…

分布式系统架构设计之分布式消息队列基础知识

随着微服务、大数据和云计算的普及,分布式系统已经成为现代软件架构的核心。在分布式系统中,各个组件间的通信和数据交换尤其重要,而消息队列正是实现这一目标的关键技术之一。 在分布式架构设计过程中,架构师们需要对消息队列有…

StarRocks 在小红书自助分析场景的应用与实践

作者:小红书 OLAP 研发负责人 王成 近两年 StarRocks 一直是小红书 OLAP 引擎体系里非常重要的部分,过去一年,小红书的 StarRocks 使用规模呈现出翻倍的增长速度,目前整体规模已经达到 30 个集群,CPU 规模已经达到了 3…

Redis——centos7环境安装Redis6.2.14版本,make命令编译时报错:jemalloc/jemalloc.h:没有那个文件或目录

一、报错原因 在redis-6.2.14文件夹下有一个README.md文件,有如下一段话: 在构建 Redis 时,通过设置 MALLOC 环境变量来选择非默认的内存分配器。Redis 默认编译并链接到 libc malloc,但在 Linux 系统上,jemalloc 是…

图像分割-Grabcut法(C#)

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本文的VB版本请访问:图像分割-Grabcut法-CSDN博客 GrabCut是一种基于图像分割的技术,它可以用于将图像中的…

Python | 基于Mediapipe框架的手势识别系统

一、项目要求 1、题目 本题着力于解决会商演示系统中的非接触式人机交互问题,具体而言,其核心问题就是通过计算机视觉技术实现对基于视频流的手势动作进行实时检测和识别。通过摄像头采集并识别控制者连续的手势动作,完成包括点击、平移、缩放…

小白入门基础 - Restful

一:REST与RESTful: REST:表现层状态转移,资源在网络中以某种形式进行状态转移。 RESTful是基于REST理念的一套开发风格,是具体的开发规则。 服务器端只返回数据,以json或者xml的格式。 RESTful开发规范&a…