autosar
文章平均质量分 51
雪过无痕45
希望能通过自己的经验帮助你们
展开
-
CAN模块开发问题概述
ECU外接canoe:使用CANoe模拟发送NM报文,然后停发或者断开CANoe:程序跑死,调用call stack查看压栈情况如下图所示定位代码如下图所示。可见是由于CAN模块在设置Controller状态时由于Can LOOP导致的,联想到CAN模块的Hardware loop check问题查找相关文档,发现需要对下图中几个模块设置exclusive area,与解决方法一致。原创 2024-05-14 18:56:09 · 336 阅读 · 2 评论 -
CanNm配置
原创 2024-05-07 16:11:47 · 398 阅读 · 0 评论 -
AUTOSAR中EcuM、ComM和CanNm的关联
ComM可以通过NM保持网络的唤醒,同时也可以通过SM激活通信,总之就像一个通信的总管。下面通过两种唤醒源来解释ComM的状态机。原创 2024-05-07 15:58:58 · 1074 阅读 · 0 评论 -
AUTOSAR唤醒流程
如果唤醒事件是由CAN transceiver检测的,则CAN controller需要自己内部唤醒,这意味着在转换为STARTED模式之前,CanIf_SetControllerMode()必须先切为STOPED模式。EcuM周期轮询唤醒事件,然后通过EcuM_CheckWakeup()调用CanIf_CheckWakeup(),CanIf通过传递的唤醒源(传递的参数)来决定调用Can_CheckWakeup或者CanTrcv_CheckWakeup。原创 2024-04-30 14:20:49 · 267 阅读 · 0 评论 -
非NM报文唤醒网络时,CAN收发器状态分析
当轮询到唤醒事件时,调用ComM_EcuM_WakeUpIndication(如果ECUM中的唤醒源绑定了ComM通道,则在调用EcuM_CheckWakeup时会自动调用)上报给ComM模块。①当主动唤醒时,用户手动调用ComM_RequestComMode上报给ComM模块,ComM收到上报后调用CanSM_RequestComMode()请求CanSM将相应的Can通道切为FULLCOM,CanSM再通过CanIf切换controller和transciver的状态。原创 2024-04-25 16:00:00 · 204 阅读 · 0 评论 -
Davinci配置DCM常见配置解析
按照上图步骤,可添加OEM notification函数。其中indication函数的目的是在各个诊断服务之前,可以根据需求为某些特定服务增加前提条件;confirmation函数的目的是在各个诊断服务响应之后,可以根据需求为某些服务添加特定命令。还可以按如下方式添加供应商notification函数。为添加安全level的先决条件,比如可以添加。为添加会话的先决条件,比如可以添加。原创 2024-01-09 15:55:49 · 1039 阅读 · 0 评论 -
AUTOSAR中DCM部分诊断函数解释
SesCtrlType代表存储当前会话类型的RAM地址,可通过定义Dcm_SesCtrlType类型的变量获取当前会话类型,例如。RequestData为诊断服务后的请求数据,例如11 01服务,则RequestData为01;DataSize代表RequestData的数据长度(byte);ReqType代表诊断请求类型,0为物理寻址,1为功能寻址;ErrorCode代表在否定应答时应该返回的错误码。其中SID为诊断服务,例如10服务、11服务等;原创 2024-01-09 10:43:46 · 413 阅读 · 0 评论 -
关于TC3XX芯片的Davinci工程插着调试器可正常运行,拔掉后无法运行的问题解析
静态代码中BrsHw.c中BMI头的地址要和Davinci中vLinkGen模块中启动代码的地址保持一致,否则会出现带着调试器代码能正常运行,拔掉调试器后代码不运行的问题。原因是插着调试器运行时,调试器不关心实际的物理地址,会自动找到启动代码的入口地址,所以无论入口地址设置是否正确,插着调试器代码均可以正常运行。如果要查看UCB的校验值,可以如上图所示,点击UCB,然后Read and save,命名后保存到指定路径。格式为hex格式,用文本打开即可。最后将上述校验值填写到下图中红框位置,注意大小端。原创 2023-09-26 13:52:09 · 160 阅读 · 0 评论 -
英飞凌TC3XX芯片执行软件复位后初始化失败的问题
在使用TC3xx芯片开发过程中,调用Mcu_PerformReset()接口函数进行软件复位,发现复位后restart,卡死在初始化过程中。由于调用的接口为软件复位,查询手册可知软件复位不会清ram,猜测可能是mcu初始化时校验ram,发现其中初始值不为0导致的错误。找到ModuleId为101的对应模块Mcu。中所示,修改MemMap_Common.h文件,将定段为NOINIT的变量改为定段到ZERO_INIT中。修改定段信息,将原本定段为NOINIT的变量改为定段到ZERO_INIT中,即初始化为0。原创 2023-12-29 14:31:51 · 631 阅读 · 0 评论 -
如何解决OS ErrorHook 的E_OS_DISABLED_INT错误
集成davinci工程时,如果调试发现OS ErrorHook() callout报E_OS_DISABLEDINT的错误,可以排查下图几个选项在davinci configurator中的具体位置如下图应保证上述四个模块的exclusive area没有使用Global Interrupt Lock。原创 2023-11-23 09:00:40 · 689 阅读 · 0 评论 -
Davinci配置CanXcp功能
3、在Can模块中为发送报文和接收报文分别增加一个hardware object(我们用的是full can,一条报文对应一个hardware object)分别创建RxPdu和TxPdu,并在配置中完成pdu、hardware object、buffer、controller等的依赖关系。配置XcpCmdConfig,如果需要标定功能,则需要添加XcpCalibration选项,其余内容根据需求进行配置。5、配置Rte模块,设置是否使能测量功能、是否支持Xcp Event、以及标定设置、A2L版本等。原创 2023-07-12 10:26:26 · 923 阅读 · 0 评论 -
AUTOSAR CAN架构
原创 2023-05-10 16:20:54 · 170 阅读 · 0 评论 -
AUTOSAR ETH架构
【代码】AUTOSAR ETH架构。原创 2023-05-10 13:23:29 · 320 阅读 · 0 评论 -
AUTOSAR诊断功能实现、数据流方向以及PDU解析
转载自https://www.cnblogs.com/still-smile/p/12143564.html转载 2021-04-28 13:45:56 · 758 阅读 · 0 评论