在系统开发中,为了抚平伟大的Linus Torvalds的怒气,出现了设备树的概念,Device tree看完资料在这里请教几个问题:
1)设备树具体的作用的是啥?用来在系统上电启动过程中挂接设备,初始化设备?那么以后是不是系统每添加一个设备,都可以在其中添加一个节点?设备树能否做到初始化设备,若能还需要编写设备初始化代码么?更进一步,是否可以挂接设备驱动?若是,以后开发驱动流程是不是就清晰很多?
2)设备树源文件为.dts,编译后得到.dtb,Bootloader在引导Linux内核的时候会将.dtb地址告知内核,这里的.dtb本质是什么格式的文件,二进制?Bootloader如何识别?
设备树上面保存的是设备的参数。在进行驱动匹配设备的时候,驱动会读取设备树上面的信息,比如要用哪个中断,要申请哪个IO,要用多大的时钟。Linux驱动里面使用of api可以获取设备树上面的参数。设备驱动代码还是要编写的
dtb本身是二进制文件和字符串混在一起的,设备驱动依靠字符串,也就是设备名,去寻找它支持的节点,并初始化它