- 博客(382)
- 收藏
- 关注
原创 PDUR数据提供机制
这是 PDUR 接口路由中最容易混淆的两个核心配置,本质是 "PDUR 主动推送" 和 "目标模块主动拉取"两种完全相反的数据传输机制,直接决定了通信的实时性、CPU 负载和数据一致性。:就像外卖骑手送餐,餐一做好就立刻给你送上门,你必须在家等着收:就像快递柜,快递员把包裹放进去,你什么时候有空什么时候去取,永远取到最新的那个包裹PDUR(源端)有数据就立刻发延迟最低,实时性最好可能阻塞源端,浪费 CPU 资源目标模块等目标要的时候才给最新数据目标完全控制时机,永远拿最新数据,节省资源。
2026-04-19 16:33:04
366
原创 LdCom 模块
能给我多大的缓冲区?与传统的COM模块相比,LdCom具有更低的资源消耗和更高的传输效率,特别适用于需要传输大量数据的场景。LdCom_TpRxIndication这是TP 多帧接收流程的最后一个回调,在所有分段数据通过LdCom_CopyRxData拷贝完成后调用,用于通知上层:整个 TP 报文已经接收完毕,结果是成功 / 失败。触发发送的本质是"在总线真正要把报文发出去的前一刻,才去上层拉取最新的数据",这是它和普通LdCom_Transmit()(上层主动推数据)的根本区别。
2026-04-16 16:18:21
468
原创 Bring up
在汽车软件领域,它指的是:ECU 从断电 / 复位开始,经过 Bootloader、BSW 初始化,到基本通信和诊断可用,再到应用层启动的全过程。这是一个严格分层、逐步验证的过程,遵循 "先硬件通路,再软件功能" 的原则,任何一步失败都会导致后续工作无法进行。阶段 3:最小系统 Bring Up(最关键也最容易卡壳)阶段 2:Bootloader Bring Up。阶段 1:硬件验证(Pre-Bring Up)阶段 5:BSW 与 RTE Bring Up。阶段 6:应用层 Bring Up。
2026-04-16 14:36:42
241
原创 vSet模块
全称Vector Settings,是整个 ECU 软件配置的基础核心模块,所有其他 AUTOSAR 模块(OS、COM、MCAL、RTE 等)的代码生成和运行都严格依赖它的配置。
2026-04-13 09:35:35
22
原创 FeePartitionConfiguration 概念详解
FeePartitionConfiguration(Fee 分区配置) 是 AUTOSAR Fee(Flash EEPROM Emulation)模块中比 Block 更高一级的存储管理单元,用于将整个 Fee 管理的 Flash 空间划分为多个完全独立、互不干扰的虚拟分区。它是 AUTOSAR 4.x 版本引入的重要特性,在英飞凌 AURIX、NXP S32K 等主流车规芯片的 MCAL 中都有完整实现。
2026-04-11 18:42:17
163
原创 ADC扫描组Scan Group
它是 ADC 转换请求源(Group Request Source)的一种类型,与 "队列组(Queued Group / 普通组)" 相对应。1.固定顺序、周期性采集多个通道:例如电机控制中的三相电流、电压采样,需要在每个 PWM 周期的固定时刻按照相同顺序采集。4.简单的多通道采集:不需要复杂的优先级调度和动态通道调整的场景。2.不同优先级的采集任务:队列内的每个请求可以设置不同的优先级。4.需要中断单个通道转换:可以单独取消队列中的某个通道转换请求。固定不变,只能按照组内预先定义的顺序转换。
2026-04-10 16:49:51
198
原创 MCAL导出配置文件再导入达芬奇工程
选择你的配置的名称,运行导出。这样在你指定的路径下就会产生一个新的arxml文件。选择路径、文件名和版本号,注意别选错版本号,不然导不出来。在这里添加刚才导出的arxml文件。在EB里面导出arxml。打开达芬奇,选择导入。
2026-03-26 11:31:06
37
原创 FVM基础
FvM_SetDevelopmentMode设置开发者模式,有Reset-Counter方案会闭眼通过校验,无Reset-Counter方案会在SecOC_GetRxFreshness接口返回E_OK也就是闭眼通过校验。省略Reset Counter,仅用Trip Counter+Message Counter构成完整的新鲜度值,并且不需要同步报文Sync-Message。Reset-Counter别被名字骗了,不是复位次数,是自己定一个周期,周期到了就+1,Trip-Counter清零的时候同步清零。
2026-03-26 11:29:32
373
原创 CAN报文停发一段时间
逐个任务排查,缩小范围,找到是任务某个OS任务堵塞,并且在该任务超时。排查方向2:存储所在任务,观察报文中有无触发存储的,发现课题报文都有797 14清故障码的行为,因此推断是14清故障码导致存储产生卡滞500ms的问题。将OS counter和任务counter发送到CAN上发现,任务counter暂停,OS中断的counter没有暂停。经过trace排查,发现在执行14诊断服务擦除DTC后,出现can报文停发一小段时间的现象。排查方向1:怀疑存在优先级高于CAN主函数所在任务的其他任务运行时间过长。
2026-03-17 15:51:52
181
原创 结构体对齐问题
这段代码的意思就是里面的代码编译出来的是以1个字节的方式对齐的。这样能节约内存资源,但是会在效率上有所影响。我们写代码经常会遇到结构体对齐问题,导致结构体的大小需要计算,结构体成员的位置也需要计算。
2026-03-12 09:14:07
39
原创 达芬奇模块配置
模块总体增减在project setting里面。每个模块新增都需要写上下面的内容。生成失败之后,下面的提示才会出来。选择默认校验和生成的模块。
2026-03-12 09:13:36
130
原创 功能安全测试
根据相关项定义的功能,分析其功能异常表现,识别其可能的潜在危害(Hazard)及危害事件(Hazard Event),并对其风险进行量化(即确定ASIL等级),导出功能安全目标(Safety Goal)和ASIL等级,以此作为功能安全开发最初最顶层的安全需求。随机硬件失效:控制器硬件,由于自身老化,外部环境因素等引发功能失效,导致相应故障并产生危害。功能安全测试:验证“安全需求是否落地”的测试活动,覆盖硬件(控制器板级量化)、软件(故障注入)、系统(实车环境),核心目标是“确认安全机制有效”。
2026-03-11 16:04:11
459
原创 CodeMeter Runtime Server was not found on this computter问题解决
刚安装的Canoe打开后提示Vector LicenseClient出现报错。
2026-03-11 15:59:50
259
原创 TJA1024芯片规格书解读
休眠模式:SLPx_N引脚为低电平,TXD和RXD对休眠没有影响,休眠后可以进行远程唤醒。待机模式:总线唤醒后进入该状态,当SLPx_N引脚为高电平则跳转到普通模式。复位模式:电压过低强制进入该状态,电压恢复后进入休眠模式。4路LIN都是重复的,其他都是VCC和GND。普通模式:能够正常收发,4路LIN独立工作。每个控制器都有自己独立的操作模式。主控芯片接收引脚,开漏输出。休眠控制引脚,低电平有效。
2026-02-01 13:01:45
233
原创 EA模块接口
Ea_Rb_BlockMaintenance维护一个冗余块,以确保其中一个损坏的数据被修复。Ea_EraseImmediateBlock立即擦除。Ea_GetJobResult获取作业结果。Ea_GetVersionInfo版本信息。Ea_Read读取块内容,指定偏移和长度。Ea_MainFunction主函数。Ea_Rb_EndInit结束初始化。Ea_GetStatus获取状态。Ea_SetMode设置模式。Ea_Write写入块内容。Ea_Cancel取消EA。Ea_Init初始化。
2026-02-01 13:00:59
43
原创 MemIf模块
本文介绍了非易失性存储抽象层(MemIf)模块的核心功能与使用方法。该模块为上层提供统一的存储访问接口,屏蔽底层介质差异,支持异步读写、擦除等操作。文章详细说明了模块状态类型(UNINIT/IDLE/BUSY等)、作业结果类型(OK/FAILED等)和两种工作模式(快/慢模式)。重点阐述了关键接口功能:模式设置、异步读写、作业取消、状态查询等,并强调所有操作均为异步执行。最后提供了常见状态异常排查方法和数据不一致时的标准恢复流程,包括配置默认值、镜像块等恢复策略。
2026-01-30 13:28:45
53
原创 Notepad--使用体验
体验了几天下来,Notepad--确实轻量化,Notepad++得基本功能也有,但遇到分辨率问题就瞎了。还有一些跟电脑适配的问题,暂时不能流畅使用,所以还是用回Notepad++。最近有同学推荐使用Notepad--,说是用国产化替代Notepad++。譬如这个echo off就显示重叠在一起了。
2026-01-30 13:27:47
188
原创 《蔡康永的说话之道》书摘
巧妙转换话题的沟通技巧 在社交场合遇到不想聊的话题时,不必直接拒绝,可以通过巧妙引导将话题转向生活层面。比如将篮球话题引向作息时间或金钱观。谈话不必执着于卡住的话题,适时转换新话题更自然。提问时可采取"倒推法",从尖锐问题退两步行至温和提问。叙述时制造悬念能提升吸引力,而求助时则要"大事化小",拆解成具体小步骤。道歉时可先发制人地赞美对方,通过抬高对方、贬低自己的方式化解矛盾。这些技巧都能让沟通更加顺畅自然。
2026-01-21 11:47:32
237
原创 单元测试基础
软件测试是根据软件开发阶段的 规格说明和程序的内部结构而设计一批测试用例,并利用这些测试用例去运行程序,以发现错误的过程。检查每个单元能否正确地实现详细设计中的功能、性能、接口和其它设计约束等要求,发现单元内可能存在的种错误。测试原理:给被测函数多组输入数据,通过比对实测数据和预期结果是否一致,判定测试通过与否。自动生成驱动程序:无需完成全部代码即可开始测试,无需关注驱动环境的编译调试。面向对象编程语言,如C++ 中,单元一般是类;单元结构化编程语言,如C中,单元一般是函数;前提条件:全生命周期测试。
2026-01-21 11:46:06
345
原创 ECC错误
判断方式:调试时可以在IVORx异常处理入口加断点,查看SPC56 ECSM相关寄存器的值(ESR/FEAR/FEDR/REAR/REDR)或者SPC58 MEMU模块寄存器,或者查看Flash模块寄存器的状态值(MCR/ADR),以及查看内核寄存器的状态值(ESR/DEAR)。ECC的主要影响是在易失性存储器(RAM)中,其中技术的小型化导致更高的位翻转风险。所有这些算法都是基于用所谓的校验位扩展信息位的原理,这样接收时的比特错误在一个比特错误的情况下被识别和纠正,或者在两个错误的情况下被检测出来。
2026-01-15 10:16:42
1180
原创 各CAN工具CANFD配置
当上位机设置为can节点的时候,板子发出来的canfd报文,上位机解析错误,会识别为error帧,不会进行应答。当一条通路里面有can报文和canfd报文,就需要将上位机配置为canfd节点,才能同时接受这两种报文。这时候会出现大概率偶发报文收发异常,哪怕can节点都无法100%正确解析can报文,这是上位机的问题。由于每条报文的特性问题,上位机可能会正确解析也可能不能正确解析。有些上位机因为无法识别而将报文丢弃,也不报error。这俩要改成CANFD。
2026-01-15 10:03:34
228
原创 Bfx模块
Bfx_TstBitLnMask_xxxx将数据和掩码按位与是否不为0。Bfx_PutBitsMask_xxxx设置掩码对应位为0或者1。Bfx_ToggleBitMask_xxxx将掩码的对应位翻转。Bfx_ClrBitMask_xxxx将掩码的对应位清零。Bfx_TstBitMask_xxxx掩码对应位是否置起。Bfx_SetBitMask_xxxx置起掩码对应的位。Bfx_GetBits_xxxx获取多位数据。Bfx_SetBits_xxxx置起多位数据。Bfx_GetBit_xxxx获取某位数据。
2026-01-06 10:42:00
176
原创 达芬奇PWM模块
PwmLowPowerStatesSupport支持低功耗功能,开启PWM_SetPowerState/PWM_GetCurrentPowerState/PWM_GetTargetPowerState/PWM_PreparePowerState/PWM_Main_PowerTransitionManager接口。PWM_FIXED_PERIOD:只能修改占空比。pwm_fixed_period_shifts:只有占空比可以改变。PWM_VARIABLE_PERIOD:可修改占空比和周期。
2025-12-31 08:44:18
555
原创 达芬奇DIO模块
Dio_ReadChannelGroupOutputValue读取通道组输出的电平。Dio_ReadChannelOutputValue读取通道输出的电平。Dio_MaskedWritePort根据掩码写入端口的电平。Dio_ReadChannelGroup读取通道组的输入电平。Dio_WriteChannelGroup写入通道组的电平。Dio_WriteChannel写入单一通道的电平。Dio_ReadChannel读取单一通道的电平。Dio_WritePort写入整个端口的电平。
2025-12-31 08:42:54
333
原创 达芬奇PORT模块
JATG调试端口组,这东东只有一个,只有5个PortPin:MCU_JP0_0_TDI、MCU_JP0_1_TDO、MCU_JP0_2_TCK、MCU_JP0_3_TMS、MCU_JP0_5_RDY。PortEcmErrorInApi启用Port_EcmMaskERRORIN和Port_EcmClearERRORIN接口。X是数字,对应的是哪个端口组,里面有多少个引脚要自己加,能加多少个引脚取决于这个端口有多少个引脚。端口过滤,需要过来哪个端口右键自己在这里加,每个端口有自己的滤波方式,这里只举几个例子。
2025-12-24 15:33:16
575
原创 达芬奇LIN模块
LinChannelClockRefImmediateValue如果勾选了LinEnableClockRefImmediateValue配置,就不参考MCU的时钟了,时钟频率按照这个立即数来。LinChannel23ClockRef引用McuRLIN23Clk外设时钟配置,这样通道就有独立的时钟,用不到可以不配置。LinEnableClockRefImmediateValue启用立即数输入,这个配置跟下面的配置联动。LinHeaderResponseSpaceSelect应答间隔。
2025-12-24 15:31:51
339
原创 达芬奇ADC模块
AdcLowPowerStatesSupport硬件提供低功耗状态管理,使能所有电源状态管理相关的接口ADC_GetCurrentPowerState ADC_SetPowerState/ADC_GetTargetPowerState ADC_PreparePowerState/ADC_Main_PowerTransitionManager。ADC_GROUP_REPL_ABORT_RESTART:如果当前组被更高优先级的组抢断,在高优先级组转换完成后,当前组所有的通道的本轮转换将重新开始。
2025-12-19 14:08:41
543
原创 调试能收到CAN报文,不调试不能收到
按照原理来说,报文进来之后会优先分配给object ID小的那一个硬件对象,结果canif层关联的是object ID大的那一个,在单板上面自然运行不起来。调试的时候收发器一直在收报文,当object ID小的那一个硬件对象的缓存区满了,就会存入object ID大的那一个硬件对象,所以在调试的时候上层能收到对应的报文。就查询MCAL层的配置,初始化正常,能进入中断回调,中断回调当中有接收到A报文,就是报文分发的时候出问题。在canif层判断接收到的报文,如果是A报文,就把标志位置起来,发现并没有置起。
2025-12-18 14:40:04
231
原创 PIT和STM
它包括一个专用的实时中断定时器(RTI:Real Time Interrupt),它运行在一个单独的时钟上,可用于系统唤醒。它们加载它们的起始值,就像在它们的LDVAL寄存器中指定的那样,然后倒数直到它们达到0,然后它们再次加载它们各自的起始值。1个32-bit的向上计数器,具有8位的预分频器,4个32位比较通道,每个通道的独立中断源,可进行0–256级分频。可以修改运行计时器的计数器周期,首先禁用计时器,设置新的负载值,然后再次启用计时器。如果需要,计时器的当前计数器值可以通过CVAL寄存器读取。
2025-12-17 10:53:49
747
原创 周立功ZXDOC脚本编写
通道模块用于通道的管理、数据传输等。测量模块用于管理测量的启动/停止,也可以通过on_status_changed()函数监听测量状态的变更。如果脚本定义了__zxdoc_on_exit__()函数,则脚本停止时会执行它。脚本加载后,会执行__zxdoc_main__()函数。通过信号模块可以设置信号值、监听信号值等。三、测量模块(measurement)八、标定模块(calibration)四、通道模块(channel)七、信号模块(signals)六、设备模块(device)一、主模块(ZXDoc)
2025-12-05 10:25:19
959
2
原创 ZSAR配置WDGM模块
Wdg MFailed Alive Supervision Ref Cycle Tol对该被监督实体具有不正确或者失败活监督的参考周期的可接受量。Wdg MInternal Checkpoint Initial Ref关联被监督实体的初始检查点。Wdg MInternall Checkpoint Final Ref关联被监督实体的最终检查点。Wdg MExternal Transition Dest Ref关联外部转换的目标检查点。Wdg MDeadline Start Ref计算截止时间的开始检查点。
2025-12-04 08:29:17
440
原创 ZSAR配置DIO模块
新建DioChannel的话就是单个通道,只需要填写个Dio Channel Id通道ID。新建DioChannelGroup就是通道组,只需要填写个掩码。下面有多个DioPort有自己的Dio Port Id。Dio Dev Error Detect开发者错误检测。Dio Version Info Api获取版本接口。
2025-12-04 08:27:50
181
原创 ZSAR配置DLT模块
Dlt Default Max Log Level接收消息(应用层SWC到DLT模块)的最大日志级别。Dlt Header Use Extended Header头部是否扩展。Dlt Message Buffer Size Dlt消息的缓冲区大小。Dlt Header Use Session ID头部使用会话ID。Dlt Header Use Timestamp头部使用时间戳。Dlt Header Use Ecu Id头部的大小端。Dlt Ecu Id起个自己喜欢的名字。
2025-12-03 17:04:40
185
原创 ZSAR配置WdgIf模块
Wdg If Dev Error Detect开发者错误检测。Wdg If Version Info Api获取版本接口。Wdg If Device Index设备索引。
2025-12-03 17:04:07
214
DvDeveloperAdaptive-win32.win32.x86-64-2.19.13.51022de安装包
2025-08-30
vector Interaction Layer
2025-07-12
恒润科技CAN-Spec
2025-07-11
Vector CAN驱动程序培训材料
2025-07-11
C语言有入参无返回值
2024-12-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅