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

青县网站建设如东住房和城乡建设局网站

青县网站建设,如东住房和城乡建设局网站,做报名统计的网站,专业做旗袍花的网站是什么网站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.dnsts.com.cn/news/138863.html

相关文章:

  • 两个网站链接怎么做app开发需要用到哪些工具
  • dw制作简单网站模板广州企业展厅设计公司
  • 90后做网站有没有帮人做数学题的网站
  • 买卖网站空白word个人简历
  • 推广 高端网站设计南京网站建设外包
  • 郑州网站优化怎样做网业搜索
  • 可以做众筹的网站有哪些jw网站设计
  • 大连网站建设1000元wordpress按照证书
  • 海口手机网站建设网站代理加盟赚钱吗
  • 网站编辑做啥都兼职做网站编辑
  • 制作网站谁家做的好河南省建设监理网站
  • 网站建设渠道代理任务书长沙系统开发
  • 自建站英文crm管理系统的好处
  • 杭州公司网站建设哪家好介绍几个有趣的网站
  • 网站设计制作费用万州建设工程信息官网
  • 网站搜索排名和什么有关系成都关键词优化技术
  • 网站设计制作体会做一般的网站要多久
  • 红色网站 后台怎么在国外网站赚钱
  • 河南建一个网站大概要多少钱酒店网站建设的优点
  • 江门网站快速排名优化wordpress内部跳转链接
  • 哪里医院做无痛人流便宜 咨询网站在线sql注入 WordPress
  • 郑州网站建设外包业务郑州金水区建设局网站
  • 中国建设银行贷款官网站电子商务网站基础建设
  • 水果 网站源码广西住房和城乡建设厅三类人员继续教育
  • 网站建设在淘宝怎么分类怎么分析竞争对手网站
  • 织梦网站是不是容易做seo城乡建设杂志官方网站
  • 番禺网站制作企业网站的建设及维护
  • wordpress网站样式百度输入法免费下载
  • 营销型网站模板展示网站子页面如何做seo
  • app网页设计网站wordpress文章自动加p