ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

详解AUTOSAR:StbM时间基准、速率校正与多分区同步机制(拓展篇—20)

详解AUTOSAR:StbM时间基准、速率校正与多分区同步机制(拓展篇—20) StbM_GetCurrentTime()返回E_OK,应用却在几十微秒后才使用结果;一次新 Global Time 已经到达,TIMELEAP_PAST仍保持;GPT 中断按时触发,客户 Runnable 却晚了一个任务周期才运行;多核系统中 Slave Time Base 被映射到一个分区,另一个分区的 SWC 又从本地 StbM Service Component 读取。它们都指向同一个事实:StbM 管理的不只是一个计数值,而是时间元组、状态、速率、通知和分区所有权组成的时间语义。同步时间基准管理器(Synchronized Time-Base Manager,StbM)为 ECU 内客户提供与分布式系统其他节点同步的 Time Base。CanTSyn、EthTSyn、FrTSyn 把总线时间元组交给 StbM;EthIf、GPT 或 OS Counter 提供本地参考时钟;StbM 维护同步点并随 Virtual Local Time 推进当前 Global Time;RTE 将读取、主时钟设置、通知和测量接口暴露给 SWC。最容易被忽略的是“取值与使用”之间的时间。GetCurrentTime只能保证输出参数在 API 执行时一致,不能冻结后续业务代码。若中断或高优先级任务把处理推迟,读出的值自然变旧。需要以同一时刻的输入参与计算时,调用者必须把 StbM 取值与后续处理放在合适的 Exclusive Area 内,而且使用 OS Counter 作为本地时钟时,这个 Exclusive Area 不能靠关闭中断实现。StbM 连接时间协议、本地时钟
返回列表