QCA9531修改寄存器值控制GPIO
由高通9531芯片规格书可知,芯片对应的GPIO有18个GPIO0-17,下图是规格书定义。下面以SKYLAB的SKW99模块为例进行说明。
SKYLAB的SKW99模块使用源码为QSDK,GPIO0-3默认为JTAG功能,GPIO9和10为uart串口,剩下的GPIO11-16为默认为灯的功能,GPIO17为WPS按键功能。
GPIO11-17对应功能源码地址为:
qsdk/target/linux/ar71xx/files/arch/mips/ath79/mach-ap147.c
下面以在固件中控制GPIO0进行讲述说明,固件中需要有io工具:
1、将GPIO1转为GPIO功能:
下面是芯片规格书中关于GPIO0-3功能的定义:对应寄存器的地址为0x1804006C
读取寄存器0x1804006C寄存器的值:
root@OpenWrt:~# io -4 0x1804006C
1804006c: 00000020
root@OpenWrt:~#
高通规格书,没有详细介绍bit1值对应的功能,根据实践:
默认0,对应jtag(默认),1对应的是GPIO功能。
将bit1设置为1,则对应寄存器的值应设置为0x00000022
root@OpenWrt:/# io -4 0x1804006c 0x00000022 //写寄存器值
root@OpenWrt:/#
root@OpenWrt:/# io -4 0x1804006c //读寄存器值
1804006c: 00000022
root@OpenWrt:/#
2、对GPIO1进行操作
步骤如下:
(1)先注册GPIO1
root@OpenWrt:/# echo 1 > /sys/class/gpio/export
root@OpenWrt:/#
root@OpenWrt:/# echo out > /sys/class/gpio/gpio1/direction
root@OpenWrt:/#
(2)查看系统GPIO的状态
root@OpenWrt:/# cat /sys/kernel/debug/gpio
GPIOs 0-17, ath79:gpio-0 (sysfs ) out logpio-1 (sysfs ) out logpio-13 (sysfs ) out higpio-17 (WPS button ) in hi
root@OpenWrt:/#
(3)对GPIO1进行拉高操作
(4)对GPIO1进行拉低操作
同理Link1灯GPIO16的操作控制如下:寄存器为0x1804003C,bit0-bit7对应GPIO16.
QCA9531修改寄存器值控制GPIO相关推荐
- 4412 GPIO读 和 ioremap控制GPIO寄存器
一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...
- arm64的ioremap_4412 GPIO读 和 ioremap控制GPIO寄存器
一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...
- 配置STM32寄存器控制GPIO点亮LED
STM32点亮LED 寄存器方式 IO简介 1.每个IO可以自由编程,但是IO口寄存器必须按照32位字被访问. 2.每个IO端口都有7个寄存器来控制. CRL [0-7]端口配置寄存器 32位 CR ...
- GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法
工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...
- 【STM32】使用BRR与BSRR寄存器控制GPIO输出
使用BRR与BSRR寄存器控制GPIO输出 对比使用ODR寄存器与BRR寄存器+BSRR寄存器 - BRR与BSRR: Init: RCC->APB2ENR |= 1 << 5;GP ...
- 谈谈修改寄存器默认值的几种方法和实现
一.DFF的类型介绍 寄存器默认值,也叫复位值,是当reset或者set有效时寄存器输出的值.对于一个DFF来说,如下图,当reset为0时,Q输出0:当set为0时,Q输出为1(外部使用时保证res ...
- Unity3D通过代码修改RGB值来控制UI与物体的Color颜色
在实际应用过程中,经常有需要将某一物体颜色修改成特定颜色的情况,此时Color中自带的颜色就不够用了,此时我们就需要通过用代码修改RGB值来控制颜色. 常见的错误写法 下面以修改TextMeshPro ...
- 键盘动态库开发(修改键值映射和键盘灯控制)
键盘动态库开发(修改键值映射和键盘灯控制) 开发需求 键盘DLL功能 1. 键盘OPEN 2. 键盘CLOSE 3. 键盘灯控制 4. 键值抓取 开发需求 需求:开发一款9键键盘DLL和演示程序,要求 ...
- IDA保存修改的寄存器值
1.修改寄存器 --->Hex View--->右键选择:Edit--->修改后:Apply Changed 2.保存 --->Edit--->Patch Program ...
- 【sdx62】通过代码直接修改控制gpio实例
控制gpio 方式一:通过dtsi 方式二:通过通用gpio子系统 内核查看gpio的状态/sys/kernel/debug/gpio gpiochip3: GPIOs 884-895, parent ...
最新文章
- vue:虚拟dom的实现
- 集群的定义以及类别定义
- 分布式版本控制系统Git的安装与使用(作业2)
- 方差偏差权衡_偏差偏差权衡:快速介绍
- java 创建日程到期提醒_在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?...
- eclipse怎么显示代码行数
- 二叉树中进行 BFS 和图中进行 BFS 最大的区别
- Android内部类监听和多对象监听方法
- Web服务器程序解释请求消息并作出响应
- Chrome插件英雄榜(第二期)
- 光纤跳线接口_你知道光纤接头、尾纤、终端盒的作用与接法嘛?读懂这篇足够...
- 【LaTeX】pdfTex error: pdflatex.exe (file simhei.ttf): cannot open TrueType font file for reading解决方案
- 利用阿里云服务器搭建私有云电脑(Windows 11),不受局域网限制,安卓iOS也可随时远程访问
- 3dmax晶格指令制作石墨烯模型的图文教程
- 小孩子要学习时间管理吗
- Vue3 + Vite 使用 Less 配置
- Unity 3D 中基础的三种传值技术(脚本组件,类静态字段,SendMessage)
- 使用Xavier读取RealSense D435i的踩坑经历
- 算法训练营 day20 二叉树 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉树
- 适合程序员的 5 款 Linux 发行版
热门文章
- win7与internet时间同步出错_windows7 internet系统时间同步出错超时怎么办?国内NTP时间同步服务器地址...
- 冗余网络构建方案对比:VRRP协议、多网卡绑定及WN202冗余链路网卡
- 蜂鸣器发声程序c语言,基于51单片机蜂鸣器发声的C语言程序
- 常见消息中间件大 PK
- SAP JCo BAPI的使用(刘欣) 2009-2-6
- 如何解决网页显示不全和打不开的问题
- 关于ExtJS错误“例外被抛出且未被接住”
- 软件项目管理(SPM)课程总结及感想
- 植物冠层部分参数的定义及含义解释
- 企业全链路数字化营销一站式解决方案