[BUG记录]Can没有按照预期的周期刷新
2023-12-17 05:25:20
??
关键词
嵌入式、C语言、autosar、TDA4
平台说明
项目 | Value |
---|---|
OS | autosar OS |
autosar厂商 | vector |
芯片厂商 | TI |
编程语言 | C,C++ |
编译器 | HighTec (GCC) |
一、背景
??接上一篇笔记,一种ECU间CAN通信的优化方法
??基于此基础上又出现了新的现象:can信号更新速度比预期的慢。例如10ms的周期性信号有时候会20m才更新,因此在SWC中的功能性能会受到影响。
二、根本原因
2.1 Com模块
??在此模块中配置ComIPduSignalProcessing有两种配置,分别是immediate和deferred;
区别:
deferred:当 Com_Rxindication被调用的时候,Rx_Signal_buffer 不会被立即更新,而是在Com_MainFunction 被调用时,所以有可能会延迟一个mainfuction的时候更新。
immediate:当 Com_Rxindication被调用的时候,Rx_Signal_buffer 会被立即更新。
所以在性能足够的情况下尽量选择immediate。
2.2 SWC调用周期
??对于周期帧来说,SWC的调用周期最好为can周期的50%-70%,因为要考虑到MCU的瞬时负载。
例如帧周期为10ms,那么SWC周期最好为5ms。
三、措施
??ComIPduSignalProcessing 配置为immed 并且SWC周期合理配置后问题解决,但是CPUload有所增加。
文章来源:https://blog.csdn.net/weixin_42447823/article/details/135039725
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!