一、选择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驱动相关推荐

  1. 正点原子stm32F407学习笔记2——GPIO操作跑马灯实验

    一.库函数版本 1.硬件原理图 2.软件设计 打开上一节新建的库函数版本工程模板,直接点击工程下面的 USER 目录下面的 Template.uvproj. 跑马灯实验我们主要用到的固件库文件是: s ...

  2. Spring Boot基础学习笔记12:组件注册整合Servlet三大组件

    文章目录 零.学习目标 一.整合Servlet三大组件概述 (一)组件注册整合Servlet三大组件 (二)路径扫描整合Servlet三大组件 二.创建Spring Boot项目 - Integrat ...

  3. Python入门学习笔记——12.文件操作

    ##################################################### # 1.文件写入 # 写入操作 ''' 1.打开文件 open()参数1:文件路径路径 ur ...

  4. 嵌入式开发学习笔记9-做一个好玩的LED闪烁

    嵌入式开发学习笔记9-做一个好玩的LED闪烁 前言 实际操作 程序功能 实现思路 程序源码 实现效果展示 前言 LED小灯闪烁实质是控制单片机上的I/O口,通过向I/O口循环输入高低电平,从而控制LE ...

  5. Kotlin学习笔记12——数据类和密封类

    Kotlin学习笔记12--数据类和密封类 前言 数据类 在类体中声明的属性 复制 componentN 解构声明 密封类 尾巴 前言 上一篇,我们学习了Kotlin中的拓展,今天继续来学习Kotli ...

  6. R语言小白学习笔记12—概率分布

    R语言小白学习笔记12-概率分布 笔记链接 学习笔记12-概率分布 12.1 正态分布 12.2 二项分布 12.3 泊松分布 12.4 其他分布 笔记链接 学习笔记1-R语言基础. 学习笔记2-高级 ...

  7. 【STM32F407学习笔记】GPIO(一)

    [STM32F407学习笔记]GPIO(一) 1. GPIO基础知识 1.1 GPIO工作方式 1.2 GPIO相关配置寄存器 1.2.1 端口模式寄存器:GPIOx_MODER 1.2.2 输出类型 ...

  8. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记--使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  9. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  10. Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从

    Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...

最新文章

  1. BS文件夹上传操作(二) ——基本功能实现
  2. win10输入法切换快捷键怎么设置
  3. python处理excel可视化_python如何将excel数据处理可视化
  4. JavaFX鼠标点击事件
  5. Git同时使用不同平台代码仓库
  6. java异步处理同步化_java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化...
  7. MVC判断用是否登录了平台
  8. android 通过短信找回密码,我的android手机短信被我加密了,忘记密码了,在不刷机恢复出厂设置的情况下如何解决?急急急!!!!!...
  9. 中红外传感器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. OO第一单元总结——多项式求导
  11. Office Scan(OSCE)10.0客户端手动卸载
  12. 聚类算法之密度聚类方法
  13. 投资组合理论的简单介绍
  14. 单机版传奇传奇服务端架设传奇服务器架设
  15. 次坐标从0开始_定位基础-坐标变换
  16. python 曲线平滑处理——方法总结(Savitzky-Golay 滤波器、make_interp_spline插值法和convolve滑动平均滤波)
  17. 2016年书单和电影
  18. 成都敏之澳:拼多多关键词选词关键要素是什么?
  19. 二分图——洛谷P3386 【模板】二分图匹
  20. 基于图数据库的空间频繁并置模式挖掘

热门文章

  1. 打造你的私人聊天机器人
  2. 值传递和引用传递实例讲解
  3. Qt 文件对话框的使用
  4. wamp mysql 环境变量_windows+php+mysql+apache(wamp)安装配置问题
  5. Exploratory Social Network Analysis with Pajek(第三版)6-2
  6. 关闭WPS自带广告弹窗
  7. 如何将CAJ文件转换成PDF格式?分享两种实用的方法
  8. 地铁售票系统java代码_VHDL 地铁自动售票系统
  9. MFC快捷菜单以及位图的加载和移动操作
  10. 【孙伟】Adobe photoshop2019cc安装视频教程-孙伟-专题视频课程