① linux驱动开发设备树和总线之间的关系
在 Linux 系统中,设备树(Device Tree)是一种数据结构,它用于描述硬件结构,帮助内核在启动时确定硬件设备的位置和如何使用它们。在设备树中,节点表示硬件设备,而边表示设备之间的关系。
总线(Bus)是用于在计算机系统中传输数据的通道。它通常是一组连接设备的线路,并允许设备之间交换数据。在 Linux 中,总线也在设备树中表示为节点,并且设备节点与总线节点之间存在边。
因此,在 Linux 系统中,设备树用于描述硬件结构,其中包含设备和总线,以及它们之间的关系。在驱动程序开发中,开发人员通常使用设备树来确定特定设备的位置和如何与其通信。
② 嵌入式linux 修改dts文件同时需要修改preloader么
U-Boot 引入了扁平设备树FDT 这样的动态接口,使用一个单独的FDT blob(二进制大对象,是一个可以存储二进制文件的容器)存储传递给内核的参数[3]。一些确定信息,例如cache 大小、中断路由等直接由设备树提供,而其他的信息,例如eTSEC 的MAC 地址、频率、PCI 总线数目等由U-Boot 在运行时修改。U-Boot 使用扁平设备树取代了bd_t,而且也不再保证对bd_t 的后向兼容。需要修改的,重新编译dts文件。
③ fstab中tmpfs,sysfs分别有怎么作用
tmpfs就是个文件系统(OS或是某些软件会使用它,如oracle就使用了tmpfs),但是是基于内存的,也就是说文件系统是挂载内存上而不是硬盘上,这样在tmpfs上文件的读写就效率超高。而tmpfs默认会设置为系统一半的内存,并且还有swap空间。具体tmpfs是使用内存还是swap就要看系统的负载了。以上是我个人的理解,欢迎各种讨论~
sysfs我没接触过,网上有这样的解答:
sysfs是Linux 2.6所提供的一种虚拟档案系统。这个档案系统不仅可以把装置(devices)和驱动程式(drivers)的资讯从kernel space输出到user space,也可以用来对装置和驱动程式做设定。
sysfs的目的是把一些原本在procfs中的,关于装置的部份独立出来,以[装置阶层架构}(device tree)的形式呈现。这个档案系统由Patrick Mochel所写,稍后Maneesh Soni撰写 "sysfs backing store path",以降低在大型系统中对内存的需求量。
sysfs一开始以ramfs为基础,也是一个只存在于内存中的档案系统。ramfs是在2.4核心处于稳定阶段时加入的。ramfs是一个优雅的实做,证明了要在当时仍很新的虚拟档案系统(VFS)下写一个简单的档案系统是多么容易的一件事。由于ramfs的简洁以及使用了VFS,稍后的一些内存形式的档案系统都以它作为开发基础。
sysfs刚开始被命名成ddfs(Device Driver Filesystem),当初只是为了要对新的驱动程式模型除错而开发出来的。它在除错时,会把装置架构(device tree)的资讯输出到procfs档案系统中。但在Linus Torvalds的急切督促下,ddfs被转型成一个以ramfs为基础的档案系统。在新的驱动程式模型被整合进 2.5.1 核心时,ddfs 被改名成driverfs,以更确切描述它的用途。
在2.5核心开发的次年,新的‘驱动程式模型’和‘driverfs’证明了对核心中的其他子系统也有用处。kobjects被开发出来,作为核心物件的中央管理机制,而此时driverfs也被改名成sysfs。
正因为devfs上述这些问题的存在,在linux2.6内核以后,引入了一个新的文件系统sysfs,它挂载于/sys目录下,跟devfs一样它也是一个虚拟文件系统,也是用来对系统的设备进行管理的,它把实际连接到系统上的设备和总线组织成一个分级的文件,用户空间的程序同样可以利用这些信息以实现和内核的交互。
该文件系统是当前系统上实际设备树的一个直观反应,它是通过kobject子系统来建立这个信息的,当一个kobject被创建的时候,对应的文件和目录也就被创建了,位于/sys下的相关目录下,既然每个设备在sysfs中都有唯一对应的目录,那么也就可以被用户空间读写了。用户空间的工具udev就是利用了sysfs提供的信息来实现所有devfs的功能的,但不同的是udev运行在用户空间中,而devfs却运行在内核空间,而且udev不存在devfs那些先天的缺陷。很显然,sysfs将是未来发展的方向。
④ 什么是设备管理系统,都有哪些内容
设备管理系统(EquipmentManagementSystem)是将信息化了设备技术信息与现代化管理相结合,是实现研究级管理信息化的先导。设备管理软件是设备管理模式与计算机技术结合的产物,设备管理的对象是研究所中各种各样的设备。
随着计算机技术的迅猛发展以及Internet进入商业和社会应用阶段,设备的种类、数量越来越多,如何利用先进的网络技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管理手段,己经成为当今社会的潮流。
在现代化大型研究所信息化管理体系建设中,设备管理系统被看作是重中之重。因为设备是工厂生产中的主体,随着科学技术的不断发展,生产设备日益机械化、自动化、大型化、高速化和复杂化,设备在现代工业生产中的作用和影响也随之增大,在整个工业生产过程中对设备的依赖程度也越来越高。设备管理的各项制度、流程涉及的点多面广。
设备管理系统则是一个以人为主导,利用计算机硬件、软件、网络设备通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以战略竟优、提高效率为目的,支持高层决策、中层控制、基层运作的集成化的人机系统。而设备管理是管理系统的一个子系统,它具有管理信息系统的共性,同时也具有其特殊性。设备是生产的生命线,对研究所正常生产起着决定性的作用。信息安全设备管理已成为现代研究所管理的一个重要组成部分。把信息安全设备管理纳入研究所管理的重要组成部分己经成为一种趋势。
设备管理系统的内容,设备管理系统一般都包括一下部分:
设备资产及技术管理:建立设备信息库,实现设备前期的选型、采购、安装测试、转固;设备转固后的移装、封存、启封、闲置、租赁、转让、报废,设备运行过程中的技术状态、维护、保养、润滑情况记录。
设备文档管理:设备相关档案的登录、整理以及与设备的挂接。
设备缺陷及事故管理:设备缺陷报告、跟踪、统计,设备紧急事故处理。
预防性维修:以可靠性技术为基础的定期维修、维护,维修计划分解,自动生成预防性维修工作单。
维修计划排程:根据日程表中设备运行记录和维修人员工作记录,编制整体维修、维护任务进度的安排计划,根据任务的优先级和维修人员工种情况来确定维修工人。
工单的生成与跟踪:对自动生成的预防性、预测性维修工单和手工录入的请求工单,进行人员、备件、工具、工作步骤、工作进度等的计划、审批、执行、检查、完工报告,跟踪工单状态。
备品、备件管理:建立备件台帐,编制备件计划,处理备件日常库存事务(接受、发料、移动、盘点等),根据备件最小库存量或备件重订货点自动生成采购计划,跟踪备件与设备的关系。
维修成本核算:凭借工作单上人员时间、所耗物料、工具和服务等信息,汇总维修、维护任务成本,进行实际成本与预算的分析比较。
缺陷分析:建立设备故障代码体系,记录每次故障发生的情况以进行故障分析。
统计报表:查询、统计各类信息,包括设备的三率报表、设备维修成本报表、设备状态报表、设备履历报表、备件库存周转率、供应商分析报表等。
⑤ 如何在linux-3.x内核编译设备树
可以让设备树文件和内核一起编译,单独编译的化,可以参考下面的文档:
http://blog.csdn.net/woshigaoyuan/article/details/13996277
⑥ 怎么看有没有dtbo分区
在文件管理里就可以查看是否有DTBO分区。
在做Android8时,发现在dts中引入了dto。设备树叠加层(DTO)可让主要的设备树(DTB)叠加到设备树上。使用DTO的引导程序可以维护系统芯片(SOC)DT,并动态叠加针对特定设备的DT,从而向树中添加节点并对先用树中的属性进行更改。
也就是SOC的设备节点作为DTB,其他设备作为DTO,DTO可以对DTB中的节点进行引用和修改。实现DTO包括分割设备树,编译,分区和运行。

数据结构:
dt_table_header 仅适用于 dtb/dtbo 分区;您不能在 image.gz 末尾处附加此格式。如果您有一个 DTB/DTBO,则仍必须使用此格式(并且,dt_table_header 中的 dt_entry_count 为 1)。
#define DT_TABLE_MAGIC 0xd7b7ab1e。
struct dt_table_header {。
uint32_t magic; // DT_TABLE_MAGIC。
uint32_t total_size; // includes dt_table_header + all dt_table_entry。
// and all dtb/dtbo。
uint32_t header_size; // sizeof(dt_table_header)。
uint32_t dt_entry_size; // sizeof(dt_table_entry)。
uint32_t dt_entry_count; // number of dt_table_entry。
uint32_t dt_entries_offset; // offset to the first dt_table_entry。
⑦ 1.嵌入式开发板哪个好
嵌入式是现在发展最快的IT技术之一了,很多人都选择了嵌入式这一行业,对于嵌入式来说,他挣得多,前景也很不错,学习嵌入式,开发板是最离不开的了,很多初入嵌入式行业的人对于嵌入式开发板,不知道,应该怎么选。
其实嵌入式开发板的选择也不用过于纠结,对于开发板来说,你应该首先要了解嵌入式linux开发板,嵌入式开发板(Embedded development board)就是半导体行业分工合作的载体之一,它为开发产品的厂商提供基本的底层硬件、系统和驱动等资源,使得用户不需要再投入人力和时间来完成这些底层的工作。
对于嵌入式linux开发板来说,就和软件外包是很类似的,就像嵌入式产品的硬件、引导代码、驱动程序、文件系统、协议层、基本应用软件这些方面,都是电子产品的公共和通用部分,并不是产品能够形成差异化的关键技术,在这个讲求分工合作的时代,如果是这部分的工作量比较大,或者是厂商没有相关的开发人员的时候,就能够选择由第三方完成这些软件开发的工作,加快产品研发的进程,实现产品的迅速上市,抢占市场先机。
那么了解了嵌入式linux开发板后,那就是如何选择的问题了,选择linux开发板其实简单的说就是有5个方法,根据这些方式选择,那再好不过了。
第一,就是要看形式了,看看现在什么用的最多了,很多地方都在用,如果我们选择现在都不用的,那不就白学了,所以把握趋势很重要。
第二,选择开发板 要注意硬件资源(包括:CPU、ROM、RAM、各种接口)其中NanD Flash、Nor Flash和SDRAM的大小一定要满足自已开发的要求。我们要做到花最少的钱学习最多的东西,这才是我们要实现的目标。或者我们看一下可扩展的接口是否充足。
第三,软件资源对一个初学者来说也是很重要的,因为不同的开发板提供的软件资源差别很大。一般必须包括:嵌入式开发操作系统以及相应的驱动(最好有源代码)、开发工具、调试工具、学习用源代码、底板原理图、有相应的技术支持等等。现在的开发板一般的都可以提供丰富的代码,资料从网上一搜也是一大堆,原理图什么的也都提供。
第四,我们为什么会用到嵌入式linux开发板,不就是技术支持,初学者在学习嵌入式的时候,可能 一个简单的烧写系统的过程可能都要弄好几天(有过这个经历的人一定有同感),所以更别说做开发了。其实初学者遇到 的问题在有一些基础的人看来可能是非常容易的一件事情,因为不太清楚其中的原理,所以不知道错在什么地方了,所以要注意这个点。
第五,就是价格问题了,现在大部分使用开发板的用户是学生,学生没有多少钱的,买一块开发板好几百,半个月的生活费呢,不过这个投入我认为是值得的,这一次的投入可能会改变我们以后的一生的职业,我们学到的是以后工作中用到的实实在在的技术,现在做技术的很值钱的,我们可以上网上搜一下,现在的嵌入式工程师的薪水怎么样,就是让人羡慕嫉妒恨的。所以我们不应该只看眼前的利益,把眼光放长远一些。
说了这么多都是如何来选择嵌入式linux开发板,还没给你们推荐几个,下面重点来了,对于一些初学者来说,想学嵌入式linux的,如果手头宽裕,cortex-A8,cortex-A9的想买什么自己去挑,文档资料源码齐全就行,如果不宽裕的,买个mini2440开发板就行了,买ARM9的不用太纠结,资料多就行了,还有就是讯为的4412板子也是不错的,当然不止这些,还有TI AM335X,NXP IMX6Q和Samsung 4412。这些都是很适合初学的人来用的。
看了这么多,对linux嵌入式开发板有很大了解了吧,抓紧时间去选吧。