由高通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相关推荐

  1. 4412 GPIO读 和 ioremap控制GPIO寄存器

    一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...

  2. arm64的ioremap_4412 GPIO读 和 ioremap控制GPIO寄存器

    一.配置GPIO读 在视频14的基础上做 1.利用拨码开关来实现GPIO输入 所以AP_SLEEP对应GPC0_3,然后在drivers/gpio/gpio-exynos4.c中对应EXYNOS4_G ...

  3. 配置STM32寄存器控制GPIO点亮LED

    STM32点亮LED 寄存器方式 IO简介 1.每个IO可以自由编程,但是IO口寄存器必须按照32位字被访问. 2.每个IO端口都有7个寄存器来控制. CRL [0-7]端口配置寄存器  32位 CR ...

  4. GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法

    工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...

  5. 【STM32】使用BRR与BSRR寄存器控制GPIO输出

    使用BRR与BSRR寄存器控制GPIO输出 对比使用ODR寄存器与BRR寄存器+BSRR寄存器 - BRR与BSRR: Init: RCC->APB2ENR |= 1 << 5;GP ...

  6. 谈谈修改寄存器默认值的几种方法和实现

    一.DFF的类型介绍 寄存器默认值,也叫复位值,是当reset或者set有效时寄存器输出的值.对于一个DFF来说,如下图,当reset为0时,Q输出0:当set为0时,Q输出为1(外部使用时保证res ...

  7. Unity3D通过代码修改RGB值来控制UI与物体的Color颜色

    在实际应用过程中,经常有需要将某一物体颜色修改成特定颜色的情况,此时Color中自带的颜色就不够用了,此时我们就需要通过用代码修改RGB值来控制颜色. 常见的错误写法 下面以修改TextMeshPro ...

  8. 键盘动态库开发(修改键值映射和键盘灯控制)

    键盘动态库开发(修改键值映射和键盘灯控制) 开发需求 键盘DLL功能 1. 键盘OPEN 2. 键盘CLOSE 3. 键盘灯控制 4. 键值抓取 开发需求 需求:开发一款9键键盘DLL和演示程序,要求 ...

  9. IDA保存修改的寄存器值

    1.修改寄存器 --->Hex View--->右键选择:Edit--->修改后:Apply Changed 2.保存 --->Edit--->Patch Program ...

  10. 【sdx62】通过代码直接修改控制gpio实例

    控制gpio 方式一:通过dtsi 方式二:通过通用gpio子系统 内核查看gpio的状态/sys/kernel/debug/gpio gpiochip3: GPIOs 884-895, parent ...

最新文章

  1. vue:虚拟dom的实现
  2. 集群的定义以及类别定义
  3. 分布式版本控制系统Git的安装与使用(作业2)
  4. 方差偏差权衡_偏差偏差权衡:快速介绍
  5. java 创建日程到期提醒_在便签提醒类APP排行中哪个软件可以定时提醒每日日程待办?...
  6. eclipse怎么显示代码行数
  7. 二叉树中进行 BFS 和图中进行 BFS 最大的区别
  8. Android内部类监听和多对象监听方法
  9. Web服务器程序解释请求消息并作出响应
  10. Chrome插件英雄榜(第二期)
  11. 光纤跳线接口_你知道光纤接头、尾纤、终端盒的作用与接法嘛?读懂这篇足够...
  12. 【LaTeX】pdfTex error: pdflatex.exe (file simhei.ttf): cannot open TrueType font file for reading解决方案
  13. 利用阿里云服务器搭建私有云电脑(Windows 11),不受局域网限制,安卓iOS也可随时远程访问
  14. 3dmax晶格指令制作石墨烯模型的图文教程
  15. 小孩子要学习时间管理吗
  16. Vue3 + Vite 使用 Less 配置
  17. Unity 3D 中基础的三种传值技术(脚本组件,类静态字段,SendMessage)
  18. 使用Xavier读取RealSense D435i的踩坑经历
  19. 算法训练营 day20 二叉树 最大二叉树 合并二叉树 二叉搜索树中的搜索 验证二叉树
  20. 适合程序员的 5 款 Linux 发行版

热门文章

  1. win7与internet时间同步出错_windows7 internet系统时间同步出错超时怎么办?国内NTP时间同步服务器地址...
  2. 冗余网络构建方案对比:VRRP协议、多网卡绑定及WN202冗余链路网卡
  3. 蜂鸣器发声程序c语言,基于51单片机蜂鸣器发声的C语言程序
  4. 常见消息中间件大 PK
  5. SAP JCo BAPI的使用(刘欣) 2009-2-6
  6. 如何解决网页显示不全和打不开的问题
  7. 关于ExtJS错误“例外被抛出且未被接住”
  8. 软件项目管理(SPM)课程总结及感想
  9. 植物冠层部分参数的定义及含义解释
  10. 企业全链路数字化营销一站式解决方案