ARM设备树解析:根节点"/"的属性解读

需积分: 50 13 下载量 127 浏览量 更新于2024-08-09 收藏 284KB PDF 举报
"本文档主要讨论的是设备树(Device Tree)中的根节点(Root Node)以及如何解析根节点的特定属性,例如"#address-cells"和"#size-cells"。设备树是ARM架构中用于描述硬件配置的一种数据结构,旨在减少内核中的冗余代码,简化板级支持。本文档通过代码示例展示了如何在Linux内核初始化阶段扫描根节点并获取其属性值。" 在ARM架构的Linux内核中,设备树(Device Tree)扮演着至关重要的角色。它是一种基于Open Firmware标准的数据结构,用于提供关于系统硬件布局的详细信息。设备树由节点(nodes)和属性(properties)组成,允许内核在运行时动态地了解硬件配置,从而避免在内核源代码中硬编码板级细节。 根节点是设备树的起点,标记为"/",它包含了整个设备树结构的顶级信息。根节点下有多个子节点,如"chosen",每个子节点描述了不同的硬件组件或配置。例如,"chosen"节点通常包含与引导参数和初始化RAM磁盘(initrd)相关的设置。 在描述中提到的`early_init_dt_scan_root`函数是内核初始化期间用于扫描根节点并获取其属性的函数。该函数接收四个参数:`node`表示当前处理的节点地址,`uname`为节点名,`depth`表示节点的深度,`data`为附加数据。当深度`depth`为0时,表示正在处理根节点。函数中,`dt_root_size_cells`和`dt_root_addr_cells`变量分别用于存储"#size-cells"和"#address-cells"的值,这些值定义了设备树中地址和大小的单元数量。 `#address-cells`属性指示了在设备树中表示地址时需要的单元数量,通常对于32位平台,值为1表示32位地址。而`#size-cells`属性定义了表示范围大小时的单元数,同样,1个单元表示rang的每部分占用一个cell。这些属性在处理设备树中的内存映射和其他地址相关的属性时非常关键。 设备树的使用极大地简化了不同平台的移植工作,因为它允许Bootloader传递硬件配置信息给内核,而无需在内核代码中进行大量修改。内核可以通过解析设备树来创建和初始化平台设备、I2C客户端、SPI设备等,并分配相应的资源,如内存、中断等。 在实际操作中,设备树描述通常保存在`.dts`文件中,这是一种人类可读的文本格式。`.dts`文件会被Device Tree Compiler (dtc)转换成二进制的`.dtb`文件,这个`.dtb`文件随后会在系统启动时由Bootloader加载给内核。 总结来说,根节点是设备树的核心,它提供了整个系统的概述,包括处理器类型、内存布局、中断控制器、总线、外设等关键信息。理解并正确处理根节点的属性对于构建和配置基于设备树的Linux系统至关重要。通过使用设备树,开发者可以更专注于编写与硬件无关的内核代码,提高代码复用性和系统移植性。
2019-09-05 上传
医疗器械软件描述文档的具体内容要求:描述医疗器械软件开发过程所用的语言、工具、方法和生存周期模型,其中工具应描述支持软件(含开源软件)和应用软件(第三方软件)的名称、版本号和制造商。同时应说明开发人员数量、开发时间、工作量(人月数)、代码行总数和控制文档总数。 2.2风险管理 应提供风险管理报告,包括名称、严重度、原因、解决措施和结果。 风险管理实施情况应另附原始文件,软件组件应提供医疗器械的风险管理报告。当组成模块采用现成软件时,所有级别医疗器械软件均应对现成软件进行风险管理。 2.3需求规格 A 级医疗器械软件应描述软件需求规格(SRS)关于功能和性能的要求。 B 级和 C 级医疗器械软件应提供软件需求规格全文。需求规格应另附原始文件,软件组件可提供医疗器械产品的需求规格。当组成模块采用现成软件时, B 级和 C 级医疗器械软件应说明相应要求。 2.4生存周期 A 级医疗器械软件应提供软件开发生存周期计划摘要,描述各阶段的任务、内容和结果。 B 级医疗器械软件在 A 级基础上应提供软件配置管理计划摘要和维护计划摘要,描述相应的工具、流程和要求。C 级医疗器械软件在 B 级基础上应列明各阶段的输入输出控制文档。 生存周期实施情况应另附原始文件,YY/T 0664-2008 或 YY/T 0708-2009 核查表可提供作为参考。当组成模块采用现成软件时,B 级和 C 级医疗器械软件应在开发生存周期计划、配置管理计划和维护计划中说明相应要求。 2.5验证与确认 A 级医疗器械软件应提供系统测试、用户测试的测试计划和报告摘要,描述测试的条件、工具、方法、通过准则和结果。B 级医疗器械软件在 A 级基础上应概要介绍开发各阶段的验证活动,描述相应的工具、方法、内容和结果,其中单元测试应描述覆盖率要求,集成测试应描述集成策略。C 级医疗器械软件应概要介绍开发各个阶段的验证活动,并提供系统测试、用户测试的测试计划和报告。系统测试和用户测试应另附原始文件,可追溯性分析报告可提供作为参考。当组成模块采用现成软件时,所有级别软件均应进行验证与确认。