Rocket

https://mp.weixin.qq.com/s/RIW_YxjsrGtU07xtUDEYpA

 

简单介绍BaseSubsystem的实现。

 

 

1. 各种Key

 

定义了高层次模块使用配置Key:

其中:

a. SystemBusKey:用于定义系统总线参数;

b. FrontBusKey:用于定义前端总线参数;

c. PeripheryBusKey:用于定义外设总线参数;

d. ControlBusKey:用于定义控制总线参数;

e. MemoryBusKey:用于定义存储总线参数;

f. BankedL2Key:用于定义L2存储子系统的配置参数;

g. BuildSystemBus:用于定义构件系统总线的方法;

 

2. BareSubsystem

 

BareSubsystem中定义了子系统所需要的对象模型、设备树等结构:

 

BareSubsystem是LazyModule的子类,但是并没有实现LazyModule类中的抽象成员module:

所以BareSubsystem也是抽象类。

 

按接下来的实现,这个module应该是BareSubsystemModuleImp的实例。

 

3. BareSubsystemModuleImp

 

BareSubsystemModuleImp作为BareSubsystem的实现,而BareSubsystem是BareSubsystemModuleImp的概念节点:

这里的outer就是BareSubsystem的实例。BareSubsystemModuleImp把各类信息存放在文件中。

 

4. BaseSubsystem

 

BaseSubsystem继承自BareSubsystem:

1) BaseSubsystem与BaseSubsystemModuleImp成对使用,其module成员是BaseSubsystemModuleImp的实例:

 

2) 添加了各类总线:

 

3) Collect information for use in DTS

 

5. BaseSubsystemModuleImp

 

BaseSubsystemModuleImp是BaseSubsystem的实现:

其中搜集BaseSubsystem的各种信息。

 

 

原文地址:https://www.cnblogs.com/wjcdx/p/13168483.html