- 博客(355)
- 收藏
- 关注
原创 报文发送机制和模式
报文内所有信号的ComFilter的信号滤波结果相或,得到的结果就是报文的滤波结果,滤波结果为False就执行ComTxModeFalse里面的ComTxMode,滤波结果为True就执行ComTxModeTrue里面的ComTxMode。MaskedNewEqualsX:跟掩码ComFilterMask置起的那几位相与,得到的结果为ComFilterX,信号滤波结果为Ture。NewIsOutside:除了ComFilterMin和ComFilterMax之间的范围(开区间),信号滤波结果为Ture。
2025-12-19 14:09:11
310
原创 达芬奇ADC模块
AdcLowPowerStatesSupport硬件提供低功耗状态管理,使能所有电源状态管理相关的接口ADC_GetCurrentPowerState ADC_SetPowerState/ADC_GetTargetPowerState ADC_PreparePowerState/ADC_Main_PowerTransitionManager。ADC_GROUP_REPL_ABORT_RESTART:如果当前组被更高优先级的组抢断,在高优先级组转换完成后,当前组所有的通道的本轮转换将重新开始。
2025-12-19 14:08:41
310
原创 调试能收到CAN报文,不调试不能收到
按照原理来说,报文进来之后会优先分配给object ID小的那一个硬件对象,结果canif层关联的是object ID大的那一个,在单板上面自然运行不起来。调试的时候收发器一直在收报文,当object ID小的那一个硬件对象的缓存区满了,就会存入object ID大的那一个硬件对象,所以在调试的时候上层能收到对应的报文。就查询MCAL层的配置,初始化正常,能进入中断回调,中断回调当中有接收到A报文,就是报文分发的时候出问题。在canif层判断接收到的报文,如果是A报文,就把标志位置起来,发现并没有置起。
2025-12-18 14:40:04
159
原创 PIT和STM
它包括一个专用的实时中断定时器(RTI:Real Time Interrupt),它运行在一个单独的时钟上,可用于系统唤醒。它们加载它们的起始值,就像在它们的LDVAL寄存器中指定的那样,然后倒数直到它们达到0,然后它们再次加载它们各自的起始值。1个32-bit的向上计数器,具有8位的预分频器,4个32位比较通道,每个通道的独立中断源,可进行0–256级分频。可以修改运行计时器的计数器周期,首先禁用计时器,设置新的负载值,然后再次启用计时器。如果需要,计时器的当前计数器值可以通过CVAL寄存器读取。
2025-12-17 10:53:49
663
原创 周立功ZXDOC脚本编写
通道模块用于通道的管理、数据传输等。测量模块用于管理测量的启动/停止,也可以通过on_status_changed()函数监听测量状态的变更。如果脚本定义了__zxdoc_on_exit__()函数,则脚本停止时会执行它。脚本加载后,会执行__zxdoc_main__()函数。通过信号模块可以设置信号值、监听信号值等。三、测量模块(measurement)八、标定模块(calibration)四、通道模块(channel)七、信号模块(signals)六、设备模块(device)一、主模块(ZXDoc)
2025-12-05 10:25:19
293
原创 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
388
原创 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
160
原创 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
160
原创 ZSAR配置WdgIf模块
Wdg If Dev Error Detect开发者错误检测。Wdg If Version Info Api获取版本接口。Wdg If Device Index设备索引。
2025-12-03 17:04:07
192
原创 ZSAR配置BSWM模块
BswMAvailableActions下面可以选择对具体模块的操作,可以选择很多动作,常用模式切换和通讯开关,在这里不再赘述。Bsw MRule Init State初始化后要使用的规则的“先前计算结果”,决定了判断操作列表是否执行的先前的值是多少。Bsw MCondition Mode用于该条件的模式请求端口,选择下面BswMModeRequestPort里面的内容。只有一个Bsw MBsw Requested Mode包含BSW模块可以请求/指示的某种模式/状态的符号名称作为字符串。
2025-12-02 13:42:46
749
原创 ZSAR配置IoHwAb模块
Arc Io Hw Ab External Device Driver Ref如果是外部,引用下面的ArcIoHwAbExternalDeviceDriver。Arc Io Hw Ab Scaling Ref引用下面的ArcIoHwAbScaling,里面有个算法,乘以多少偏移多少。Arc Io Hw Ab Dio Channel Ref如果是内部,引用DIO模块的配置。Arc Io Hw Ab Adc Group关联ADC模块里面的硬件单元下面的ADC组。
2025-12-02 13:42:08
330
原创 ZSAR配置Port模块
Port Set Pin Direction Api使能Port_SetPinDirection()接口。Port Set Pin Mode Api使能Port_SetPinMode()接口。Port Pin Direction Changeable能否改变方向。Port Pin Mode Changeable引脚模式能否改变。Port Pin Id这个才是重要的,决定是哪个硬件引脚。Arc Port Pin Slew Rate引脚速率。Port Pin Direction方向。
2025-12-01 08:21:18
207
原创 Python脚本将Blf格式文件转换为Asc格式文件
2、在跟blf文件同一路径下新建Python文件,命名自己定义,将具体代码复制到文件当中。3、执行Python文件,就会在同一路径下生成一个新的Output.asc文件。1、将blf文件命名改为Input.blf。
2025-12-01 08:20:05
925
原创 ZSAR配置NM模块
Nm Passive Mode Enabled使能支持BusNm的被动模式。Nm State Change Ind Enabled使能NM状态更改通知。Nm Pdu Rx Indication Enabled使能接收报文指示。Nm Node Detection Enabled使能节点检测。Nm Node Id Enabled使能NM报文的节点源ID。Nm Com Control Enabled使能控制通讯。Nm User Data Enabled使能用户数据支持。
2025-11-27 08:55:56
207
原创 ZSAR配置LINSM模块
LinSMSchedule里面的Lin SM Schedule Index Ref引用LINIF模块对应的调度表。Lin SM Confirmation Timeout对LinIf的goto sleep和wake调用的超时。Lin SM Com MNetwork Handle Ref关联COMM的通道。Lin SM Main Processing Period主函数调度的周期。Lin SM Dev Error Detect开发者错误检测。Lin SM Version Info Api获取版本信息。
2025-11-27 08:55:13
195
原创 ZSAR配置SPI模块
Spi Main Function Period轮询调用Spi_MainFunction_Handling。Spi Hw Status Api使能Spi_GetHWUnitStatus接口。Spi Channel Assignment关联上面的SpiChannel。Spi Device Assignment关联上面的device。Spi Ib NBuffers内部buffer下最大的长度。Spi Job Assignment关联上面的SpiJob。Spi Cancel Api使能Spi_Cancel接口。
2025-11-26 08:52:27
327
原创 ZSAR配置LINIF模块
Lin If Startup State启动后LIN通道的状态normal还是sleep。Lin If Com MNetwork Handle Ref关联COMM的通道。Lin If Checksum Type经典校验还是增强校验。Lin If Channel Ref关联LIN模块的通道。Lin If Frame Ref引用linif层的报文。Lin If Entry Index序号。Lin If Length报文长度。Lin If Pid报文PID。Lin If Delay延迟。
2025-11-26 08:51:12
435
原创 ZSAR配置Wdg模块
这三个有就行,除了WdgSettingsOff没有配置以外,另外两个只需要配置个超时时间。Wdg Initial Timeout初始化超时时间,也就是第一次超时。Wdg Max Timeout最大超时时间,第二次及往后的超时。Wdg Dev Error Detect开发者错误检测。Wdg Version Info Api获取版本信息。Wdg Default Mode默认模式。
2025-11-25 10:12:02
137
原创 ZSAR配置DCM模块
Dcm Dsp Data Read Data Length Fnc 获取DID的数据长度的接口,收到22服务请求之后,在调取Dcm Dsp Data Read Fnc 接口之前,先调取这个接口,获取到动态/静态的数据长度,获取到长度之后再输出给诊断仪。Arc Dcm Dsd Sid Condition Check Fnc回调函数,执行到这个服务就执行回调函数仅用于OBD的04服务,平时不配置,不太理解这个。
2025-11-25 09:55:05
613
原创 ZSAR配置LIN模块
Lin Channel Ecu MWakeup Source引用ECUM模块的唤醒源。Lin Channel Wakeup Support是否支持唤醒功能。Lin Dev Error Detect开发者错误检测。Lin Version Info Api获取版本接口。Lin Channel Baud Rate波特率。Lin Channel Id通道ID。下面只有一些LinChannel。
2025-11-24 09:32:41
350
原创 ZSAR配置DEM模块
Dem Operation Cycle Type操作循环,DEM_OPCYC_IGNITION点火周期/DEM_OPCYC_OBD_DCY OBD驾驶循环/DEM_OPCYC_OTHER其他周期/DEM_OPCYC_POWER电源周期/DEM_OPCYC_TIME时间周期/DEM_OPCYC_WARMUP暖机周期/DEM_OPCYC_ACTIVE主动检测周期。FAIL_DURING_FAILURE_OR_AGING_CYCLE:如果事件在失败或失败期间合格为FAILED,则清除计数器老化的周期。
2025-11-24 09:31:56
353
原创 ZSAR配置MemIf模块
Mem If Number Of Devices下面有多少个EA和FEE模块。Mem If Version Info Api获取版本接口。Mem If Dev Error Detect开发者检测。
2025-11-23 09:44:28
211
原创 ZSAR配置Gpt模块
Gpt Wakeup Functionality Api使能唤醒功能相关的Gpt_SetMode/Gpt_EnableWakeup/Gpt_DisableWakeup/Gpt_CheckWakeup接口。Gpt Enable Disable Notification Api使能Gpt_EnableNotification和Gpt_DisableNotification接口。Gpt Time Remaining Api使能Gpt_GetTimeRemaining接口。Gpt Channel Id通道ID。
2025-11-23 09:43:43
114
原创 ZSAR配置DET模块
Det Forward To Dlt当这个存在并设置为true时,Det才需要Dlt接口并将其调用转发给函数Dlt_DetForwardErrorTrace。Det Ramlog Size在ram里面开辟一个log区域,这个区域可以打印多少项。Det Number Of Callbacks在DET中注册的回调数。Det Use Std Err将错误记录到STDERR。Det Use Ramlog将错误记录到ramlog。Det Wrap Ramlog到达结尾的时候进行打包。
2025-11-22 11:15:33
136
原创 产品存储方案
1.存储区可能会有异常,一般需要增加备份区域2.数据写入可能会导致乱掉,可以使用CRC校验保证数据完整性3.延长存储器使用寿命,减少写入次数,可以在写入前判断数据是否有变化。
2025-11-22 11:14:18
312
原创 ZSAR配置ECUM模块
ECUM_E_CONFIGURATION_DATA_INCONSISTENT发生ECUM_E_CONFIGURATION_DATA_INCONSISTENT配置数据不一致的错误产生DTC。ECUM_E_ALL_RUN_REQUESTS_KILLED发生ECUM_E_ALL_RUN_REQUESTS_KILLED所有请求被杀死的错误产生DTC。ECUM_E_RAM_CHECK_FAILED发生ECUM_E_RAM_CHECK_FAILED检查RAM错误产生DTC。
2025-11-21 19:12:45
163
原创 ZSAR配置CANSM模块
Can SM Bor Time Tx Ensured检查busoff的持续时间。这个配置项理解有点特别,在busoff恢复起来之后,CANSM还不认为恢复成功,需要通过发送PDU来确定恢复成功,而且并不是有应答就算恢复成功,而是需要PDU发送成功一段时间才认为CAN总线恢复起来了。Can SM Mode Request Repetition Max请求重复的最大次数,控制唤醒,busoff之类的。Can SM Bor Counter L1To L2从快恢复L1切换到慢恢复L2的计数次数。
2025-11-21 19:06:12
107
原创 ZSAR配置CANTP模块
Can Tp Rx Addressing Format canid格式是扩展帧还是标准帧,填mix也当做扩展帧。里面唯一的配置项是Can Tp Tx Fc NPdu Ref引用ECUC的全局PDU,下发给PDUR,不太理解。Can Tp Nar/Can Tp Nbr/Can Tp Ncr/Can Tp STmin都是时间参数。里面唯一的配置项是Can Tp Rx NPdu Ref引用ECUC的全局PDU,从PDUR转发上来的。里面唯一一个配置项是Can Tp NSa就是扩展帧的canid。
2025-11-19 17:56:37
426
原创 rtaoscfg配置ScheduleTable
这个时候不会立即开始执行下一个调度表,而是需要等待Offset = 1的时间,才会开始执行下一个调度表。一个周期为10的调度表,只有两个到期点,Initialoffset为3,FinalDelay为3。可以分为普通表和同步表,同步表再分为隐式同步表和显式同步表,同步表比较复杂,一般用普通表就够了。非抢占:所有任务都是非抢占式的,也就是说,只有当任务通过等待或终止释放CPU时,才会发生任务切换。全抢占:所有任务都是抢占式的,即在任何时候,具有最高优先级的就绪任务都将被执行。
2025-11-19 17:56:17
1111
原创 Autosar BSWM
在ECUM启动的时候,startup_two步骤,BSWM模块会执行NVM_readall接口读取NVM里面的内容,判断是否应该将COMM模块的通讯状态改为FULL。模式控制通过在其他BSW模块上执行模式切换操作的“操作列表"来执行模式切换操作。一模式仲裁用户规则会根据“模式谙求"从配置中启动模式切换操作。
2025-11-18 23:16:01
191
原创 Autosar ECUM
1、上电进入STARTUP状态,执行StartPreOS步骤,一般是先在EcuM_Init里面调用EcuM_AL_DriverInitOne接口,将ADC之类的外设进行初始化。调用StartOS接口,等待OS起来之后,ECUM重新获得控制权,执行StartPostOs,执行OS里面的启动任务,在EcuM_StartupTwo接口里面调用SchM_Init、BswM_Init接口。对于Flexible模式,EcuM只需要完成列表0和1中各模块的初始化,而后两个列表中的模块初始化需要由BswM模块来实现。
2025-11-18 23:09:22
923
原创 rtaoscfg配置Counter和Alarm
闹钟被绑定到一个计数器,并在达到某个计数器值时过期,将导致以下四种活动之一:产生事件,激活任务,执行回调函数,软件计数器增量。Seconds Per Tick硬件Counter一个tick的时间,单位为秒,我们这个是软件时钟,所以不用配置。计数器是单调递增的整数变量,由硬件定时器驱动,按固定频率递增(如每 1ms 加 1),为系统提供时间基准。Minimum Cycle不是Counter自身的最小循环,是计数器关联的Alarm的最小循环。有硬件计数器和软件计数器,软件计数器用得比较多。
2025-11-17 08:24:24
687
原创 rtaoscfg配置Application和Application mode
Delay timing violation call在受信任的OS-Application中发生的时间冲突是立即引发,还是延迟到当前任务返回到调用OS-Application(CallTrustedFunction的返回)true:违例/调用ProtectionHook被延迟 false:时间冲突导致立即调用ProtectionHook。它本质是一组相关资源的集合,包含:任务/ISR/资源索/计数器/闹钟等。后面的几个,都是关联到的才需要选择,譬如需要将Task放到不同的核里面,就需要关联上。
2025-11-17 08:23:09
404
原创 rtaoscfg配置Resource
实现核内资源互斥访问的一种手段,可以对临界资源起到绝对的“原子操作”的保护。如果是task获取资源锁,则会临时将该task优先级提高到所期望获取该资源锁的task的最高优先级,屏蔽掉所有期望获取该资源锁最高优先级及以下优先级的的二类中断。如果是二类中断的话也是同理,把该中断等级提高到期望获取该资源锁的中断的最高优先级,屏蔽掉自身以下优先级的二类中断。资源的优先级总是高于使用它的所有任务的优先级。内部资源Internal Resources是在进入任务时自动锁定并在任务结束时自动释放的资源。
2025-11-15 10:21:54
254
原创 OS源码分析
Os_ModifyPeripheral8/Os_ModifyPeripheral16/Os_ModifyPeripheral32操作外设寄存器,分开操作8/16/32位寄存器。Os_WritePeripheral8/Os_WritePeripheral16/Os_WritePeripheral32写入外设寄存器,分开操作8/16/32位寄存器。Os_ReadPeripheral8/Os_ReadPeripheral16/Os_ReadPeripheral32读取外设寄存器,分开操作8/16/32位寄存器。
2025-11-15 10:21:21
849
原创 rtaoscfg配置Event
SetEvent(TaskType TaskID, EventMaskType Mask):设置指定任务的事件,可以由任务或ISR调用。用于触发或设置一个事件,使得等待这个事件的任务获得执行的机会。用于清除一个已经触发的事件,以便任务可以在将来继续等待这个事件。扩展任务在进入等待状态时可以指定一个或多个事件,任务在等待条件满足(事件被设置)前处于等待状态。事件允许任务等待特定条件或信号的情况下进行状态切换,从而实现任务的高级同步和协调。任务或ISR在适当的时机触发事件,使等待该事件的任务苏醒并继续执行。
2025-11-14 09:32:55
422
原创 rtaoscfg配置Spinlocks
自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,不断尝试获取锁,直到获取到锁才会退出循环。相对于资源锁,自旋锁一般用在核间,不建议在同一个核内两个地方使用同一个自旋锁不然会产生死锁,但同一个核可以使用多个自旋锁。Successor Spinlock指明链表当中下一个Spinlock。Locking method锁的方法。放到哪个应用程序当中。
2025-11-14 09:32:32
408
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订阅