设备树 (JSON)
本文档详细介绍 XSTAR 的设备树系统,包括 JSON 语法、设备节点结构、设备树 API 使用等内容。
目录
引言
设备树的作用
驱动与设备的关系,可以类比为函数与变量的关系。函数负责具体的执行动作,变量负责描述自身属性,两者之间互相依存,缺一不可。
通常情况下,驱动与设备是一对一的关系,即一个驱动对应一个设备。但更多时候是一对多的关系,即一个驱动对应多个设备。例如,一颗主控芯片集成了四个串口,不可能写四份驱动来分别注册设备,通常只写一份驱动,然后分别执行四次注册。
使用变量直接描述设备属性灵活性不够,每次添加设备都需要重新编译,代码可读性也较差。设备树应运而生,只需将所有设备用文本的方式描述好,然后解析文件,依据内容自动生成相应的设备。
JSON 格式的选择
设备树本质上是一个配置文件,描述了所有设备的属性。JSON 作为一种轻量级的数据交换格式,具有以下优点:
- 简洁的层次结构
- 易于编写和阅读
- 易于机器生成和解析
选择 JSON 作为设备树的存储格式再合适不过了。