- 博客(242)
- 资源 (17)
- 收藏
- 关注

原创 15765-3/14229-1-UDS刷写Bootloader笔记
本文笔记来自于ISO15765-3-2004中文版和1422-1-2013中文版,2020英文版, 感谢以上资源!笔记仅用于自己学习及大家参考~~目录9.7 上传/下载功能单元9.7.1 请求下载服务(RequestDownload)(0x34)9.7.2 请求上传服务(RequestUpload)(0x35)9.7.3 传输数据服务(TransferData)(0x36)9.7.4 请求传输退出服务(RequestTransferExit)(0x37)UDS刷写流程ECU启
2021-12-27 14:38:03
8220
11
原创 Autosar Nm-网管报文PNC停发后无法休眠问题排查
Autosar Nm中针对于支持PN功能的收发器,要求PNC停发后允许进入休眠模式,开发过程中遇到PNC停发后无法休眠,本文对该问题进行排查与处理。由于我们没有使用CanTrcv模块,所以用标准流程会导致很多check不过,但是知道原理之后,怎么解决问题就很简单了~
2025-08-02 18:58:30
1014
原创 Autosar RTE实现观测量生成-基于ETAS软件
之前我们在XCP中,对于标定量和观测量并没有严格按照Autosar标准中定义,Autosar RTE中对标定量和观测量都有对应的定义,本文基于标准介绍观测量在ETAS软件中的实现。主要就是:1.SWC中的Port可以作为观测量,CS接口中的参数可以作为观测量2.SWC内部也可以定义观测量3.Nvmblock也可以作为观测量4.BSW模块中的通信变量也可以作为观测量观测量定义需要在中配置,规范原文如下:只有配置为的才能作为观测量,否则会被忽略作为观测量。
2025-07-20 19:54:59
692
原创 复杂驱动开发-TLE9471的PN唤醒配置
局部网络管理除了Autosar Nm,一般还需要特殊的CAN收发器支持。本文介绍TLE9471的局部网络(PN)唤醒的配置目前由于CAN DATA是任意为1时即可唤醒(遇到的CAN收发器基本都是这样),所以实际无法做到对应PNI和PNC同时满足时唤醒ECU,一般在收发器这边只配置PNI位,这样的话,ECU能唤醒,但是不会有通信。
2025-07-13 20:15:13
803
原创 Autosar CanSM配置-Busoff参数-基于ETAS软件
CanSM模块主要是配置Busoff相关的参数,客户需求一般会指定对应的快慢恢复参数。本文介绍相关参数的定义及配置Busoff在客户前期测试过程中还是非常重视的,需求也非常明确,需要保证需求开发和测试对的上,否则出了问题,给客户解释就比较费劲了~
2025-07-13 20:05:07
178
原创 32次错误帧无法触发busoff问题排查
BusOff是CAN总线中常见的错误, Autosar中有CanSm模块来处理Busoff的快慢恢复。BusOff测试一般使用专用的测试工具VN6501,结合Canoe中的测试工程可以快速进行Busoff快慢恢复的测试。本文介绍开发过程中32次错误帧无法触发Busoff快恢复问题排查。在测试过程中,理清需求,找准测试方法很重要,不过在实际项目中,实施起来可能比较困难,所以如何高效沟通,也显得十分重要了~
2025-07-06 15:23:24
476
原创 复杂驱动开发-TLE9471的休眠流程与定时唤醒
开发SBC时非常重要的一环就是开发休眠流程,其目的是为了保证接KL30的ECU在休眠模式下尽可能小的消耗低压蓄电池的电量,防止车辆放置长时间后出现亏电。而定时唤醒功能在部分ECU中会有需求休眠后定期对车辆状态进行检查。本文介绍TLE9471的休眠流程及定时唤醒的配置对于不同的唤醒方式,需要知道对应的唤醒原因,以便APP做对应的逻辑,在9471中,可以在初始化时通过WK_STAT_0寄存器获取唤醒原因,一般就是硬线唤醒/网络唤醒/周期唤醒。
2025-06-28 19:28:28
305
原创 Hightec生成tricore lib及lib的使用方法
使用Greenhills生成Lib并使用Lib的两种方法本文基于TC3xx介绍Hightec生成lib及使用lib的方法,其他芯片也可以参考大部分编译器的命令都是类似的,遇到问题可以多查手册,加上问deepseek/chatgpt,应该很快就可以搞定~
2025-06-21 20:28:58
1040
原创 S32K324 信息安全开发-Hash256及RSA2048实现
之前使用软件的Hash256和RSA2048算法,在HSE中也有对应的硬件实现,本文介绍这两种算法的配置及实现RSA算法作为非对称加密的典型算法,目前在软件刷写中应用十分广泛(私钥加签,公钥验签),如果硬件支持该算法,使用硬件算法也可以提高算法执行的速度。
2025-06-15 17:53:56
220
原创 TC3xx学习笔记-启动过程详解(二)
TC3xx学习笔记-启动过程详解(一),本文接着基于英飞凌ILLD库介绍软件的启动过程IFX中的启动流程,有很多都没有起作用,例如PLL,BISI,SMU,Cache等,在__Core0_start中还有一些初始化之后,才会跳转到main函数中,后面会继续介绍。
2025-06-15 17:40:03
710
原创 TC3xx学习笔记-启动过程详解(一)
之前介绍过UCB BMHD的使用,它在启动过程中起着重要的作用,本文详细介绍TC3xx的启动过程中的硬件启动阶段-Boot Firmware硬件Firmware启动需要Check BMHD,在开发过程中,通过四个BMHD设置不同的起始地址(第一个BMHD设置为Boot起始地址,后面设置为APP起始地址),可以实现Boot不存在时,单APP也可以正常启动。跳转到BMHD的起始地址后,后面的启动过程就是用户可以修改的了,后面会再介绍~
2025-06-02 19:31:25
1246
原创 S32K3开发问题-ADC采样电压一直为5V原因分析及处理
在新项目开发过程,出现了一个ADC通道采样值一直为异常5V,本文记录分析问题出现的原因及解决方案对于MCAL中的每一项配置,应该都是有意义的,但是所有的配置项全部弄清楚也需要大量的时间和实践,所以一般对重要的配置搞清楚,其他配置大致知道是干啥的就很不错了,这样出了问题排查起来也会是很快的。
2025-05-24 19:00:53
512
原创 Autosar Nvm下电存储实现方式-基于ETAS工具
Nvm中存储的数据,一般有两种存储方式,一个是立即存,一个是下电存,之前介绍过立即存的配置,本文介绍下电存的配置及实现
2025-05-17 18:19:30
378
原创 TC3xx学习笔记-UCB BMHD使用详解(二)
TC3xx学习笔记-UCB BMHD使用详解(一)本文接着介绍BMHD中的ORIGN和COPY的作用及使用BMHD中最后一个字段为CONFIRMATION,如下所示其定义如下:目前配置的为0x43211234,也就是解锁状态每个UCB都有自己的访问控制。从UNLOCKED到CONFIRMED状态的转换可以在不擦除UCB的情况下完成。为此,UNLOCKED状态下,可以直接写Confirmation,但是必须是0x57B5327。
2025-05-17 18:17:57
1119
原创 使用Simulink开发Autosar Nvm存储逻辑
之前介绍过Simulink开发Dem故障触发逻辑,本文接着介绍另外一个常用的功能-Nvm存储的实现。使用Simulink Nvm模块可以减少一部分Nvm相关的RTE接口,能够节省一部分存储交互的工作量。
2025-05-10 20:36:33
1036
原创 TC3xx学习笔记-UCB BMHD使用详解(一)
AURIX Tc系列Mcu启动过程,必须要了解BMHD,本文详细介绍BMHD的定义及使用过程本文介绍了BMHD的定义,后面还会继续介绍BMHD的ORIGIN和COPY的用法,以及密码保护的使用。
2025-04-26 21:12:12
1111
原创 快速从S32K358切换到328
项目中可能需要使用328,但官网demo和开发版基本都是基于358,但358和328的核心分布不一样,正常使用的逻辑核在328是核0和核1,而在358中是核0和核2(核1默认为锁步核)。本文介绍MCAL配置及软件如何快速从358切换到328如果想328的软件完全兼容358,可以考虑把核1的锁步解锁,这样核1也作为逻辑核使用,理论上来说就可以把328的软件直接刷到358上运行了。
2025-04-20 19:26:06
527
原创 Autosar Nm开发问题-部分网络管理报文无法维持网络唤醒
Nm唤醒一般都是在一个报文网段内,例如,也就是这些报文都是可以唤醒ECU的,本文介绍在项目开发过程中遇到的Nm唤醒的问题及解决方案Nm报文中的后两位表示Node ID,每个节点的Nm报文不同,配置网段内的Nm报文都可以唤醒ECU,也就是说本ECU可以被多个其他ECU唤醒了。
2025-04-13 16:08:05
511
原创 基于ETAS工程生成RH850P1HC的MCAL CAN代码
由于瑞萨官网的RH850P1XC的MCAL中未提供CAN模块,所以CAN需要另外第三方(例如ETAS)提供,本文介绍ETAS对应的实现方案。瑞萨芯片目前量产并未使用,只是暂时记录下CAN相关的开发。
2025-04-06 19:57:44
253
原创 1101复位之后故障仍保持原因分析
项目过程中,客户端测试出现某个故障在触发后,故障状态恢复,但DTC无法恢复,甚至在1101复位或重新上下电后也无法恢复,本文分析该问题出现的原因,及对应的解决方案实际上该DTC在自检阶段是有设置Prepass的,但是由于DTC的TRC设置的不对,导致Prepass没起作用,修改TRC也能解决该问题。如果客户有需求要存储Testfailed位,那就需要认真核查每个DTC的Prepass/Pass条件了,不能出现重新上电fail位一直置位导致故障一直报出,重新上电还无法恢复的情况(除非故障一直存在)
2025-04-06 18:43:02
450
原创 Autosar OS配置-Timing Protection配置及实现--基于ETAS工具
在Autosar OS定义中,只有SC2和SC4支持Timing Protection(时间保护),本文介绍ETAS RTA-OS中的时间保护的配置及实现。通过OS配置可以实现task和isr的时间监控,但是参数配置一定要设置合理,防止出现误触发的情况。
2025-03-22 20:07:43
438
3
原创 S32K324 MCAL SPI波特率配置不对问题排查
项目开发过程中,MCAL SPI配置时发现实际配置的波特率和用逻辑分析仪采集的时钟频率对不上,实际的频率只有配置的一半,本文记录该问题的排查过程。S32K3中的很多外设都有类似的特点,就是第一个外设的性能最强,例如之前遇到的CAN0支持的Mailbox就比其他CAN通道的多,这次的SPI时钟源也是,只有SPI0的时钟频率最高。所以后面在芯片选型时,对于外设的差异,也是需要充分考虑的!
2025-03-22 20:06:50
656
原创 使用VisualStdio制作上位机(一)
1.达到什么目的呢本文主要讲怎么通过Visual Studio 制作上位机,全文会以制作过程来介绍怎么做,不会去讲解具体的c#等相关的基础知识。为了使上位机具有工程实际意义,给上位机加上CAN功能,能够通过CAN盒去接入CAN总线,从而通过上位机界面用户操作发送信息至CAN网络,同时解析CAN网络的一些信息在上位机界面进行显示。2.用到软件:Microsoft Visual Studio Professional 2022 (64 位)3.语言:c#,有一点儿基础就好。
2025-03-16 20:09:55
300
原创 Autosar 诊断开发-CAN到CANFD的更改-基于ETAS软件
从CAN切换到CANFD,如果不想重新进行cfggen的话,手动更改配置或许会更快一些,本文介绍诊断报文从CAN变为CANFD后,BSW模块中的更改。注:本文不介绍MCAL部分的更改,默认MCAL CAN已经配置好CANFD相关使用Autosar开发诊断,从CAN切换到CANFD还是非常方便的。
2025-03-08 17:29:23
512
4
原创 Autosar RTE配置-Port Update配置及使用-基于ETAS工具
在E2E校验中,需要对Counter进行自增,但每个报文周期不一样,导致自增的周期不一样。且Counter应该在收到报文之后才进行自增。基于这些需求,本文介绍使用RTE Port中的参数来实现。规范中原文如下:使用Update flag可以检查数据是否更新,这里需要注意的是,必须是非队列的数据,且必须是显示(explicit)的接口enableUpdate存在于的配置中。
2025-03-01 21:31:16
426
原创 使用Simulink中的IsUpdated获取Rport的更新状态
应用层开发过程中,对于接收到的信号,有一部分是来自于CAN上的,并不是每个周期数据都会更新,如果报文周期小于Runnable周期,则部分读取实际是没有意义的,所以有一个Update的标志,是非常有必要的。本文介绍在Simulink中配置Update flag及其使用。此处只介绍到Simulink及配置,对于生成的arxml中,也有对应的配置生成,导入Autosar配置工具之后,便可以查看对应的更新标志配置,及后面的接口mapping工作。
2025-03-01 21:24:53
519
原创 Autosar Com配置-Timeout配置及实现-基于ETAS工具
项目开发过程中,有需求在未接收到CAN信号时,采用默认值或者特定值,此时,一个可行的方案就是使用Com模块的中的Timeout,本文介绍其配置及实现Timeout有两个定义,一个是超时时间ComTimeout,一个是超时触发的回调函数ComTimeoutNotification超时时间配置的单位为秒,第一次超时的时间可以由ComFirstTimeout单独配置回调函数用来触发超时之后的逻辑。
2025-02-22 21:19:53
603
4
原创 2024年终总结
我把23年看做是打基础的一年,而24年主要是忙于项目的一年,基本上大部分时间都是忙着交付软件,写的一些文章也大部分都是项目中遇到的问题和解决方案,虽然空闲时间不多,但是还是基本保持着一周总结一篇到两篇文章发出。今年个人感觉进步还是很大的,至少遇到问题不会害怕了,心中也有底气不少,Bug肯定是处理不完的,能做的就是多积累经验教训吧,保证这个项目出的问题在后面的项目中不出现就不错了。
2025-01-29 21:45:42
572
原创 基于ETAS工具的AutoExtract实现方案
在RTE接口mapping更新之后,需要进行Ecu extract,在工具链中可以提取,也可以通过脚本调用进行提取,本文介绍这两种方法的使用使用脚本主要是为了后面实现自动化操作,如果是人为操作的话,单针对于ECUExtract,两种方式的执行时间没有太大差别~
2025-01-12 18:23:35
545
原创 基于ETAS工具的AutoConnect实现方案
Autosar软件架构设计中,Connect通常来自于Composition之间Component之间Component与Composition之间(Delegation connectors),还有一种PassThrough目前暂未使用。通过Connect实现Port信号的传递,所以在Mapping时需要十分小心。为减少mapping的工作量以及降低出错概率,本文介绍两种AutoConnect的方法。
2025-01-04 16:38:25
255
原创 使用Basic-CAN模式接收CANFD报文-基于ETAS工具
S32K324 CANFD报文接收超限分析,本文介绍使用BasicCAN方式,通过CANIF的过滤实现特定报文的接收通过软件过滤的方式,会增加CAN驱动接收的负载,因为使用Mask方式,难免会有不希望接收的报文进入CAN Driver,但是在硬件无法满足过滤的情况下,软件过滤也是一种合理的方法。
2024-12-29 15:08:23
997
2
原创 S32K324 MCAL中的Postbuild和PreCompile使用
之前一直看到MCAL配置中有这个Postbuild和PreCompile的配置,但是不太清楚这两个的区别和使用方法。最近在使用中出现了相关问题,本文介绍一下MCAL中这两种配置的区别和使用。合理使用Postbuild和PreCompile,可以减少代码的变种,也可以减少代码编译的次数。
2024-12-22 21:46:29
1107
原创 RH850P1X芯片学习笔记-Generic Timer Module (GTM)(5)-TIM
在检测到边缘后的即时边缘传播模式中,F_IN_SYNC上的新信号电平以一个TFLT_CLK周期的延迟传播到F_OUT,并且新信号电平保持不变,直到配置的接受时间到期。0011和CICTRL = 0:使用信号TIM_IN(x-1)作为通道x的输入(或TIM_IN(m-1),如果x为0)MODE_x(1) = 0, VAL_x(1) = 0:使用TIM通道位场CICTRL定义的输入信号作为输入源。MODE_x(1) = 0, VAL_x(1) = 1:使用TIM通道的TIM_AUX_IN信号作为输入源。
2024-12-21 22:12:30
965
原创 S32K324 Stack异常分析及解决方案
在项目开发过程中,在一次软件变更时,调整了task优先级之后导致应用层软件中的float数据经常性的变为NAN,导致应用层功能失效。本文记录下这个bug的分析及解决过程。该问题排查了好几天,最开始正向排查不出来,差点放弃了,ETAS OS也没有人支持,只能换一种思路,通过反向推,最终定位到问题,能完美解决,还是很欣慰的。遇到问题不可怕,Bug一直都会有,主要是在解决问题中的思路和方法,不断总结积累,总会越来越好的!
2024-12-21 19:23:46
340
原创 Greenhills Lib操作-查看Lib信息与将lib中的data段link到指定区域
项目开发过程中,遇到客户开发ASW,提供Lib进行集成,但ASW中的标定量没有定义对应的data段,导致无法将标定量指定到特定的内存。本文介绍将Lib中的data段链接到指定区域的一种方法。以及当我们拿到Lib后,如何获取Lib中的有用信息。示例中,ASW已有一部分标定量定义到指定的caldata段,其他还有一些文件中的data段未映射到data,将lib中的其他data段也映射到caldata上。.caldata :通过该方式,将lib中的data段重映射到caldata段。
2024-12-17 21:50:14
602
原创 MISRA C2012学习笔记(10)-Rules 8.15
但是,发生了从一个swtich 子句到另一个 switch 子句的跳转,而由于此规则的目的,将 switch 的子句视为代码块,因此这个 goto 语句是违规的。展开:为符合此规则的设计目的,将不包含复合语句(复合语句:{}括起来的语句)的 switch 子句也视为一个代码块(即不用{}括起来的 case 子句也被视为独立的代码块)else if 序列的序列是防御性编程,相似的,还有 switch 语句中对 default 子句的要求(请参见规则 16.5)。复合语句的使用显著地减少了发生这种情况的机会。
2024-12-08 19:55:39
1114
原创 S32K324 HSE使用注意事项
在HSE使用过程中,出现过一些必现和偶发的问题,本文总结一下问题原因和解决方案HSE使用过程中还遇到一些其他问题,下次再完善吧。
2024-12-08 19:52:17
797
原创 S32K324 信息安全开发-Secure Debug原理及其实现
车载信息安全对于MCU的要求越来越高,debug口作为直接刷写调试程序的通道,对其进行保护是非常有必要的。本文介绍基于S32K324的Secure Debug的开发。Debug保护作为信息安全实施的重要一环,可以防止未受信任的软件通过debug口刷写。
2024-12-03 19:08:11
869
原创 使用Simulink开发Autosar DEM诊断逻辑
Autosar Dem中一般使用两个函数来实现DTC的逻辑,一个是,用来设置DTC故障状态,一个是,用来获取当前的故障状态。Simulink中也提供了对应的模块,用来实现应用层中的故障DTC状态设置与获取,本文介绍其实现过程使用Simulink开发诊断,可以少一步应用层和底层的数据传递,逻辑开发也很简单。Simulink中除了Dem模块,还有Nvm的模块,有空可以再介绍。
2024-12-03 19:01:53
1450
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人