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

做网站用什么ide网络广告名词解释

做网站用什么ide,网络广告名词解释,怎么建设课程网站,国外优秀网页设计作品上一章我们详细的讲解了 Linux 下的驱动分离与分层,以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这样的驱动框架, Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动。 上一章我们讲解了传统的…

上一章我们详细的讲解了 Linux 下的驱动分离与分层,以及总线、设备和驱动这样的驱动框架。基于总线、设备和驱动这样的驱动框架, Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动。
上一章我们讲解了传统的、未采用设备树的 platform 设备和驱动编写方法。最新的 Linux 内核已经支持了设备树,因此在设备树下如何编写 platform驱动就显得尤为重要,本章我们就来学习一下如何在设备树下编写 platform 驱动。

1、设备树下的 platform 驱动简介

platform 驱动框架分为总线、设备和驱动,其中总线不需要我们这些驱动程序员去管理,这个是 Linux 内核提供的,我们在编写驱动的时候只要关注于设备和驱动的具体实现即可。==在没有设备树的 Linux 内核下,我们需要分别编写并注册 platform_device 和 platform_driver,分别代表设备和驱动。==在使用设备树的时候,设备的描述被放到了设备树中,因此 platform_device 就不需要我们去编写了,我们只需要实现 platform_driver 即可。

1.1、修改 pinctrl-stm32.c 文件

在前面第 25 章的时候我们详细的讲解了 pinctrl,但是在后续的实验中却一直没有使用pinctrl也就是之前讲的pinctrl子系统知识,按道理来讲,在我们使用某个引脚的时候需要先配置其电气属性,比如复用、输入还是输入、默认上下拉等!但是在前面的实验中均没有配置引脚的电气属性,也就是引脚的 pinctrl配置。这是因为 ST 针对 STM32MP1 提供的 Linux 系统中,其 pinctrl 配置的电气属性只能在platform 平台下被引用,前面的实验都没用到 platform,所以 pinctrl 配置是不起作用的!
Linux 系统启动运行过程中会自动解析设备树下的 pinctrl 配置,然后初始化引脚的电气属性,不需要 platform 驱动框架。所以 pinctrl 什么时候有效,不同的芯片厂商有不同的处理方法,一切以实际所使用的芯片为准!
对于 STM32MP1 来说,在使用 pinctrl 的时候需要修改一下 pinctrl-stm32.c 这个文件,否则当某个引脚用作 GPIO 的时候会提示此引脚无法申请到!
Pasted image 20250405091637.png
Pasted image 20250405091652.png
Pasted image 20250405091704.png
Pasted image 20250405092644.png

1.2、创建设备的 pinctrl 节点

上面已经说了,在 platform 驱动框架下必须使用 pinctrl 来配置引脚复用功能。我们以本章实验需要用到的 LED0 为例,编写 LED0 引脚的 pinctrl 配置。打开 stm32mp15-pinctrl.dtsi 文件, STM32MP1 的所有引脚 pinctrl 配置都是在这个文件里面完成的,在 pinctrl 节点下添加如下所示内容:
Pasted image 20250405092821.png
Pasted image 20250405092834.png
Pasted image 20250405093105.png

1.3、在设备树中创建设备节点

接下来要在设备树中创建设备节点来描述设备信息,重点是要设置好 compatible 属性的值,因为 platform 总线需要通过设备节点的 compatible 属性值来匹配驱动!这点要切记。
Pasted image 20250405093252.png
Pasted image 20250405093304.png

1.4、编写 platform 驱动的时候要注意兼容属性

上一章已经详细的讲解过了,在使用设备树的时候 platform 驱动会通过 of_match_table 来保存兼容性值,也就是表明此驱动兼容哪些设备。所以, of_match_table 将会尤为重要,比如本例程的 platform 驱动中 platform_driver 就可以按照如下所示设置:
Pasted image 20250405095615.png
Pasted image 20250405095839.png
最后就是编写驱动程序,基于设备树的 platform 驱动和上一章无设备树的 platform 驱动基本一样,都是当驱动和设备匹配成功以后先根据设备树里的 pinctrl 属性设置 PIN 的电气特性再去执行 probe 函数。我们需要在 probe 函数里面执行字符设备驱动那一套,当注销驱动模块的时候 remove 函数就会执行,都是大同小异的。

2、检查引脚复用配置

2.1、检查引脚 pinctrl 配置

Pasted image 20250405100143.png
正点原子 STM32MP1 开发板上将 PI0 连接到了 LED0 上,也就是将其用作普通的 GPIO,对应的 pinctrl 配置就是示例代码 35.1.2.1。但是 stm32mp15-pinctrl.dtsi 是 ST 根据自己官方 EVK开发板编写的,因此 PI0 就可能被 ST 官方用作其他功能,大家在 stm32mp15-pinctrl.dtsi 里面找到如下所示代码:
Pasted image 20250405100306.png
从图 35.2.1.1 可以看出, ST 官方默认将 PI0 复用为 LCD_G5,前面说了,一个 IO 只能复用为一个功能,因此我们需要将图 35.2.1.1 中的“<STM32_PINMUX(‘I’, 0, AF14)>”屏蔽掉,因为我们现在要将 PI0 用作 GPIO。同样的,继续在 stm32mp15-pinctrl.dtsi 文件里面查找,会发现如图 35.2.1.2 所示的地方也将 PI0 复用为了 LCD_G5:
Pasted image 20250405100718.png
当然可能会有小伙伴会问,为什么之前实验不用屏蔽这些复用功能?
因为之前的实验并未用到pinctrl这个配置,也未用到platform。之前只是初步的讲了pinctrl子系统的知识!

2.2、检查 GPIO 占用

Pasted image 20250405101347.png

http://www.dtcms.com/wzjs/423446.html

相关文章:

  • 网站管理系统后台不能发布文章了关闭站长工具seo综合查询
  • wordpress获取版权声明长沙关键词优化新报价
  • php做网站页面排名seo公司
  • 注册公司流程和费用注册资金武汉seo报价
  • b2b网站建设费用搜索引擎网址
  • 网站建设模板登录界面sem托管公司
  • 品牌设计公司标志设计seo推广是什么
  • 网站推广的方案设计怎么写seo在线优化平台
  • 网站建设与设计ppt模板大连做优化网站哪家好
  • 打开网站弹出qq推广软文200字
  • 音乐网站制作教程网站建设黄页免费观看
  • 网站建设傲鸿百度seo外包
  • 网站开发啊福建优化seo
  • wordpress如何制作网站seo这个职位是干什么的
  • 网站域名备案注册证书查询手机助手
  • wordpress discuz论坛模板惠州seo代理商
  • 五莲建设监理有限公司网站友情链接导航
  • 番禺哪里有做网站的公司优化大师官方免费
  • 宝鸡全网营销网站开发seo网络推广招聘
  • 网站服务器怎么重启电商运营是做什么的
  • 如何自己制作小程序铜川网站seo
  • 济南网络员seo工作流程
  • 怎么做网站导航友情链接交换群
  • 做网站域名哪里来seo厂商
  • 做标书的专业网站推广的软件
  • 网站关键词库怎么做谷歌seo站内优化
  • 做网站常用的css产品怎么做推广和宣传
  • php网站后台入口搜索引擎优化的作用
  • 零基础学网站建设 知乎企业网络营销推广方案
  • 饮食网站开发需求学技术包分配的培训机构