SCP固件执行步骤和模块间通信

描述

SCP固件执行步骤

运行前阶段:按固定顺序排列的5个阶段

• 模块初始化:框架使用模块配置数据调用的模块的.init()函数。

• 元素初始化:带有元素配置数据的框架调用的模块的.Element_init()函数。只有当模块具有元素时,此阶段才有效。

• 初始化后:框架调用的模块的.Post_init()函数。元素数据提供给模块后的任何额外初始化。可选阶段。

•框架调用的模块的Bind:.Bind()函数。模块和元素绑定到其他模块和元素。可选阶段。

• 框架调用的模块的Start:.Start()函数。模块可以使用其他模块的资源来完成初始化。

可选阶段。

• 主要由模块之间的交互引导的正常执行流程。

• 生成和处理的事件、通知和响应。

模块间通信

Events & Notifications

Events

事件:交流请求/响应的抽象。在被调用者上下文中实现逻辑任务的机制。•模块提了.procse_event()处理程序,当找到事件目标模块时,Framework会调用该处理程序。•当与请求相关的任务完成时,可能会发送响应事件。响应可以作为事件处理的一部分发送,也可以稍后发送。–延迟响应:稍后发送响应,而不是在处理事件后立即发送–标准响应:一旦.produce_event()返回,Framework就会生成响应。–响应是一个设置了响应标志的事件。固件以与事件相同的方式进行处理。

Notifications

通知:设置了通知字段的事件。•模块可以订阅来自其他模块的通知。通知由框架广播到所有订阅的模块。•可用于实现依赖链。–例如,如果在系统电源转换之前,我们可能需要更改时钟或设置一些
唤醒处理。模块可以使用来自系统电源模块的通知。

事件处理

创建事件-put_event()

SCP

put_event_and_wait()

模块不使用公共/框架线程。线程阻塞,直到事件得到处理并生成响应。

SCP

处理事件

在框架/公共线程或模块线程上下文中处理的事件

SCP

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

全部0条评论

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

×
20
完善资料,
赚取积分