正点原子阿尔法ARM开发板-IMX6ULL(三)——汇编LED驱动实验-上

文章目录

  • 一、原理分析
    • 1.1 对于IMX6ULL的IO初始化
    • 1.2 IO的复用(MUX)
    • 1.3 电气属性寄存器(PAD)
      • 1.3.1 SRE(bit0)
      • 1.3.2 DSE(bit5:3)
      • 1.3.3 SPEED(bit7:6)
      • 1.3.4 ODE(bit11)
      • 1.3.5 PKE(bit12)
      • 1.3.6 PUE(bit13)
      • 1.3.7 PUS(bit15:14)
      • 1.3.8 HYS(bit16)
    • 1.4 配置GPIO
  • 二、汇编补充
  • 三、驱动编写
    • 3.1 使能CCGR
    • 3.2 选择复用方式

一、原理分析

初始化一些SOC外设,
SOC外设通常包括但不限于以下几种:存储器管理单元(MMU)、通用输入/输出(GPIO)接口、并行和串行接口(如USB、SPI、I2C等)、定时器和计数器、中断控制器、模拟和数字信号处理模块等。

初始化DDR ,IMX6ULL、一般将SP指针指向DDR、设置好C语言环境

1.1 对于IMX6ULL的IO初始化

使能时钟,CCGR0 ~ CCGR6这7个寄存器控制着IMX6ULL所有外设时钟的使能。为了简单,设置CCGR0 ~ CCGR6这7个寄存器全部为OXFFFFFFFF.相当于使能所有外设时钟。
一个有两位,当都设为11,是即全部使能,当7个都是11时,即全部使能

1.2 IO的复用(MUX)

寄存器IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03
首先根据LED所在端口时GPIO1_3,确定端口号,之后查看参考手册寻找复用
在这里插入图片描述
只有右下角的4位是对于模式进行选择
在这里插入图片描述
每一个值,就是一种模式,设置为0101=5,就复用为GPIO了

1.3 电气属性寄存器(PAD)

寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03是设置GPIO3的电气属性,包括压摆率、速度、驱动能力、开漏、上下拉等
在这里插入图片描述

1.3.1 SRE(bit0)

SRE是设置压摆率,,设置压摆率,当此位为0的时候是低压摆率,当为1的时候是高压摆率。这里的压摆率就是 IO电平跳变所需要的时间,比如从0到1需要多少时间,时间越小波形就越陡,说明压摆率越高;反之,时间越多波形就越缓,压摆率就越低。如果你的产品要过 EMC的话那就可以使用小的压摆率,因为波形缓和,如果你当前所使用的 IO做高速通信的话就可以使用高压摆率

由于不要过EMC检测,所以设置为0

1.3.2 DSE(bit5:3)

用来设置 IO的驱动能力,
在这里插入图片描述
位数字越大,电阻越小,驱动能力越强

1.3.3 SPEED(bit7:6)

当IO用作输出,SPEED就是设置IO速度
在这里插入图片描述

1.3.4 ODE(bit11)

当 IO作为输出的时候,此位用来禁止或者使能开路输出,此位为0的时候禁止开路输出, 当此位为1的时候就使能开路输出功能。

1.3.5 PKE(bit12)

此位用来使能或者禁止上下拉 /状态保持器功能,为0时禁止上下拉 /状态保持器,为 1时使能上下拉和状态保持器。

1.3.6 PUE(bit13)

作为输入的时候,这个位用来设置 IO使用上下拉还是状态保持器。当为 0的时候使用状态保持器,当为 1的时候使用上下拉。状态保持器在

1.3.7 PUS(bit15:14)

设置上拉和下拉
在这里插入图片描述

1.3.8 HYS(bit16)

迟滞比较器(没看懂)

在整理这些电气属性时,不需要全部搞懂

1.4 配置GPIO

配置输入输出

在这里插入图片描述
设置GP1O_DR寄存器bit3为1.也就是设置为输出模式。设置GPIO_DR寄存器的bit3.为1表示输出高电平,为0表示输出低电平。·

二、汇编补充

对于MOV,MOVS以及LDR和STR是最常用的

LDR是,可以将一个地址进行保存(可以用立即数表达地址,然后这段地址的别名就是寄存器Rx中,而LDR中,[Rx],表示取值,即Rx表示地址,[Rx]表示这个地址上所存储的值)
在这里插入图片描述
STR指令就是写入,
STR R1, [R0] @表示R1的值写入R0所在地址中,也即覆盖了[R0]原本的值
在这里插入图片描述

在这里插入图片描述
这段汇编就是 a=b
解释一下:
第一行:将B的地址立即数,存入R0
第二行:读取B地址的数放入R1
第三行:将A的地址立即数,存入R0
第四行:将R1(此时不用中括号)中的值写入R0(R0需要中括号)

三、驱动编写

3.1 使能CCGR

首先打开linux操作系统,创建文件夹、工作区。
之后根据的原理分析的步骤写汇编
第一步就是把,CCGR的寄存器全部使能,需要找到地址,进入参考手册18章,找到
在这里插入图片描述

    ldr r0, =0x020C4068 @写入CCGR0的地址ldr r1, =0xFFFFFFFF @要写入的数据(全部使能)str r1, [r0]        @写入CCGR0ldr r0, =0x020C406C @写入CCGR1的地址(由于CCGR都是紧挨着的,每个间隔4位)str r1, [r0]        @写入CCGR1ldr r0, =0x020C4070 @写入CCGR2的地址str r1, [r0]        @写入CCGR2ldr r0, =0x020C4074 @写入CCGR3的地址str r1, [r0]        @写入CCGR3ldr r0, =0x020C4078 @写入CCGR4的地址str r1, [r0]        @写入CCGR4ldr r0, =0x020C407C @写入CCGR5的地址str r1, [r0]        @写入CCGR5ldr r0, =0x020C4080 @写入CCGR6的地址str r1, [r0]        @写入CCGR6

3.2 选择复用方式

下一步就是配置复用方式,由于LED是GPIO3控制,所以找到
在这里插入图片描述

    /*配置GPIO1_3,使复用方式变为GPIO写入0101,即5寄存器是IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03*/ldr r0, =0x020E0068 @写入IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03的地址ldr r1, =0x5        @要写入的数据str r1, [r0]        @写入

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

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

相关文章

(java+Seleniums3)自动化测试实战

一.web自动化测试基础 密码的加密处理--是在前端JavaScript 二.selenium IDE录制 打开火狐浏览器: 点击 寻找更多附加组件 输入: 选择: 跳转:点击 安装完成,打开之后是这个页面: 录制一个新的测试用例在一个…

PHPJWT的使用

今天得空整理整理JWT的代码 首先,我们得知道什么是JWT? JWT(JSON Web Token)是一种开放标准(RFC7519),用于在网络应用环境中安全地传输声明信息。它是一种紧凑的、URL安全的令牌格式&#xff0…

U盘变成RAW格式怎么办?如何恢复!

U盘类型显示为RAW,导致无法正常读取或写入数据,怎么办?这种情况一般都表示U盘的文件系统无法被操作系统识别,可能原因包括:不正确的插拔操作、病毒攻击、电源故障等。当我们遇到U盘打不开变成RAW的时候不要慌&#xff…

【C++\Qt项目实战】俄罗斯方块

俄罗斯方块 1 项目简介2 效果展示3 代码实现3.1 框架3.2 UI界面3.3 核心代码3.3.1 TetrisGameWindow.h3.3.2 TetrisGameWindow.cpp3.3.3 Subject.h3.3.4 Subject.cpp3.3.5 TetrisGame.h3.3.6 TetrisGame.cpp 4 运行效果 1 项目简介 本项目灵感来自经典的俄罗斯方块游戏&#x…

视频智能分析平台LntonAIServer安防监控平台花屏检测、马赛克检测功能介绍

视频监控系统在现代社会中扮演着至关重要的角色,无论是用于安全监控、交通管理还是其他用途,视频的质量直接关系到系统的可靠性和有效性。LntonAIServer通过新增的视频质量诊断功能,包括花屏检测和马赛克检测,进一步增强了视频监控…

Windows系统下安装JMeter

目录 一、官网下载JMeter 二、运行 JMeter 一、官网下载JMeter JMeter 官网安装地址 Apache JMeter - Apache JMeter™https://jmeter.apache.org/ 下载Windows版本 下载完成后 解压 二、运行 JMeter 打开bin目录 下面两个文件其中一个均可运行双击jmeter.bat 或者使用…

算法入门-深度优先搜索3

第六部分:深度优先搜索 112.路径总和(简单) 题目:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果…

[项目][WebServer][项目介绍及知识铺垫][上]详细讲解

目录 1.何为WWW?2.HTTP分层1.整体2.细节3.DNS?4.协议之间是如何协同运作的? 3.Http相关概念1.特点2.URI && URL && URN3.HTTP URL格式 1.何为WWW? WWW是环球信息网的缩写,常简称为Web分为Web客户端和Web服务器程序,WWW可…

简单计算机网络概念

1.浏览器过程 输入url,解析url 1.协议http、https的区别;HTTPS就是在HTTP与TCP之间增加了SSL/TSL安全传输层 2.格式:协议//主机:端口/路径; 3.HTTP版本:1.0和1.1 4.HTTP/1.1:1. 持久连接:为了…

数据结构————单链表

引言 在计算机科学的领域里,数据结构的探索与应用是程序设计的灵魂。单链表,作为一种基础而灵活的数据结构,不仅在理论上有着丰富的内涵,其在实际编程中的应用亦是广泛而深远。本文旨在深入浅出地介绍单链表的实现过程&#xff0c…

探探我对测试开发的看法?

测试开发岗位主要负责确保软件的可用性和稳定性。 ● 可用性不仅包括功能的正常使用,还涵盖了软件在不同环境下的兼容性,如各种网络环境、不同 CPU 核心环境以及多样化的移动端设备等。 ● 稳定性方面我的理解是,测试人员不仅要从用户角度评判…

OpenAI gym: How to get complete list of ATARI environments

题意:OpenAI Gym:如何获取完整的 ATARI 环境列表 问题背景: I have installed OpenAI gym and the ATARI environments. I know that I can find all the ATARI games in the documentation but is there a way to do this in Python, witho…

UE5 半透明阴影 快速解决方案

Step 1: 打开该选项 Step 2: 将半透明材质给到模型后,设置光照的Shadow Resolution Scale,越大,阴影的效果越好 Step 3: 用这种方式去做,阴影会因为半透明的程度,降低阴影的浓度 要…

使用Azure+C#+visual studio开发图像目标检测系统

在这篇文章里面,我们讲解使用AzureC#visual studio在Azure上做图像的目标检测系统。 笔者是头一次接触C#。之前以Python Java和Scala为主。感觉C#.Net是一种挺好用的开发系统。C#和Java非常像。会一个学另一个很快。 首先,目标检测是个什么东西&#x…

【高校主办,EI稳定检索】2024年人机交互与虚拟现实国际会议(HCIVR 2024)

会议简介 2024年人机交互与虚拟现实国际会议(HCIVR 2024)定于2024年11月15-17日在中国杭州召开,会议由浙江工业大学主办。人机交互,虚拟现实技术的发展趋势主要体现在系统将越来越实际化,也越来越贴近人类的感知和需求…

python-新冠病毒

题目描述 假设我们掌握了特定时间段内特定城市的新冠病毒感染病例的信息。在排名 i 的当天有 i 个案例,即: 第一天有一例感染第二天有两例感染第三天有三例感染以此类推...... 请计算 n 天内的感染总数和每天平均感染数。 输入 整数 n 表示天数&…

将星 x17 安装ubuntu 20.04 双系统

准备工作,包含关闭快速启动,关闭Secret Boot 1.进入控制面板选择小图标,找到电源选项 2.点击更改当前不可用的设置,关闭快速启动 3.开机启动时快速按F2,进入BIOS 4.选择Setup Utiltity,选择Security&#…

LeetCode 热题 100 回顾5

干货分享,感谢您的阅读!原文见:LeetCode 热题 100 回顾_力code热题100-CSDN博客 一、哈希部分 1.两数之和 (简单) 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标…

ArcGIS之建模处理栅格数据以表格显示分区统计(以夜间灯光数据为例)

当需要计算一个shp数据中多个面中的栅格数据值是,可以通过模型构建器进行批量处理,也就是统计多个面中的栅格数据值。但在处理过程中可能会遇见不同的错误,本文会介绍ERROR000883的解决办法。 数据准备:一个shp数据(例…

Idea 创建 Maven项目的时候卡死

文章目录 一、Archetype 和 Catalog1.1 Archetype(原型)1.2 Catalog(目录) 二、可能遇到的问题2.1 问题描述2.2 原因分析2.3 解决方案 参考资料 一、Archetype 和 Catalog 1.1 Archetype(原型) Archetype…