【Linux 设备驱动系列 4 -- 设备树 64bit 寄存器 reg 属性描述 】

这篇具有很好参考价值的文章主要介绍了【Linux 设备驱动系列 4 -- 设备树 64bit 寄存器 reg 属性描述 】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#address-cells 和#size-cells 属性

address-cells:address要用多少个32位数来表示;
size-cells:size 要用多少个32位数来表示。

32bit 寄存器 reg 属性描述

在 Linux 设备树(Device Tree)语法中,"reg"和"reg-names"属性是用于描述设备资源的主要属性。
"reg"属性用于描述设备的物理地址和大小。它是一个32位或64位的整数数组,每个数组元素对应一个设备资源,如内存区域、寄存器等。数组的第一个元素通常是设备的基础地址,其后紧跟的是设备大小。

"reg-names"属性用于给"reg"属性中的每一个设备资源命名,这样在驱动程序中可以通过名字来引用特定的设备资源,而不是通过索引。"reg-names"属性的值是一个字符串数组,数组中的每个字符串对应"reg"属性中的一个设备资源。

"reg"和"reg-names"属性之间的对应关系是通过数组索引来建立的,也就是说,"reg"属性中的第 n 个设备资源对应"reg-names"属性中的第n个字符串。例如,如果一个设备有两个内存资源,其"reg"属性为<0x0 0x1000 0x2000 0x1000>,“reg-names"属性为"mem1”, “mem2”,那么"mem1"对应的基地址和大小为0x00x1000,"mem2"对应的基地址和大小为0x20000x1000

64bit 寄存器 reg 属性描述

如果我们需要再dts中描述一个64bit的寄存器,需要怎么办

        stm: stm@58010000 {
                compatible = "arm,coresight-stm", "arm,primecell";
                reg =   <0 0x58010000 0 0x10000>,
					    <0x0000003B 0xB0000000 0 0x1000000>;
                reg-names = "stm-base", "stm-stimulus-base";

如代码所示, stm-base 的地址为32bit的,为0x58010000, 大小为0x10000。stm-stimulus-base的地址为64bit, 开始地址为0x3BB0000000。所以对于64bit的地址,其高32bit用 reg中的“第一个 32bit”, 低32bit 用“第2个32bit”表示。文章来源地址https://www.toymoban.com/news/detail-576424.html

到了这里,关于【Linux 设备驱动系列 4 -- 设备树 64bit 寄存器 reg 属性描述 】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 4、Linux驱动开发:设备-设备号&设备号注册

    🍅点击这里查看所有博文   随着自己工作的进行,接触到的技术栈也越来越多。给我一个很直观的感受就是,某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了,只有经常会用到的东西才有可能真正记下来。存在很多在特殊情况下有

    2024年02月15日
    浏览(26)
  • Linux驱动之INPUT设备驱动

    目录 一、开发环境 二、编写按键input设备的注册与事件上报         2.1 修改设备树文件                 1 添加 pinctrl 节点                 2、添加 KEY 设备节点                 3、检查 PIN 是否被其他外设使用         2.2 驱动程序编写      

    2024年02月07日
    浏览(18)
  • Linux设备驱动之SPI驱动

    Linux下SPI驱动分成两部分:主机驱动和设备驱动。 主机驱动:         主机侧SPI控制器使用 struct spi_master 描述,该结构体中包含了SPI控制器的序号(很多SoC中存在多个SPI控制器),片选数量,SPI信息传输的速率,配置SPI模式的函数指针(4种模式),实现数据传输的函数指针

    2023年04月11日
    浏览(22)
  • Linux驱动开发实战(一)——设备驱动模型

    在早期的Linux内核中并没有为设备驱动提供统一的设备模型。随着内核的不断扩大及系统更加复杂,编写一个驱动程序越来越困难,所以在Linux2.6内核中添加了一个统一的设备模型。这样,写设备驱动程序就稍微容易一些了。本章将对设备模型进行详细的介绍。 设备驱动模型

    2024年02月16日
    浏览(23)
  • Linux 驱动学习笔记 ——(1)字符设备驱动

    《【正点原子】I.MX6U嵌入式Linux驱动开发指南》学习笔记 字符设备是 Linux 驱动中最基本的一类设备驱动,字节设备就是按照字节流来读写的设备,常见的字符设备包括:LED、蜂鸣器、按键、I2C 以及 SPI 等。 Linux 中一切皆文件,字符设备驱动加载成功后会在 /dev 目录下生成相

    2024年02月08日
    浏览(30)
  • Linux设备驱动——第三章字符驱动

    当对幸福的憧憬过于急切,那痛苦就在人的心灵深处升起。——加缪 本章的目的是编写一个完整的字符设备驱动。我们开发一个字符驱动是因为这一类适合大部分简单的硬件设备。字符驱动也比块驱动易于理解。本章的最终目的是编写一个模块化的字符驱动,但是我们不会在

    2024年02月08日
    浏览(60)
  • 【FGPA】Verilog:移位寄存器 | 环形计数器 | 4bit移位寄存器的实现 | 4bit环形计数器的实现

      目录 Ⅰ. 理论部分 0x00 移位寄存器(Shift Register) 0x01 环形计数器(Ring Counter)

    2024年02月05日
    浏览(19)
  • Linux设备驱动开发 - 虚拟时钟Clock驱动示例

    By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 很多设备里面系统时钟架构极其复杂,让学习Clock驱动的盆友头大。这里我参考S3C2440的clock驱动写了一个virtual clock,即虚拟时钟驱动,分别包含clock的provider和

    2023年04月21日
    浏览(18)
  • Linux设备驱动模型(二)

    基于linux-3.14.16 设备模型(LDM)包括,总线、驱动、设备 以i2c总线为例,下面基本表现出了注册一个总线的过程。 1、定义一个总线bus_type,填充几个回调 其中几个比较重要 , match,总线设备和总线驱动的匹配规则 probe,总线设备和总线驱动匹配后将会执行的回调 2、调用b

    2024年02月05日
    浏览(28)
  • 嵌入式Linux系统中的设备驱动开发:从设备树到驱动实现

    大家好,今天给大家介绍 嵌入式Linux系统中的设备驱动开发:从设备树到驱动实现 ,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全! 可进群免费领取。 在嵌入式Linux系统中,设备驱动是连接硬件设备和操作系统之间的桥梁。

    2024年02月19日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包