MT7628学习笔记(12)——GPIO操作,注册LED驱动
一、选择LED、button驱动
LED驱动:
LED modules ---> <*> kmod-leds-gpio <*> kmod-ledtrig-usbdev
Button 驱动:
Other modules ---> <*> kmod-gpio-button-hotplug.
二、修改设备树:
目录:/openwr/target/linux/ramips/dts 找到对应的设备树文件,增加对led、keys的注册。
gpio-keys-polled {compatible = "gpio-keys-polled";#address-cells = <1>;#size-cells = <0>;poll-interval = <20>;wps {label = "reset";gpios = <&gpio1 6 1>;//GPIO#38linux,code = <0x198>;};
};gpio-leds {compatible = "gpio-leds";indicator {label = "blue:indicator";gpios = <&gpio0 5 1>;//GPIO#37};
};
- “label”表示 LED 名称。
- “gpios”表示该 LED 用到的 GPIO。
- “&gpio0”表示处于 gpio 组 0,MT7628有 3 组 gpio 分别是 gpio0、gpio1、gpio2。
- “5”代表是当前组中的第 5 个 gpio,gpio1 的基础号是 32,所以gpio 实际号是 32+5=37。(GPIO#37)
- “1”代表高电平有效。
- 详细GPIO关系参考:MT7628/MT7688开发板引脚分布即GPIO介绍
- linux,code = <0x198>;对应的是reset的按键。相关的宏定义在 input-event-codes.h 文件,配合使用的相关按键匹配表在 button-hotplug.c 或者 gpio-button-hotplug.c 文件。
- 定义如下:
static struct bh_map button_map[] = {BH_MAP(BTN_0, "BTN_0"),BH_MAP(BTN_1, "BTN_1"),BH_MAP(BTN_2, "BTN_2"),BH_MAP(BTN_3, "BTN_3"),BH_MAP(BTN_4, "BTN_4"),BH_MAP(BTN_5, "BTN_5"),BH_MAP(BTN_6, "BTN_6"),BH_MAP(BTN_7, "BTN_7"),BH_MAP(BTN_8, "BTN_8"),BH_MAP(BTN_9, "BTN_9"),BH_MAP(KEY_RESTART, "reset"),BH_MAP(KEY_POWER, "power"),BH_MAP(KEY_RFKILL, "rfkill"),BH_MAP(KEY_WPS_BUTTON, "wps"),BH_MAP(KEY_WIMAX, "wwan"),
};
#define BTN_0 0x100
#define BTN_1 0x101
#define BTN_2 0x102
#define BTN_3 0x103
#define BTN_4 0x104
#define BTN_5 0x105
#define BTN_6 0x106
#define BTN_7 0x107
#define BTN_8 0x108
#define BTN_9 0x109
#define KEY_RESTART 0x198
#define KEY_POWER 116 /* SC System Power Down */
#define KEY_RFKILL 247 /* Key that controls all radios */
#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */
#define KEY_WIMAX KEY_WWAN
三、重新编译
make V=99
最终编译出来的固件存放在 openwrt-hiwooya/bin/ramips 目录,固件名为 *-squashfs-sysupgrade.bin 。
四、web方式烧录固件
1、查询获取到的IP地址:
ifconfig
apcli0 是无线网卡的。eth0 或者 eth0.2 是有线网卡的地址。
2、输入IP地址进入web界面。(root 12345678)
3、点击 System - Backup/Flash Firmware 进入升级界面
4、选择之前编译出来的固件,点击升级,等待升级成功。
五、测试
控制亮灭:(可以测量电平或者接个LED测试)
echo 1 > /sys/class/leds/blue\:indicator/brightness
echo 0 > /sys/class/leds/blue\:indicator/brightness
MT7628学习笔记(12)——GPIO操作,注册LED驱动相关推荐
- 正点原子stm32F407学习笔记2——GPIO操作跑马灯实验
一.库函数版本 1.硬件原理图 2.软件设计 打开上一节新建的库函数版本工程模板,直接点击工程下面的 USER 目录下面的 Template.uvproj. 跑马灯实验我们主要用到的固件库文件是: s ...
- Spring Boot基础学习笔记12:组件注册整合Servlet三大组件
文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...
- Python入门学习笔记——12.文件操作
##################################################### # 1.文件写入 # 写入操作 ''' 1.打开文件 open()参数1:文件路径路径 ur ...
- 嵌入式开发学习笔记9-做一个好玩的LED闪烁
嵌入式开发学习笔记9-做一个好玩的LED闪烁 前言 实际操作 程序功能 实现思路 程序源码 实现效果展示 前言 LED小灯闪烁实质是控制单片机上的I/O口,通过向I/O口循环输入高低电平,从而控制LE ...
- Kotlin学习笔记12——数据类和密封类
Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...
- R语言小白学习笔记12—概率分布
R语言小白学习笔记12-概率分布 笔记链接 学习笔记12-概率分布 12.1 正态分布 12.2 二项分布 12.3 泊松分布 12.4 其他分布 笔记链接 学习笔记1-R语言基础. 学习笔记2-高级 ...
- 【STM32F407学习笔记】GPIO(一)
[STM32F407学习笔记]GPIO(一) 1. GPIO基础知识 1.1 GPIO工作方式 1.2 GPIO相关配置寄存器 1.2.1 端口模式寄存器:GPIOx_MODER 1.2.2 输出类型 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- jQuery学习笔记之DOM操作、事件绑定(2)
jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...
- Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从
Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...
最新文章
- Google Test(GTest)使用方法和源码解析——自动调度机制分析
- 分布式消息队列 — RabbitMQ(1)
- git commit 提交的时候报错husky > pre-commit hook failed 或者‘lint-staged‘ 不是内部或外部命令,也不是可运行的程序(解决办法)
- php 弹窗代码大全,PHP_asp.net弹出窗口代码大全,//关闭,父窗口弹出对话框,子窗 - phpStudy...
- :host :host-context ::ng-deep详解
- C/C++中如何使用typedef给函数指针取别名使其更具可读性
- phpcms导航高亮:“首页” 高亮显示(含代码、截图、案例)
- android编程任务进度条,Android应用开发之AsyncTask 处理耗时操作和显示进度条
- 我的第一个python web开发框架(15)——公司介绍编辑功能
- Flutter学习 — 从新页面返回数据给上一个页面
- 在IDEA中进行开发时,Maven的插件或依赖显示红线的问题
- MySQL安装之后如何启动
- Spring实现Controller中方法参数校验
- ldDWR出现“例外被抛出且未被接住 解决方法
- STC官网首页资源整理
- Hive-之即席查询引擎选型考量
- 【开发心得】微信网页应用授权登录
- java web课程设计之图书管理系统
- 综合实验:LVS+LAMP+NFS+MySQL读写分离
- CodeReview中常见缩写