CAN模块开发问题概述 ECU外接canoe:使用CANoe模拟发送NM报文,然后停发或者断开CANoe:程序跑死,调用call stack查看压栈情况如下图所示定位代码如下图所示。可见是由于CAN模块在设置Controller状态时由于Can LOOP导致的,联想到CAN模块的Hardware loop check问题查找相关文档,发现需要对下图中几个模块设置exclusive area,与解决方法一致。
AUTOSAR唤醒流程 如果唤醒事件是由CAN transceiver检测的,则CAN controller需要自己内部唤醒,这意味着在转换为STARTED模式之前,CanIf_SetControllerMode()必须先切为STOPED模式。EcuM周期轮询唤醒事件,然后通过EcuM_CheckWakeup()调用CanIf_CheckWakeup(),CanIf通过传递的唤醒源(传递的参数)来决定调用Can_CheckWakeup或者CanTrcv_CheckWakeup。
非NM报文唤醒网络时,CAN收发器状态分析 当轮询到唤醒事件时,调用ComM_EcuM_WakeUpIndication(如果ECUM中的唤醒源绑定了ComM通道,则在调用EcuM_CheckWakeup时会自动调用)上报给ComM模块。①当主动唤醒时,用户手动调用ComM_RequestComMode上报给ComM模块,ComM收到上报后调用CanSM_RequestComMode()请求CanSM将相应的Can通道切为FULLCOM,CanSM再通过CanIf切换controller和transciver的状态。
ubuntu安装农历日历 如果上图中右上角为ON,则可以直接点击install进行安装(因为我已经安装过了,所以没有install按钮)安装完gnome-shell-extensions,就可以正常安装lunar calendar扩展了。命令安装liblunar-date-2.0-0和gir1.2-lunar-date-2.0。下载完成后切换到Downloads目录下,可以看到下载的两个deb文件,如下图。下图中为依赖项,下载liblunar-date-2.0-0。选择amd64的deb文件。如果右上角为OFF,并提示。
git修改历史(非最新)提交(commit)信息 修改具体的commit信息,操作方法可见文章。5、使用git log查看提交记录,修改成功。当前有三次提交,从近到远分别为1、2、3。以修改第2次提交为例(从最新往前数)保存编辑的信息(注释使用英文输入法)进入编辑模式,将对应的。
git修改最新提交(commit)信息 进入编辑模式,修改好commit信息后按Esc键退出编辑模式,然后输入。1、首先通过git log查看commit信息。保存编辑信息(注意使用。进入命令命令模式,按。
Davinci配置DCM常见配置解析 按照上图步骤,可添加OEM notification函数。其中indication函数的目的是在各个诊断服务之前,可以根据需求为某些特定服务增加前提条件;confirmation函数的目的是在各个诊断服务响应之后,可以根据需求为某些服务添加特定命令。还可以按如下方式添加供应商notification函数。为添加安全level的先决条件,比如可以添加。为添加会话的先决条件,比如可以添加。
AUTOSAR中DCM部分诊断函数解释 SesCtrlType代表存储当前会话类型的RAM地址,可通过定义Dcm_SesCtrlType类型的变量获取当前会话类型,例如。RequestData为诊断服务后的请求数据,例如11 01服务,则RequestData为01;DataSize代表RequestData的数据长度(byte);ReqType代表诊断请求类型,0为物理寻址,1为功能寻址;ErrorCode代表在否定应答时应该返回的错误码。其中SID为诊断服务,例如10服务、11服务等;
git命令删除本地和远程分支 删除本地分支,其中branch_name是要删除的分支名。如果有未合并的修改,git会阻止删除分支。注:如果要删除a分支,则首先要切换到其他分支下再执行上述删除命令。无论本地是否有未合并的修改,该命令都会强制删除分支。删除远程仓库中的分支,但不会删除本地分支。如果要彻底删除某一个分支,可以使用。先删除本地分支,然后使用。
Git删除远程仓库某次提交记录后的所有提交 最后点击Unprotect即可。再次执行步骤4,成功。指定提交记录后的所有提交都被删除。5、git log查看,查看当前最新提交记录id是否为要修改的commit id。1、鼠标右键->git bash here,然后cd切换到。2、git log查看提交记录,获取commit id。4、git push --force,强制push。则需要按照下图进行修改。
英飞凌TC3XX芯片执行软件复位后初始化失败的问题 在使用TC3xx芯片开发过程中,调用Mcu_PerformReset()接口函数进行软件复位,发现复位后restart,卡死在初始化过程中。由于调用的接口为软件复位,查询手册可知软件复位不会清ram,猜测可能是mcu初始化时校验ram,发现其中初始值不为0导致的错误。找到ModuleId为101的对应模块Mcu。中所示,修改MemMap_Common.h文件,将定段为NOINIT的变量改为定段到ZERO_INIT中。修改定段信息,将原本定段为NOINIT的变量改为定段到ZERO_INIT中,即初始化为0。
如何解决OS ErrorHook 的E_OS_DISABLED_INT错误 集成davinci工程时,如果调试发现OS ErrorHook() callout报E_OS_DISABLEDINT的错误,可以排查下图几个选项在davinci configurator中的具体位置如下图应保证上述四个模块的exclusive area没有使用Global Interrupt Lock。
关于TC3XX芯片的Davinci工程插着调试器可正常运行,拔掉后无法运行的问题解析 静态代码中BrsHw.c中BMI头的地址要和Davinci中vLinkGen模块中启动代码的地址保持一致,否则会出现带着调试器代码能正常运行,拔掉调试器后代码不运行的问题。原因是插着调试器运行时,调试器不关心实际的物理地址,会自动找到启动代码的入口地址,所以无论入口地址设置是否正确,插着调试器代码均可以正常运行。如果要查看UCB的校验值,可以如上图所示,点击UCB,然后Read and save,命名后保存到指定路径。格式为hex格式,用文本打开即可。最后将上述校验值填写到下图中红框位置,注意大小端。
Davinci配置CanXcp功能 3、在Can模块中为发送报文和接收报文分别增加一个hardware object(我们用的是full can,一条报文对应一个hardware object)分别创建RxPdu和TxPdu,并在配置中完成pdu、hardware object、buffer、controller等的依赖关系。配置XcpCmdConfig,如果需要标定功能,则需要添加XcpCalibration选项,其余内容根据需求进行配置。5、配置Rte模块,设置是否使能测量功能、是否支持Xcp Event、以及标定设置、A2L版本等。