SCP基本构建块介绍

描述

1-什么是SCP

• 将电源和系统管理任务从应用处理器(AP)中抽象出来。

• 符合ARM系统控制和管理接口(SCMI)规范。

• 执行环境不固定。可以在RTOS或裸机环境中运行。

2-基本构建块

整个LayOut分为了三层

SCP在这里插入图片描述

• 模块:

• 架构不可知

• 模块执行一组定义明确的操作。

• 框架:

• 依赖于执行环境相关服务的体系结构层

• 为所有模块提供通用服务,如初始化、事件、通知和中断处理。

• 体系结构和执行环境不可知

• 推动模块之间的初始化、协调和交互

• 体系结构:提供依赖于执行环境的功能,如线程、中断、内存管理等。

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和热传感器分为若干组。每个组都是一个具有自己配置的元素。

• 组中的每个传感器都是一个子元素。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分