从设备树的引入,能去分析的一些事
来源:互联网 发布:微信发淘宝优惠券链接 编辑:程序博客网 时间:2024/06/15 05:09
Linux3.x后设备树的引入(背后是Linus大神一声吼:fucking code,详细可以参考下http://www.wowotech.net/device_model/why-dt.html),大家可以多看看www.wowotech.net/中的文章,很犀利。
Linux设备树的引入个人觉得其实为了就是实现下面三点:
1、减少了内核为支持新硬件而需要的改变2、提高代码重用,加速了Linux支持包的开发
3、使得单个内核镜像能支持多个系统
从上面可以看出来,也就是Linux内核尽可能不需要修改,但是不同厂家或者开发者的板子
不可能都一样的。那么也就是说Linux内核对这些不同板子的支持,可以像平台设备那样,
把内存的大小,外设的接口,传给内核,内核进行接受处理从而启动内核。
问:那么什么时候传递这些信息就来?
答:启动Linux系统(毕竟板子使用的时钟,ddr,其他外设可能不一样)
问:谁来传递这些信息?
答:系统的启动也就是三个部分:bootloader kernel rootfs
那么也只能是bootloader中传递进来,简单的说也就是u-boot
问: u-boot传递这些信息进入,那么Linux内核如何知道?
答:首先u-boot肯定要把这些信息放入到某个地址,然后在把地址告诉Linnux内核。
问:这个地址有什么限制?(针对于u-boot)
答:没有,只要不覆盖掉u-boot运行代码和即将启动Linux内核所占用的空间即可
问: 如何把地址告诉内核?(针对于u-boot)
答:使用bootm命令,形式:bootm [kernel] [rootfs] [devicetree]
比如:bootm 40000000 - 4100000 (-表示无)
问:这些信息用什么来承载,最终需要变成二进制烧写到内存?
答:这些信息叫做使用.dts文件来承载,需要经过dtc编译生成.dtb才能烧写到内存
note: .dts文件代表就是一个board,不同的板子相同的CPU的话,将会有很多信息是一样的,那么使用.dtsi来描述
也就是说.dts包含.dtsi
知道上面这些东西,那么就可以来想象下,既然最终要给kernel,也就说这段信息传递过去后,
kernel得能够明白是什么东西。对于人类来说,就是约定。那么对于程序来说,一样可以约定好。
而这种约定,简单来说就是标准,协议,语法等等,所以接下来,来学习下设备树的语法。
0 0
- 从设备树的引入,能去分析的一些事
- 块设备驱动的引入
- 关于android设备管理器的一些分析
- 关于android设备管理器的一些分析
- 关于android设备管理器的一些分析
- 分享从实战的角度去分析seo的必要
- 设备树的一些知识点
- 设备树的一些知识点
- 从“hello”开始去分析linux下的socket编程
- (转)关于android设备管理器的一些分析
- 从需求的角度去理解Linux之一:总线、设备和驱动
- 从需求的角度去理解Linux系列:总线、设备和驱动
- 从需求的角度去理解Linux系列:总线、设备和驱动
- 从需求的角度去理解Linux系列:总线、设备和驱动
- 从需求的角度去理解嵌入式Linux:总线、设备和驱动
- 一些我去的网址
- 去北京的一些感悟
- 字符设备驱动、设备驱动模型、sysfs、平台设备驱动的关系 -----从需求的角度去理解Linux之三
- iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用
- TCP的拥塞控制和流量控制的比较
- HPI中断丢失
- 讲义8:分组查询
- srm 558
- 从设备树的引入,能去分析的一些事
- Failed to install HelloWorld.apk on device 'emulator-5554! 解决方案
- javaSE(24)(多线程、网络编程、反射)
- 时间复杂度最小的最短路径算法?由这个想到的
- (python)下载秒拍美拍视频
- 英语年份的读法
- 《Python程序设计基础》在亚马逊当当京东互动出版网淘宝等各大书店上架
- 表扩张
- iOS之UI随笔-UITableView的性能优化