当前位置: 首页 > news >正文

青县网站建设io域名购买

青县网站建设,io域名购买,广告优化师工作内容,wordpress邮件发送 插件Linux4.4 以后引入了动态设备树#xff08;Dynamic DeviceTree#xff09;#xff0c;我们这里翻译为“设备树插件”。设备树插件可以理解为主设备树的“补丁”它动态的加载到系统中#xff0c;并被内核识别。例如我们要在系统中增加RGB 驱动#xff0c;那么我们可以针对R…Linux4.4 以后引入了动态设备树Dynamic DeviceTree我们这里翻译为“设备树插件”。设备树插件可以理解为主设备树的“补丁”它动态的加载到系统中并被内核识别。例如我们要在系统中增加RGB 驱动那么我们可以针对RGB 这个硬件设备写一个设备树插件然后编译、加载到系统即可无需从新编译整个设备树。 设备树插件是在设备树基础上增加的内容我们之前讲解的设备树语法完全适用甚至我们可以直接将之前编写的设备树节点复制到设备树插件里。具体使用方法介绍如下。 设备树插件格式 设备树插件拥有相对固定的格式甚至可以认为它只是把设备节点加了一个“壳”编译后内核能够动态加载它。格式如下具体节点省略。 列表1: 设备树插件基本格式 /dts-v1/; /plugin/;/ {fragment0 {target-path /;__overlay__ {/* 在此添加要插入的节点*/};}; };第1 行用于指定dts 的版本。第2 行表示允许使用未定义的引用并记录它们设备树插件中可以引用主设备树中的节点而这些“引用的节点”对于设备树插件来说就是未定义的所以设备树插件应该加上“/plugin/”。第6 行指定设备树插件的加载位置默认我们加载到根节点下既“target-path “/”。第7-8 行我们要插入的设备及节点或者要引用追加的设备树节点放在__overlay__ {⋯}内。 实验说明 硬件介绍 本节实验使用到STM32MP1 开发板 实验代码讲解 本章的示例代码目录为linux_driver/dynamic_device_tree 我们尝试将上一节编写的RGB 灯节点使用动态设备树的方式添加到系统中。 创建RGB 灯的设备树插件 实现方法很简单直接复制上一小节RGB 灯的设备节点到设备树插件模板中如下所示。 列表2: rgb_led 设备树插件 // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) /* * Copyright (C) STMicroelectronics 2018 - All Rights Reserved * Author: Alexandre Torgue alexandre.torguest.com. *//dts-v1/; /plugin/; //#include ../stm32mp157c.dtsi #include dt-bindings/pinctrl/stm32-pinfunc.h #include dt-bindings/input/input.h #include dt-bindings/mfd/st,stpmic1.h #include dt-bindings/gpio/gpio.h/{fragment0{target-path /;__overlay__ {/* 添加led 节点*/rgb_led{#address-cells 1;#size-cells 1;compatible fire,rgb_led;/* 红灯节点*/ranges;rgb_led_red0x50002000{compatible fire,rgb_led_red;reg 0x50002000 0x000000040x50002004 0x000000040x50002008 0x000000040x5000200C 0x000000040x50002018 0x000000040x50000A28 0x00000004;status okay;};/* 绿灯节点*/rgb_led_green0x50000A28{compatible fire,rgb_led_green;reg 0x50008000 0x000000040x50008004 0x000000040x50008008 0x000000040x5000800C 0x000000040x50008018 0x000000040x50000A28 0x00000004;status okay;};/* 蓝灯节点*/rgb_led_blue0x50000A28{compatible fire,rgb_led_blue;reg 0x50003000 0x000000040x50003004 0x000000040x50003008 0x000000040x5000300C 0x000000040x50003018 0x000000040x50000A28 0x00000004;status okay;};};};};};第10-13 行 RGB 灯设备节点使用到的头文件第19-61 行我们之前编写的RGB 灯设备节点。 就这样简单RGB 灯的设备树插件已经做好了下面重点是编译设备树插件并把设备树插件添加到系统。 实验准备 在板卡上的部分GPIO 可能会被系统占用在使用前请根据需要修改/boot/uEnv.txt 文件可注释掉某些设备树插件的加载重启系统释放相应的GPIO 引脚。 如本节实验中可能在鲁班猫系统中默认使能了LED 的设备功能用在了LED 子系统。引脚被占用后设备树可能无法再加载或驱动中无法再申请对应的资源。 方法参考如下 取消LED 设备树插件以释放系统对应LED 资源操作如下 并按上述步骤操作。 如出现Permission denied 或类似字样请注意用户权限大部分操作硬件外设的功能几乎都需要root 用户权限简单的解决方案是在执行语句前加入sudo 或以root 用户运行程序。 通过内核工具编译设备树插件 设备树插件与设备树一样都是使用DTC 工具编译只不过设备树编译为.dtb。而设备树插件需要编译为.dtbo。我们可以使用DTC 编译命令编译生成.dtbo但是这样比较繁琐、容易出错。 我们可以修改内核目录/arch/arm/boot/dts/overlays 下的Makefile 文件添加我们编辑好的设备树插件。并把设备树插件文件放在和Makefile 文件同级目录下。以进行设备树插件的编译。 在内核的根目录下执行如下命令即可 make ARCHarm CROSS_COMPILEarm-linux-gnueabihf- stm32mp157_ebf_defconfigmake ARCHarm -j4 CROSS_COMPILEarm-linux-gnueabihf- dtbs生成的.dtbo 位于内核根目录下的“/arch/arm/boot/dts/overlays”目录下。 本章的RGB 设备树插件为“stm-fire-rgb-led-overlay.dts”编译之后就会在/arch/arm/boot/dts/overlays目录下生成同名的stm-fire-rgb-led.dtbo 文件。得到.dtbo 后下一步就是将其加载到系统中。 实验效果 上一小节我们编译生成了.dtbo。.dtbo 可以被动态的加载到系统这一小节介绍将设备树插件加入系统的方法。 uboot 加载(适用野火linux 开发板) linux 内核从4.4 开始支持设备号树插件支持并不代表默认开启。所以我们使用之前要配置内核开启这个功能。如果使用的是我们提供的debian 镜像无论哪个版本都是开启过了无需再配置内核并重新编译。假设使用的是debian 镜像下面介绍具体的加载步骤。 首先我们把编译好的设备树插件文件上传到我们开发板中。 我们可以使用uboot 加载编写好的设备树插件只需完成简单的两个步骤 将需要加载的.dtbo 文件放入“/usr/lib/linux-image-4.19.94-stm-r1/overlays/”目录下。 将设备树插件写入位于“/boot”目录下的uEnv.txt 文件文件系统启动过程中会自动从uEnv.txt 读取要加载的设备树插件。 # 使用nano 编辑器编辑 nano /boot/uEnv.txt # 在文件中添加一行 dtoverlay/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-rgb-led.dtbo添加好后我们重启开发板并输入对应的命令可以查看设备树插件是否加载成功 ls /sys/firmware/devicetree/base/ # 或者 ls /proc/device-tree看到这些文件证明已经加载成功了。 删除设备树”插件”时我们只需将对用的插件在“/boot”目录下的uEnv.txt 文件中添加# 号注释即可。 从上图可以看出在uEnv.txt 文件夹下有很多被屏蔽的设备树插件这些设备树插件是烧写系统时自带的插件为避免它们干扰我们的实验这里把它们全部屏蔽掉。如果要将RGB 的设备树插件写入uEnv.txt 也很简单参照着写即可。书写格式为“dtoverlay 设备树插件路径”。修改完成后保存、退出。执行reboot 命令重启系统。正常情况下我们可以在“/proc/device-tree”找与插入的设备节点同名的文件夹。 加载RGB 灯驱动 驱动程序和应用程序的使用方法与上一章完全相同可直接使用上一章的驱动和测试应用程序完成实验实验现象完全相同。 参考资料嵌入式Linux 驱动开发实战指南-基于STM32MP1 系列
http://www.hkea.cn/news/14466215/

相关文章:

  • 大量网站开发视频 文档VIP资源网络营销推广目的
  • 建立公司网站需要什么网站建设各个模块的功能
  • 垂直电商网站开发襄汾县住房和建设局网站
  • 如何弄公司网站福州网页
  • 关系的网站公司网站图片传不上去
  • 网站建设方案 filetype doc找室内效果图的网站
  • 免费发布推广信息的网站不属于网站建设方式的是
  • 免费网站源代码天猫折扣店网站建设
  • 查找网站空间商制作app界面
  • 手绘风网站网站建设一般报价
  • 网站管理工作流程上海建设网站浦东新区污水管网工程
  • 西安做网站电话wordpress 缩略图 截取
  • 为什么找别人做网站兰州装修公司口碑排名推荐
  • 北京企业网站建设个人模板网站
  • 静态网站是什么原因个人网站做排名
  • 四川省化工建设有限公司网站wordpress购买按钮
  • 用vs2013做网站案例河北seo网站优化公司
  • joomla! 1.5 网站建设基础教程领手工在家做的网站
  • 户外运动网站建设策划汕头论坛
  • 编写 网站 语言宁德市自然资源局
  • 怎样架设网站wordpress怎么改登陆不了
  • 印度外贸网站有哪些德阳响应式网站建设
  • 湖北建设部网站官网水区建设局网站
  • 平湖城乡规划建设局网站网站改手机版
  • 二级学院英语网站建设通知优设网剪辑教程
  • 自己做博客网站好chaincd wordpress
  • 泰安网站制作推广七米网站开发
  • 针对网站做搜索引擎做优化郑州设计院排名
  • 去菲律宾做网站网络的推广
  • 东莞网站制作公司是什么个人网页设计与制作学年论文