1-什么是SCP
• 将电源和系统管理任务从应用处理器(AP)中抽象出来。
• 符合ARM系统控制和管理接口(SCMI)规范。
• 执行环境不固定。可以在RTOS或裸机环境中运行。
2-基本构建块
整个LayOut分为了三层
在这里插入图片描述
• 模块:
• 架构不可知
• 模块执行一组定义明确的操作。
• 框架:
• 依赖于执行环境相关服务的体系结构层
• 为所有模块提供通用服务,如初始化、事件、通知和中断处理。
• 体系结构和执行环境不可知
• 推动模块之间的初始化、协调和交互
• 体系结构:提供依赖于执行环境的功能,如线程、中断、内存管理等。
1-Modules (struct fwk_module)
• Modules的类型
• 与硬件设备无关的工作或功能。
• 可能是自包含的,不会将任何API暴露给其他模块
• 为其他模块提供特定于协议的接口,例如消息传递通道的仲裁
• 控制特定设备。
• 可以实现HAL模块定义的API。
• 驱动可以选择不使用HAL。
• 一类驱动程序的通用接口,例如传感器。
• 其他模块通过HAL API使用平台驱动程序
• 硬件抽象层:
• 驱动程序:
• 协议:
• 服务
•产品由定义一个或多个固件目标的Product.mk文件组成。•每个固件目标都是在构建产品时构建的二进制映像。•固件目标完全由其模块集及其配置数据通过结构fwk_module_config定义。
• 结合
• 绑定使模块能够使用另一个模块的一组API。
• 模块提供的每组API都是唯一标识的。
• 模块元素可以提供同一组API的不同实现
2-Elements & Sub-Elements
• 元素
• 由模块拥有和管理的资源。
• 指代设备、协议或服务实例的抽象。
• 例如,驱动程序类型模块的元素可以代表每个硬件设备它控制的实例。
• 元件是可选的。
• 元件描述。
• 每个元件一个。
• 包含元素配置数据。
• 元素定义如下:
• 包含指向名称字符串的指针的结构
• 与元素关联的子元素数量
• 指向模块定义格式的数据的void指针
• 子元素
• 由一个元素拥有和管理的资源。
• 没有描述符。
举个例子:
• SENSOR HAL是一个模块。
• PVT和热敏传感器驱动器是使用传感器HAL的模块。
• PVT和热传感器分为若干组。每个组都是一个具有自己配置的元素。
• 组中的每个传感器都是一个子元素。
全部0条评论
快来发表一下你的评论吧 !