arm设备树基础知识

文章目录

  • 前言
  • dts片段
  • 通用属性介绍
    • 地址大小
    • 中断
    • phandle
    • compatible
  • mmc节点介绍

前言

arm开发,早晚要了解设备树

dts片段

interrupt-parent = <0x8005>;
model = "linux,dummy-virt";
#size-cells = <0x02>;
#address-cells = <0x02>;
compatible = "linux,dummy-virt";vmmc_supply: regulator {compatible = "regulator-fixed";regulator-name = "3V3";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;regulator-always-on;
};mmc@80000000 {compatible = "arm,pl181", "arm,primecell";reg = <0x00 0x80000000 0x00 0x1000>;interrupts = <0x00 0x0a 0x04>, <0x00 0x0b 0x04>;clocks = <0x8000>;clock-names = "apb_pclk";bus-width = <4>;max-frequency = <5000000>;vmmc-supply = <&vmmc_supply>;wp-gpios = <0x8007 6 0>;cd-gpios = <0x8007 7 1>;
};intc@8000000 {phandle = <0x8005>;reg = <0x00 0x8000000 0x00 0x10000 0x00 0x8010000 0x00 0x10000>;compatible = "arm,cortex-a15-gic";ranges;#size-cells = <0x02>;#address-cells = <0x02>;interrupt-controller;#interrupt-cells = <0x03>;v2m@8020000 {phandle = <0x8006>;reg = <0x00 0x8020000 0x00 0x1000>;msi-controller;compatible = "arm,gic-v2m-frame";};
};pl061@9030000 {phandle = <0x8007>;clock-names = "apb_pclk";clocks = <0x8000>;interrupts = <0x00 0x07 0x04>;gpio-controller;#gpio-cells = <0x02>;compatible = "arm,pl061\0arm,primecell";reg = <0x00 0x9030000 0x00 0x1000>;
};apb-pclk {phandle = <0x8000>;clock-output-names = "clk24mhz";clock-frequency = <0x16e3600>;#clock-cells = <0x00>;compatible = "fixed-clock";
};chosen {linux,initrd-end = <0x00 0x49543a83>;linux,initrd-start = <0x00 0x48000000>;bootargs = "root=/dev/ram0 console=ttyAMA0 init=/linuxrc ignore_loglevel nokaslr";stdout-path = "/pl011@9000000";rng-seed = <0x7970a02d 0x64c75176 0xfe4a335f 0xdade1615 0x97ff89ee 0x6f4b3574 0x15a3ce06 0x15c5d6f8>;kaslr-seed = <0x898db457 0x75d6280>;
};

通用属性介绍

地址大小

#size-cells = <0x02>;
#address-cells = <0x02>;

这个的意思是,地址和大小需要两个cell来表示,一个cell是32位
reg = <0x80000000 0x1000>;
这是cell=1的写法, 0x80000000开始,往后0x1000字节
cell=2时,每个值分成了64位的高低位, 应该是:
reg = <0x00 0x80000000 0x00 0x1000>;

中断

interrupt-parent = <0x8005>;
interrupts = <0x00 0x07 0x04>;
interrupts-extended = <0x00 0x07 0x04>;

interrupts参数:中断类型(SGI PPI SPI LPI), 中断号, 触发类型(上升/下降沿、高/低电平)
如果指定了interrupt-parent, 那使用interrupts的时候就不用再指定phandle了, 而且所有interrupt都使用那个中断控制器
如果想为不同的中断指定不同的控制器, 可以用interrupt-extended, 这个可以指定phandle

phandle

phandle = <0x8000>;
clocks = <0x8000>;
vmmc-supply = <&vmmc_supply>;

引用其他节点,可以通过标签,也可以通过显式声明的phandle引用 (反编译dtb得到的估计都是值

compatible

compatible = "arm,pl061\0arm,primecell";

兼容性,驱动代码里会读设备树的这个属性,看自己适不适配

mmc节点介绍

cell=1,32位;cell=2,64位
reg = <0x80000000 0x1000>;
这是cell=1的写法
cell=2时,每个值分成了64位的高低位
cell=2时,应该是:
reg = <0x00 0x80000000 0x00 0x1000>;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/80801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ 核心知识点面试攻略:从基础到实战(上位机开发视角)】

一、命名空间&#xff08;Namespace&#xff09;相关问题 问题1&#xff1a;C引入命名空间的核心目的是什么&#xff1f;如何通过命名空间解决命名冲突&#xff1f; 答案&#xff1a; C引入命名空间的核心目的是 避免全局作用域中的命名冲突&#xff0c;通过将变量、函数、类…

线性代数与数据学习

The Functions of Deep Learning (essay from SIAM News, December 2018) Deep Learning and Neural Nets

phpstorm用php连接数据库报错

项目场景&#xff1a; phpstorm用php连接数据库 问题描述 用php使用mysql_connect 的时候报错了&#xff0c;没有这个函数 原因分析&#xff1a; php解释器问题&#xff0c;后来查资料得知mysql_connct只适用于php5.5以下解释器。一开始用的7&#xff0c;改成5.3以后还是报…

51c大模型~合集122

我自己的原文哦~ https://blog.51cto.com/whaosoft/13877107 #PHYBench 北大物院200人合作&#xff0c;金牌得主超50人&#xff01;PHYBench&#xff1a;大模型究竟能不能真的懂物理&#xff1f; 本项目由北京大学物理学院朱华星老师、曹庆宏副院长统筹指导。基准设计、…

单片机 + 图像处理芯片 + TFT彩屏 触摸滑动条控件

触摸滑动条控件使用说明 一、项目概述 本项目基于单片机和RA8889/RA6809图形处理芯片的TFT触摸屏滑动条控件。该控件支持水平和垂直滑动条&#xff0c;可自定义外观和行为&#xff0c;并支持回调函数进行值变化通知。 硬件平台&#xff1a;51/ARM均可(测试时使用STC8H8K64U单…

linux离线安装zsh

下载zsh 下载仓库后解压 下载地址&#xff1a;https://github.com/zsh-users/zsh 离线安装 安装方法见INSTALL文件 ./configure --prefix[/usr/local] make make install

机器学习中的数据转换:关键步骤与最佳实践

机器学习中的数据转换&#xff1a;关键步骤与最佳实践 摘要 &#xff1a;在机器学习领域&#xff0c;数据是模型的核心&#xff0c;而数据的转换是构建高效、准确模型的关键步骤之一。本文深入探讨了机器学习中数据转换的重要性、常见的数据类型及其转换方法&#xff0c;以及在…

TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

在背板系统或任何长走线设计里&#xff0c;你大概都碰过这画面&#xff1a; TDR 曲线一开始乖乖在 92 Ω&#xff0c;但越往末端、阻抗越爬越高&#xff0c;来到最高 97 Ω&#xff0c;心里瞬间凉半截 &#x1f612; &#xff0c;「难不成... 板厂又翻车了吗&#xff1f;」 然…

在另外一台可以科学下载的电脑用ollama下载模型后,怎么导入到另外一台服务器的ollama使用

环境&#xff1a; Win10专业版 Ubuntu20.04 问题描述&#xff1a; 在另外一台可以科学下载的电脑用ollama下载模型后&#xff0c;怎么导入到另外一台服务器的ollama使用&#xff0c;原电脑win10上的ollama下载的模型,复制到ubuntu20.04的ollama上推理 解决方案&#xff1a;…

Ethan独立开发产品日报 | 2025-04-27

1. CreateWise AI 旨在提升你工作效率的AI播客编辑器 人工智能播客编辑器&#xff0c;让你的播客制作速度提升10倍&#xff01;它可以自动去除口头语和沉默&#xff0c;生成节目笔记和精彩片段&#xff0c;还能一键制作适合社交媒体分享的短视频——所有这些功能都只需一次点…

解决 shadui组件库Popover 点击后会消失

react用了shadui组件库 <Popover><PopoverTrigger><div className"text-operation-item" onClick{props.callback}><img src{props.imgSrc} width{20} height{20} /></div></PopoverTrigger><PopoverContent className"…

SVC电气设备作用

SVC&#xff08;Static Var Compensator&#xff0c;静止无功补偿器&#xff09;是一种基于电力电子技术的动态无功补偿装置&#xff0c;属于灵活交流输电系统&#xff08;FACTS&#xff09;的核心设备之一。它通过快速调节电网中的无功功率&#xff0c;改善电能质量、稳定系统…

黑马点评商户查询缓存--缓存更新策略

ShopTypeServiceImpl类 代码 package com.hmdp.service.impl;import cn.hutool.json.JSONUtil; import com.hmdp.dto.Result; import com.hmdp.entity.ShopType; import com.hmdp.mapper.ShopTypeMapper; import com.hmdp.service.IShopTypeService; import com.baomidou.myba…

C 语言函数指针与指针函数详解

一、引言 在 C 语言的编程世界中&#xff0c;函数指针和指针函数是两个既强大又容易混淆的概念。它们为 C 语言带来了更高的灵活性和可扩展性&#xff0c;广泛应用于回调函数、动态链接库、状态机等多种场景。深入理解和掌握函数指针与指针函数&#xff0c;对于提升 C 语言编程…

HTML5 新特性详解:语义化标签、表单与音视频嵌入

前言 HTML5作为当前Web开发的核心技术&#xff0c;为开发者提供了更强大、更语义化的工具集。本文将深入探讨HTML5的三大核心特性&#xff1a;语义化标签、增强的表单功能以及原生的音视频支持&#xff0c;帮助开发者构建更现代化、更易维护的网页应用。 一、HTML5语义化标签…

利用HandlerMethodArgumentResolver和注解解析封装用户信息和Http参数

获取用户身份信息详情注解 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/*** 获取用户身份信息详情注解*/ Retention(RetentionPolicy.RUNTIME) Tar…

OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从 NV12 (YUV420p) 色彩空间转换为 RGB。该函数将输入图像从 NV12 色彩空间转换到 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。 输出图…

哈工大李治军《操作系统》进程同步与信号量笔记

1.什么是信号量&#xff1f; 定义&#xff1a;记录一些信息&#xff08;即量&#xff09;&#xff0c;并根据这个信息决定睡眠还是唤醒&#xff08;即信号&#xff09;。睡眠和唤醒只是一个信号&#xff08;相当于0和1&#xff09;。 2.问题&#xff1a;一种资源的数量是8&am…

MySQL 的索引类型有哪些?

MySQL 中的索引是提高查询性能的重要工具&#xff0c;它通过构建数据结构来加速数据检索。MySQL 支持多种索引类型&#xff0c;每种类型适用于不同的场景。以下是 MySQL 中主要的索引类型及其特点&#xff1a; 1. B-Tree 索引&#xff08;默认类型&#xff09; 结构&#xff1…

基于Qt5的蓝牙打印开发实战:从扫描到小票打印的全流程

文章目录 前言一、应用案例演示二、开发环境搭建2.1 硬件准备2.2 软件配置 三、蓝牙通信原理剖析3.1 实现原理3.2 通信流程3.3 流程详解3.4 关键技术点 四、Qt蓝牙核心类深度解析4.1 QBluetoothDeviceDiscoveryAgent4.2 QBluetoothDeviceInfo4.3 QBluetoothSocket 五、功能实现…