- 博客(27)
- 收藏
- 关注
原创 Autosar量产笔记索引:配置调试与避坑指南
这里做了一个索引,方便大家通过索引快速找到自己需要查看的文章。所有付费的文章都会列举在这里,如有有需要,订阅即可,订阅后,可以和博主一起交流学习。博主从事10年汽车行业,计划将自己学到的一些技术经验通过博文有偿分享,会不定时更新文章。
2026-07-02 11:23:18
373
原创 UDS之19服务快照与扩展数据篇
本文介绍了AUTOSAR中19服务(诊断事件管理)的快照(Snapshot)和扩展数据(ExtendedData)功能。快照用于记录故障发生瞬间的环境数据,通过DID组织,支持多组记录;扩展数据则记录故障历史信息,包括故障发生计数器、老化计数器等。文章详细阐述了二者的实现架构、配置方法(通过ARXML文件修改)和代码实现要点,并对比了1904(读取快照)和1906(读取扩展数据)服务的区别,包括快照组编号、掩码机制等关键技术细节。最后总结了当前平台对快照组数量的限制(最多两组)和典型扩展数据类型。
2026-07-29 16:13:59
138
原创 Autosar CAN&CANFD兼容模式
大部分客户切到CANFD格式时,就是CANFD 64byte自适应通信。改起来比较方便。少部分需要CANFD兼容CAN。这个时候就需要进行上面的操作。Autosar目前应该还不能实现通过配置直接实现,CANFD兼容CAN。需要手改协议栈。改成CANFD后,置于多少字节通信,比如有些客户还希望8字节通信,那么找到对应的文件修改对应的pdu长度即可。功能寻址,物理寻址都支持修改对应长度通信。
2026-07-27 19:57:32
139
原创 实现APP和Boot数据共享
日常开发中,有一些数据需要和boot共享,比如诊断开发中,有一些DID,APP和Boot需要同时读取,但是又不需要存储在NVM里面。这个时候,就可以通过一些方法来实现。而不需要去配置NVM,让BOOT和APP同时读取指定的NVM。大部分编译器都可以提供方法,比如通过Linker固定变量地址#pragma section farrom "shared_data" (表示放在far rom里面)xxx(共享变量)#pragma restore (这个意思就是到这里结束,后面的变量就不在是共享变量)
2026-07-27 19:51:50
16
原创 Autosar 10 02之APP里响应orBoot里响应
执行10 02会话时,以上就是全部内容,需要注意的是客户希望在APP回还是Boot回50 02。以及是否需要响应NRC78。对应的代码需要去调试来加深对整个跳转流程的理解。
2026-07-24 10:53:09
225
原创 Autosar 配置DID (只读DID和可读可写DID)
可读可写DID的属性和只读DID有些地方的配置不一样,比如DcmDspDataUsePort可读可写DID用的:USE_DATA_ASYNCH_FNC,只读用的USE_DATA_SENDER_RECEIVER。有些DID是用来写入一些需要存储的值的或者需要进行对一些参数的标定,比如车辆Vin码等,写完后,需要存入NVM,并且结合22服务可以读取出来。可读可写DID只需要配置BSW即可完成所有配置,里面的属性有配置相应的读和写的函数,在代码里面找到对应的读和写函数,然后在函数里面实现策略即可。
2026-07-24 09:08:24
309
原创 Autosar DCM配置 85服务
3.协议栈提供对应的开和关触发函数,如有额外需求,可以在触发函数里面写自己的逻辑。可通过下面的方法将状态获取出来。85服务的配置也比较简单,实际工作的时候,有可能ASW想要获取85控制通信的状态。这个时候需要找到协议栈代码里面的标准85 Enable和Disable函数,然后新增相关变量。一般刷写的时候,会使用28暂停正常通信,并配合85服务关掉DTC监控。UDS 85服务是用来开启或者关闭ECU对DTC的监控和存储功能,它的核心价值在于特定操作中,防止因通信中断或者总线负载变化而产生大量无意义的故障。
2026-07-16 11:15:43
114
原创 Autosar DCM配置 3E服务
3E即保持会话功能。通常进入扩展会话后,保持一定时间(比如5s),会话会自动切到默认会话。5s内,周期发送3E服务。会话就会一直保持在扩展会话。图片有一点不清晰,DcmDsdSidTabServiceID是填的0x3E。3E服务配置比较简单,实际使用也比较简单。本文将介绍基于ETAS Autosar工具链实现UDS 3E 服务。3E通常有子服务00。3E 00表示保持会话。2.配置3E子服务0x00。
2026-07-16 10:50:51
17
原创 Autosar DCM配置 31服务
比较需要注意的点是,需要和客户澄清清楚,RID对应的例程有哪些,如果Start,Stop,Results例程都需要。9.建立Runnables(实际代码中需要实现的函数),并且建立Event与之关联,新建runnable或者新建Event的时候,里面有些参数是BSW生成的,或者前面已经配置的,你双击新建的空白中,就会弹出来。5.另外配置例程的时候,下面还有个参数,选了TRUE之后,当会话跳转后(一般进入扩展会话,保持5s后,会自动跳到默认会话),会自动执行Stop例程。大部分31例程的配置,都介绍到了。
2026-07-16 10:50:42
213
原创 Autosar DCM配置 2F服务
2.一般2F配置时,都会涉及到对应的DID,和普通DID不同的是,在某些DID配置项中,支持2F服务的DID会比其它DID多一些参数配置。这里没有详细说明DID的配置,也没有说明和ASW交互的2F相关的接口的配置。需要注意的是,ETAS的配置工具可能还会有一些bug,比如配置字节的时候,不能选2byte方式,需要选16位的形式。2F服务,即IO Control,通常用来控制一些硬线信号,比如发1或者发0来控制某个继电器的开和关(诊断不直接控制,通过和ASW交互来间接控制)。就会生成对应的函数。
2026-07-15 08:50:40
140
原创 Autosar DCM配置 28服务
调试的时候,找到Autosar标准的28服务的子服务函数,进行打断点调试。2.配置对应的CAN通道,一般项目BASE都会配置好,从0开始配置的话,这一步需要做。这里的对象是目标产品,比如产品是BMS,则这里使能或者关闭都指的是使能或者关闭BMS报文的Rx或者Tx。28 01 03 开启应用报文和网络管理报文的接收,并关闭应用报文和网络管理报文的发送。28 02 03 关闭应用报文和网络管理报文的接收,并开启应用报文和网络管理报文的发送。28 02 01 关闭应用报文的接收,并开启应用报文的发送。
2026-07-15 08:49:31
215
原创 Autosar DCM配置 19服务
19服务的配置并不复杂,复杂的是结合DTC,进行各种操作时,会变的复杂。后面会出一篇文章来介绍涉及DTC的相关服务,相关功能,以及需要注意的点。从而来完整的了解DTC的触发到清除的过程,以及各子服务的功能和调试现象。4.UDS 19服务的配置,本身不复杂,以上就是全部。但19服务在结合具体DTC时,以及快照,扩展数据这些,对于没有经验的开发人员来说,还是有些复杂的,需要去调试,测试,来加深对协议栈的理解。7.按优先级的话,可需要提供每个DTC的优先级,配置的时候只需要优先级配的不一样就行。
2026-07-14 10:41:33
623
原创 Autosar DCM配置 14服务
比如客户看到正响应就认为DTC已经完全清除了,但是此时,DTC并没有再NVM里面清掉。对于14清DTC的动作和流程,是需要花时间梳理的。比如有一个点,执行14清DTC时,什么时间给响应。3.目前代码配置的方法b. 配置方法为a的时候,可能会带来一些bug,这个可能会工程有问题,或者协议栈有一些bug。有些客户是希望,完全清除完,再给出正响应的。a.清除完NVM里面的DTC,然后给出响应。(响应慢,擦写内存需要时间,DTC多的话,可 能需要1s)b.开始清除NVM里面的DTC时,给出响应。
2026-07-14 09:56:37
328
原创 Autosar DCM配置 11服务
11服务配置还是比较简单的,没有复杂的配置项。调试的时候用上位机去发送11 01或者11 03服务,可以观察到板子会复位。执行11 服务,程序会去调用对应的ECU Reset函数。程序如何调用的,后面再出高阶版。这里只介绍基本功能实现。本文将介绍基于ETAS Autosar工具链实现UDS 11 服务。2.这里配置了软件复位和硬件复位11 01和11 03。1.按照如下配置11服务。
2026-07-10 11:19:38
23
原创 Autosar DCM配置 27服务
每次生成完RTE,需要将相关的OS文件替换到OS路径下,然后用OS工具加载目标工程OS文件,再生成一遍OS。如果你的版本可以直接用ETAS工具生成,不需要专门的OS工具。这个时间的作用是:当27服务解锁失败达到最大次数时,比如该项目是3次,那么就开启一个10s的定时器,如果10s内还继续访问27服务,就回复NRC37。连续请求种子时,是回复相同的种子还是不同的种子。1.进行服务配置,这里配置了两个安全等级LV1和LV2 , 27解锁等级LV1对应27 01(请求种子)和27 02(响应秘钥)。
2026-07-10 10:25:06
292
原创 Autosar DCM配置 2E服务
这里如果引用了对应的解锁条件,比如上面的L1和L2,那么会有个NRC33(安全访问拒绝)优先级的问题,规范里面定义NRC13的优先级>NRC33。有些客户会严格按照如下标准规范执行,那么上面绑定需要解锁的地方就不要绑定了。如果某个写DID需要过27解锁,在具体执行DID的地方再绑定解锁条件。需要注意的是通常2E写DID时,需要过27解锁。后面介绍写DID时,会进一步说明。调试的时候,如果2E服务直接绑定解锁条件,当测试用例时2E后面什么都不跟的情况下,回的是NRC33, 但实际根据规范应该回NRC13。
2026-07-03 08:55:49
437
原创 Autosar DCM配置 22服务
22的服务配置比较简单,只需要BSW里面配置好,然后生成代码即可,22服务通常用来读取DID的,后面会介绍如何配置DID,然后结合22服务读取,查看效果。本文将介绍基于ETAS Autosar工具链实现UDS 22 服务以及实际使用展示。1.按照如下配置22服务。
2026-07-03 08:41:31
194
原创 QAC,TESSY
Tessy:通常可以用来做单元测试。可借助TESSY工具添加测试用例,来对源码进行覆盖度,期待结果等一些测试。测试的对象,主要针对某个.c文件里面的所有函数。再对函数进行UT测试时,里面涉及调用外部函数时,需要对这些外部函数进行打桩。TESSY可以很方便的进行打桩。如果不使用TESSY工具进行打桩,也可以在源码里面用宏定义开关,来编写UT测试代码。对需要打桩的函数,进行编写。QAC: 通常用来做静态代码检测。源码不符合规则的,需要修改源码。测试的过程,源码是不改动的,所以称之为静态代码检测。
2024-09-25 11:35:19
1170
原创 EB MCAL --- S32K3xx_GPT
2.S32DS工具中配置时钟实例,外部晶振焊接了24Mhz。IPS_PLAT_CLK最高120Mhz. 由此可见每个系统时钟节点的时钟频率不能随意设置,需要根据手册中的参数进行设置。Slow external crystal oscillator (SXOSC) 低速外部晶振 (部分S32kxxx封装系列不支持)Slow internal RC oscillator (SIRC) 低速内部RC (用于看门狗等)Fast internal RC oscillator (FIRC) 高速内部RC。
2024-07-01 17:37:56
512
原创 NXP S32k3 MCAL GPT定时器配置
PIT时钟源为AIPS_SLOW_CLK,其中RTI时钟为SIRC_CLK,用于在standby模式下唤醒MPU。PIT共有3个instance,每个instance又有4个channel。其中PIT_0可以被连接成为一个64bit的定时器(正常为32bit定时器)。PIT定时器为向下计数器,counter值写在LDVAL registers中。
2024-04-10 17:15:22
1740
1
原创 echo命令 编辑hexview脚本实现hex,s19转换
:如果target.hex存在,执行HEXVIEW,Target1.hex地址偏移399,然和和target.hex合并,输出新的Final.hex文件。::这里的%1表示输入参数,比如将要处理的文件拖到这个脚本上,那%1就等于要处理的文件名称以及它的路径,注意这里有个():: 这里确定hexview的执行路径,可以换成自己的绝对路径。::将hex偏移99999,后转成s19文件。:: 这里是要输出保存的目标文件位置和名称。::将Hex转成s19文件。
2023-06-08 16:46:30
1679
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅