设备树在公司经常用到

有时候很多驱动编写也就是替换设备树,所以拿韦老师的板子练手设备树
这次尝试直接拿正点的设备书改成韦老师的板子能用

对比

正点原子的设备树结构图

韦东山的设备树结构图

从因为蓝色的是开发板厂商对开发板自己的优化,所以我们对正点原子蓝色部分进行修改就行

只编译imx6ull

对正点原子里的包进行修改,因为有太多设备树编出来,所以把不要的去掉

修改Makefile

makefile里面只留下我们要的

根据缺失把之前删掉的其他文件找回,直到编译通过

让设备树支持内核运行到根文件系统

把正点imx6ull-14x14-evk.dts烧录到板子上,无法启动

从正常启动看是因为网卡这里没有跑通
捣鼓了几天后,根据cpu频率的报错,发现是他们的dtsi文件不一样,真没想到,这里面也会被改

开机后,lcd有一半能亮,不得不说,这个适配还是很强的

先改个led,看看设备树对不对


用的是SNVS_TAMPER3 io,在datasheet里面查找,这个io能复用为什么引脚,

在复用模式5中,复用为gpio5 3

1.改gpio子系统(gpio子系统指定的资源比较少)
led1{label = "sys-led";gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;linux,default-trigger = "heartbeat";default-state = "on";};
2更改pinctrl子系统(pinctrl子系统可以指定gpio口的电器属性,个人感觉这个偏硬一些)

因为是引用了pinctl系统,所以下面的pinctrl 引脚也需要修改pinctrl(设置引脚,设置引脚驱动能力)

电器属性设置

刷入设备树还是不能看见闪烁,排查了一下发现设备树里面引脚占用了,给占用的随便改改

设备树进行修改,那么就能看见系统灯了
在/sys/firmware/devicetree/base/leds/led1 目录里可以看见这个节点的各种状态

在/sys/class/leds/sys-led 里面可以直接控制led

按键设备树修改

怎么写按键设备树

进入内核里面查看官方文档
alientek_linux/Documentation/devicetree/bindings/input


lable:指定一个按键标签(算是取名吧)
linux,code: 表明按键类型,意思是代表了大键盘里面的某一个按键,有自己的定义
gpios :指定使用的gpio
按照上面的描述,也不用写pinctrl子系统,只写gpio子系统就行了(可能不准确,博主确实发现写了和没写是一样的),或者是因为
这个板子上面的引脚复用刚好只作为按键了,不用pinctrl子系统进行复用,默认就调用了

开始修改按键

key1 ->SNVS_TAMPER1


去hexdump上面看看,已经注册成event1了,也就表示每有一个按键就会注册成input下面的一个event事件

key2->GPIO4_IO14

根据这个io口的描述,进入datasheet里面找到,并且在pinctrl里面配置复用功能5

MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x80000000

imx6ull 正点原子设备树适配韦东山的开发板 (一)顺利启动,配置led,button相关推荐

  1. imx6ull 正点原子设备树适配韦东山的开发板 (二)适配lcd,背光,和触摸屏

    继续设备树的移植 适配lcd 查看内核文档 lcdif设备树 根据imx6ull.dtsi里面有的soc厂商设备树找到compile内容 compatible = "fsl,imx6ul-l ...

  2. 韦东山嵌入式开发板小结1

    韦东山嵌入式开发板小结1 一.连接[开发板-win10-虚拟机] 1.播放虚拟机VMware的ubuntu 16.04,设置win10和 虚拟机处于同一网段 >>>ipconfig ...

  3. linux设备树sysfs,迅为-iMX6开发板-设备树内核-sys方式控制GPIO

    本文档主要讲解迅为-iMX6 开发板,通过 sys 文件的方式来控制 GPIO. 要通过 sys 控制 GPIO,需要做以下几步操作: 1 开启内核中的"GPIO_SYSFS"驱动 ...

  4. 韦东山 Linux开发板,从零开始构建bootloader(基于韦东山JZ2440V3开发板)

    从零开始构建bootloader 项目步骤: 第一阶段: ​ 1.关看门狗: ​ 2.时钟初始化: ​ 3.内存初始化: ​ 4.NandFlash初始化: ​ 5.代码重定位(将flash中的代码复 ...

  5. 韦东山jz2440开发板重烧系统

    1. 使用op/eop烧写u-boot到nor/nand, 设置为nor/nand启动 2. 上电后马上在串口输入空格键,使板子进入UBOOT而不是启动板子上的内核 3. 连接PC---------- ...

  6. 韦东山JZ2440开发板之EOP在win10下驱动安装方法

    今天用win10安装EOP驱动时发现了两个问题,解决方法放在这里,供有需要的朋友借鉴 1.首先安装时一直提示无法找到驱动,后来经仔细观察发现,驱动文件少了一个ftd2xx.h的文件,重新下载,安装成功 ...

  7. 【正点原子Linux连载】第四十五章 pinctrl和gpio子系统实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  8. 【正点原子Linux连载】第四十四章 设备树下的LED驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

最新文章

  1. python搜索列表内_使用Python在另一个List中搜索列表的值
  2. 计算机数学基础 课程定位图形,本科《计算机数学基础》(上)课程教学设计方案.doc...
  3. hibernate.jdbc.fetch_size 和 hibernate.jdbc.batch_size
  4. 逆水寒服务器更新响应超时,逆水寒patcher.zip文件更新失败怎么办 更新文件异常问题解决方法...
  5. Python学习笔记——time模块和datatime模块【时间处理】
  6. Java中的RAII
  7. linux入门系统那个好,初学Linux哪个发行版本好?这些更合适!
  8. STM32这类的芯片设计有多组VSS和VDD原因
  9. 自然语言处理包pytorch、torchvision、torchtext安装(亲测有效)
  10. php为什么凉了_马蜂窝裁php换java,php又又又凉凉了吗
  11. 鸡头稳如云台_三轴增稳云台是怎么让相机、手机「稳如鸡头」的?
  12. MATLAB 设置文件的相对路径
  13. Affinity Photo for Mac中文破解版永久激活方法
  14. 分布式数据库笔记 —— 数据一致性模型
  15. Mysql Spatial 索引
  16. Java集合原理分析
  17. 【合新通信】SFP GPON ONU Stick With MAC
  18. java代码实现二叉树的遍历
  19. vue@2.6.14购物车统计总价
  20. 传美光科技竞标尔必达获胜 收购金额25亿美元

热门文章

  1. 结构体,联合体,枚举详解
  2. 清华谈加60分录取蒋方舟(图)
  3. 【硬件测试】华为2016校招·硬件技术工程师机考试题
  4. coinbase交易
  5. linux 获得屏幕大小,Ubuntu Linux下通过c++获取屏幕大小
  6. windows—cmd实现定时自动打开和关闭网页
  7. 数字化口岸电子中间件应用
  8. 硕士来成都可以申请的资源
  9. 数控车床用刀具有哪些选择方式
  10. Sage X3 ERP如何帮助客户提高库存盘点准确率仓库为什么要多次盘点?