gpt4 book ai didi

c - 如何确定AUTOSAR Runnable的(实际)循环时间

转载 作者:行者123 更新时间:2023-12-02 04:38:43 27 4
gpt4 key购买 nike

我已经看到很多代码,这些代码使用Runnable的循环时间来实现某些计时器/超时。问题是,如果有人决定更改此Runnable的循环时间,则计时器将不正确。
例:

#define FOO_TIMER_100MS_REACHED (10U)

FUNC(void, FOO_CODE) FOO_Cycle_10ms( void )
{
static uint8 t = 0;

if( t < FOO_TIMER_100MS_REACHED )
{
t++;
}
else
{
; /* 100ms elapsed - do whatever is necessary */
}
}

那么,如何从此Runnable内部确定定期触发的函数FOO_Cycle_10ms的循环时间?
关于上面的示例,我正在寻找类似的东西:
#define FOO_TIMER_100MS_REACHED ((uint8)(100U / CYCLE_TIME_FOO_Cycle_10ms))

最佳答案

问题是,如果有人决定更改此Runnable的循环时间,则计时器将不正确。

但这真的可以发生吗?软件组件描述(SWCD)始终与实现紧密结合。如果有人会改变例如SWCD中的可运行名称或删除访问点,代码也不会编译。

集成人员可以在以后的开发阶段中更改其他参数,例如可运行到任务的映射,但是该周期是SWCD的一部分,因此也与实现结合在一起。

因此,恕我直言,所描述的问题不应发生。如果这不能回答您的问题,请提供有关实际用例的更多信息。

关于c - 如何确定AUTOSAR Runnable的(实际)循环时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39346077/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com