自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 XCP04- 页面选择命令PAG

XCP协议页面管理命令摘要 XCP协议提供了一组页面管理命令用于控制标定页面的访问: SET_CAL_PAGE (0xEB):设置标定页面模式,包含ECU和XCP两种访问模式,可单独或同时设置。参数包括模式位掩码、逻辑数据段号和页号。 GET_CAL_PAGE (0xEA):获取当前激活的标定页面逻辑号,仅支持ECU(0x01)或XCP(0x02)两种访问模式。 GET_PAG_PROCESSOR_INFO (0xE9):获取页面处理基本信息,包括最大段数和页面属性等。 GET_SEGMENT_INFO (

2026-03-11 19:14:55 39

原创 XCP03- 标定命令 CAL

本文介绍了CCP协议中的四种数据下载命令:0xF0标准下载命令(支持标准/块传输模式)、0xEF连续下载命令(用于长数据分段传输)、0xEE最大块下载命令(固定长度数据传输)以及0xED短数据下载命令(单指令包含地址和数据)。详细说明了各命令的报文格式、参数定义和使用限制,并通过通信时序示例展示了命令的具体应用场景。其中连续下载命令特别针对超过255字节的大数据量传输需求进行了优化设计,而短数据下载命令则实现了地址与数据的同步传输功能。

2026-03-11 19:12:39 141

原创 XCP01- 协议层

XCP协议是一种用于汽车电子系统标定和测量的通信协议,包含两种基本数据包类型:CTO(控制命令传输对象)和DTO(数据同步传输对象)。CTO用于通用控制命令传输,包括CMD(命令)、RES(响应)、ERR(错误)、EV(事件)和SERV(服务请求)五种格式。DTO用于同步数据采集(DAQ)和同步数据刺激(STIM),通过ODT号标识数据内容。协议提供标准命令(如连接/断开)、校准命令(如下载数据)和页切换命令三大类功能,支持主从结构的通信模式,具有明确的错误代码和事件处理机制。

2025-12-05 21:07:12 97

原创 ARCH-05 CAN Stack

本文介绍了AUTOSAR架构下的CAN通信栈家族,包括CAN/CAN FD、CAN XL、TTCAN和J1939四种类型。CAN通信栈由驱动层、抽象层和服务层组成,不同CAN类型需求模块各不相同。CAN/CAN FD提供基本通信功能;CAN XL兼具传统CAN和以太网通信能力;TTCAN通过时间触发机制实现确定性通信;J1939则扩展了重型车辆专用通信功能。文章详细阐述了各类CAN协议的特点、架构差异和应用场景,其中CAN XL和TTCAN作为CAN的扩展集,只需在特定模块进行功能扩展即可实现兼容。J193

2025-12-05 21:02:38 193

原创 ARCH-04 BSW服务层

本文介绍了汽车电子基础软件(BSW)服务层的核心功能模块。服务层位于BSW架构最上层,主要包含五大类服务:1)系统服务(操作系统、ECU状态管理等基础功能);2)通信服务(统一接口管理CAN/LIN等车载网络);3)内存服务(通过NVRAM管理器处理非易失性数据);4)加密服务(提供加密算法、密钥管理和入侵检测);5)其他服务(如V2X通信)。服务层为应用程序提供标准化接口,实现了硬件特性和协议的抽象,是整车电子系统的重要支撑平台。文中通过架构图展示了各服务模块的组成及相互关系。

2025-12-04 20:19:12 591

原创 ARCH-03 ECU 抽象层

ECU抽象层(ECAL)在AUTOSAR架构中的核心作用 ECU抽象层是AUTOSAR基础软件的关键组成部分,位于MCAL层与服务层之间,负责将ECU硬件细节标准化。其核心功能包括: 硬件抽象:统一I/O、通信、存储等硬件接口(如IoHwAb封装片上/板载IO,通信抽象层屏蔽CAN/LIN差异); 模块化整合:通过内存抽象(MemIf)、板载设备(看门狗)和加密硬件抽象(CryptoHAL),实现跨ECU的硬件无关性; 分层设计:与MCAL(寄存器级操作)互补,ECAL聚焦板级功能整合(如传感器读取、总线通

2025-12-04 20:17:27 253

原创 ld C代码库未定义段怎么将数据合并到一起

针对客户代码未按AUTOSAR标准进行内存分区的问题,可通过linker指令实现多核部署。当客户提供的foo.a库中包含foo1.c和foo2.c时,利用link指令按对象文件(obj)提取并归类bss/data段。具体方法:使用z/s/l修饰词标识bss段类型,如*.foo1.bss将foo1.obj的所有bss变量分配到指定核,同理处理data段(格式.foo1.data*)。rodata和text段处理相对简单,直接通过*.foo1.rodata*等模式归类。这种方法无需修改原始代码,即可实现不同源文

2025-12-03 20:47:40 68

原创 INCA01- 新建工程

同步选择 A2L 对应版本的 HEX 作为基准,这步很重要。hex 作为 database 的基准文件,后面的 CRC 校验都是以这个 hex 为基准。校验成功状态,datasets 的 CRC 与 ECU 中的 CRC 需要完全一致,这样后面才能标定。Database Objects -> 右键 -> Add top folder。默认是在 RP 上,无法标定,切换到 WP 才能标定。右键->Add-> Experiment。右键->Add-> Workspace。得到的工程所有的数据都在这个里面。

2025-12-03 20:44:32 293

原创 APE-04 ASAP Tools制作A2L

导入 elf。

2025-12-02 21:01:03 625

原创 APE-03 APE问题排查

本文总结了CAN APE问题排查的关键步骤:1)确认CAN通道硬件连接正确;2)检查波特率配置(500K/2000K或500K/5000K);3)核对3组CAN ID配对关系(6DF/6E2、682/683、6E0/6E1);4)进行连接测试验证;5)在OVC软件中启用page switching功能。排查时需重点关注硬件连接、通信参数匹配和软件配置三个维度。

2025-12-02 20:59:40 77

原创 APE-02 常用属性

本文介绍了ECU标定参数的保存与导入方法,以及标定量被锁定的三种常见情况及解决方案。主要内容包括:1)通过Calibration->Save功能将参数保存为par文件;2)使用Load from parameter set导入历史数据;3)针对标定量带锁问题,分别解决RAM/Flash区选择、Device未勾选以及Read only设置三种情况的操作步骤。最后建议若问题仍未解决可新建A2L工程处理。

2025-12-01 21:23:27 209

原创 APE-01 新建工程

CANape是一款用于电子设备开发、诊断和校准的全方位工具,具有在线测量、离线分析、诊断等功能。本文详细介绍了创建CANape工程的步骤:新建工程并命名、导入A2L文件、配置CAN通道(需注意通道编号和CAN格式匹配)、添加ELF文件获取参数地址信息、设置波特率和CAN ID。随后指导如何添加观测/标定量:搜索变量、拖入测量/标定窗口、配置trace窗口信号参数,并解决DAQ名称消失问题(需开启EVENT检测)。最后通过测试连接验证ECU通信是否正常。

2025-12-01 21:13:26 1579

原创 ARCH-03 ECU 抽象层

IoHwAb是比较特殊的Ecal层,它封装了IO 的Mcal ,但IO没有服务层,直接暴露在RTE中与 APP 的SWC交互。I/O 硬件抽象是一组模块,它从外围 I/O 设备(片上或板载)和 ECU 硬件布局(例如 μC 引脚连接和信号电平反转)的位置抽象出来。I/O 硬件抽象并不从传感器/执行器中抽象出来!,它实际是一组模块的组合,不限于MCAL提供的IO,也可能使通过I2C,SPI等通信扩展的板载IO,如Tle75xxx系列等。表示连接到 ECU 硬件的 I/O 信号(例如电流、电压、频率)。

2025-03-15 11:21:37 420

原创 【vscode-03】AUTOSAR CP 插件配置

vscode-commandbar和adamstool是我最爱的两个底部工具栏插件vscode-commandbar可以自定义底部工具栏图标的功能,还可以绑定脚本,可以参考嵌入式跨平台工具链终极方案-CSDN博客adamstool 简单但高效的工具栏代码的前进后退及打开命令窗口简单高效。

2025-03-15 11:19:01 561

原创 【vscode-01】vscode不同项目不同语言扩展插件隔离方案

常年月累,安装了太多太多的插件,但是这个插件又不是在所有的项目中都需要,我就在想:有没有一个很好的方案,让我在每个项目中使用指定的插件,而不是启动所有的插件。我觉得这种方法比code-workspace更好的地方在于,不同的项目使用不同的开发语言,冲根本上实现了隔离,让IDE保持清爽的界面,让我们更愉快的开发代码。新的profile 配置,发现是一个很干净的环境,如“白月光”一样的新vscode,这样就很“轻巧”了。,只能推荐使用某些插件,无法屏蔽禁用不需要的插件,那怎么办呢?如果没有提示,就执行命令板。

2025-03-13 20:52:46 2169

原创 【ARCH-02】 MCAL 与CDD Layer

Complex Drivers是指:即可以直接访问MCU的寄存器又做了ASW的逻辑处理的模块,功能对一些硬件特性或者时间要求敏感,无法通过分层的标准模块实现的功能,称之为复杂驱动。普通的板载外设并不复杂,不在这个概念之中。用于 SHE 或 HSM 等片上加密设备的驱动程序,通常用于信心安全加密使用,一般购买安全包集成,我们可配置的内容少,主要是调用接口做算法处理。Mcal是系统中直接与MCU直接交互的软件层,这一部分一般由各芯片厂商提供,在AUTOSAR中定义了汽车常用的芯片外设类型。

2025-03-13 20:48:44 436

原创 【EB-07】TC397 Tresos 导入通信ARXML

COM也有很多信号,两路DBC是一样的,导致名称无法区分,需要优化DBC生成ARXML配置。可以看到网络信号上增加了CAN 通道的标识符,这样避免不同dbc,通信号问题。EB Tresos不像其他工具会自动加入模块,需要我们手动去加入对应的模块。CAN模块可以看到导入了两路CAN。加入模块后再执行配置导入模块。再按之前的导入看下信号。优化ARXML的生成。

2025-03-02 12:12:28 951 3

原创 【UDS】0x86 service

UDS(统一诊断服务)中的0x86服务,即ResponseOnEvent(基于事件响应)服务,是一种特殊的诊断服务。这种服务主要用于ECU的前期开发阶段,在售后和生产中不常使用。客户端来指定事件(包括可选择的事件参数)以及要执行的服务(包括服务参数)。注意:上图假设在服务端下电之前事件窗口计时器(event window timer)配置成超时,因此最后ResponseOnEvent的肯定应答报文在事件超时窗口的最后才会显示。3E服务值至此0子服务,即00/80子服务,用于诊断保持会话,用于保持当前会话。

2025-03-02 12:10:45 429

原创 《我的AUTOSAR之路》ARCH-01 AUTOSAR分层软件架构的详细介绍

1. 引言2. AUTOSAR分层软件架构概述2.1 AUTOSAR分层软件架构的优势3. 应用层(Application Layer)4. 运行时环境(Runtime Environment, RTE)5. 基础软件层(Basic Software, BSW)5.1 微控制器抽象层(Microcontroller Abstraction Layer)5.2 ECU抽象层(ECU Abstraction Layer)5.3 复杂驱动层(Complex Drivers Layer)

2025-02-26 21:23:01 413

原创 【EB-06】SystemCreator dbc转arxml

EB Tresos 对dbc直接导入的支持不是很完善,dbc也不是AUTOSAR标准的数据库文件,EB建议所有通信矩阵通过ARXML交互比较合理(AUTOSAR定义的),如果使用dbc将CAN信息导入EB Tresos,会导致部分信息丢失,这样就要重复更改配置,对于工程开发不合理。为了解决这个问题,EB提供了一个工具"SystemCreator"可以将dbc直接转化为ARXML文件,然后作为通信矩阵输入给EB Tresos配置工具使用。Step4 : 生成的ARXML文件。里面的信息和我们配置的一致。

2025-02-26 21:19:34 1342

转载 CANdelaStudio与DaVinci Developer Classic的数据交互

也就是说,上诉诊断模块的配置信息可以在DEXT文件中定义和描述,并导入配置工具,如DaVinci Configurator Classic/Adaptive,进而生成对应模块的配置代码,从而简化软件的开发难度。DEXT不仅描述通过各自协议传输的数据,还包括ECU应用层软件中的初始数据。CANdelaStudio 21/22版本实现了与DaVinci Developer Classic进行数据交互的功能,完善了Vector诊断开发工具链的功能,提高了诊断开发的效率,并在提高质量的同时缩短开发时间。

2025-02-26 21:17:35 337

原创 【EB-05】TC397 Tresos 配置Dio模块

Dio的通道组定义与Port组定义相识,完全与芯片手册的Pxx定义一致,与Port不一样的是,不需要把设有的端口都定义出来,但是DioPortId需要与芯片手册的Pxx定义完全一致,如下图所示,Pxx没有3~9定义。单个Dio在Dio组中定义,单个Dio在Dio组中的定义与芯片手册一致,如P00.6,就是DioChannelId = 6,在DioPort_0组。Dio用于控制数组输出和数字输入端口,不涉及ADC,PWM等输入输出端口。校验将所有的错误修复,就可以生成代码。

2025-02-25 21:09:50 360

原创 《我的AUTOSAR之路》Det 解析

默认错误追踪器(DET):该规范描述了默认错误追踪器(DET)的API,所有在基础软件(BSW)中检测到的开发和运行时错误都会报告给该模块。API参数:API参数允许追踪错误的来源和类型,包括检测到错误的模块、函数和错误类型。功能实现:DET模块的具体功能实现由软件开发者和集成商根据具体应用和测试环境选择。可能的功能包括设置调试器断点、计数报告的错误、使用默认值处理运行时错误、在RAM缓冲区中记录调用和传递的参数、通过通信接口将报告的错误发送到外部日志记录器等。

2025-02-25 21:08:09 747

原创 【UDS】s19文件解析

S19(S-Record) 文件是一种广泛应用于嵌入式系统开发中的文件格式,摩托罗拉于1970s发明,主要用于存储程序的可执行代码和相关数据。它以文本格式呈现,便于人工阅读和修改,同时也易于被各种编程器和调试器读取和使用。S19 文件通常伴随着 Hex 文件,尤其是在微控制器编程领域中。S19 是一种用于记录二进制信息的文件格式,它以 ASCII 文本的形式存储了二进制数据的十六进制值。

2025-02-24 20:40:13 1790

原创 【UDS】HEX 文件解析

HEX文件是Intel规定的一种标准文件格式,通常用于存储程序代码或数据,以便在嵌入式系统中烧录到微控制器或其他硬件设备中。它是一种通用的文件格式,广泛应用于电子工程和嵌入式开发领域。HEX文件的主要作用是将二进制代码转换为一种可读的文本格式,方便在不同的设备之间传输和存储。它通常包含程序的指令、数据以及一些必要的信息,如地址和校验和。通过HEX文件,开发者可以将编写的程序烧录到硬件设备中,使其能够正常运行。HEX文件的扩展名通常是.hex。

2025-02-24 20:38:51 372

原创 【EB-04】TC397 Tresos 配置Port模块

Port模块的Api我们一般不直接调用,每家的Port实现上有些差异,主要就是实现pin 的功能现在,在MCU中,一个pin通常可以映射到多个功能上,通过Port模块来配置他的具体映射功能。Tc3xx系列的芯片,Mcal必须把所有可配置的Port都建立起来,点击图中的+,会自动增加所有的Port组,直到无法增加。同Port组配置原理,每个Port组能配置多少个Port 直接点+,直到无法增加Port。正常清空下不会调用Port的接口,如果特殊功能使用Port的AUTOSAR接口,可以参考。

2025-02-23 12:30:57 273

原创 【EB-03】 AUTOSAR builder与EB RTE集成

打开EB工具后,在EB的步骤是:执行MultiTask(2)-> Mapping Component to Partitions(4)->Task Mapping(5)-> SvcAs_Trigger(7)-> Code Generation(8)如涉及新增BSW Module,也需要重复以上步骤。

2025-02-23 12:29:40 843 5

原创 【AB-04】 AUTOSAR builder创建Composite

在AUTOSAR Builder中,所有的Composition都市显示TopLevelComposition,真正在RTE中起Component Mapping和RTE 连线关系的只有主系统下的Composition。直接在图中,选择Port,出现”+”后,按住鼠标左键,拖到需要相连的Port上Connection。为了让EB RTE可以高效识别AB制作的Component,需要在系统中注册。图中直接将3通过鼠标拖拽到4位置,即完成Component Mapping。

2025-02-22 14:28:31 256

原创 【EB-02】TC397 Tresos 最小工程配置

主要设置McalLibPublishedInformation 参数,会根据ResourceM配置的芯片自动加载。可以看到再工程目录中生成了output文件夹,里面由这些模块生成的头文件,编译脚本和epc文件。如果选择生成swcd,可以生成xxx_Bswmd.arxml给别的工具使用。如果没有Error和Problems就可以点击生成代码。点击工程校验看看工程是否由错误。

2025-02-22 12:05:26 258

原创 【EB-01】 EB Tresos基本使用

EB在AUTOSAR CP中的核心产品EB Tresos Studio,他不仅是Mcal配置的标准化工具,几乎市面上所有的MCU 的MCAL都是由Tresos(包含竞争对手的产品也是集成Tresos来配置Mcal),EB在CP端并不提供SWC生成软件,EB推荐使用达索的AUTOSAR Builder来配合使用,当然也可以与其他工具配合使用,如Vector 的davinci developer,需要自己去探索集成。下图所示,2和3区域都是模块配置项的导览,2为图形化界面,3为列表展开。得到最小工程需求模块。

2025-02-22 12:03:45 1739 1

原创 AB-03 AUTOSAR builder创建SWC

SWC:Software Component 软件组件。

2025-02-21 08:24:25 372

原创 AB-02 AUTOSAR builder创建工程

此处建立的ARXML如果EB想要自动加载,需要在EB的导入中设置对应的路径,这样AUTOSAR builder 与EB可以快速联动。文件资源管理区:创建arxml文件,右键->New->AUTOSAR File。设置arxml名称,路径,Package名称。

2025-02-21 08:22:50 472

原创 【AB-01】 AUTOSAR Builder软件安装

AUTOSAR builder使用安装包进行安装即可,注意,在安装过程中会提示需要license,选择跳过或者其他选项,使得软件安装完成即可。打开软件的界面如下,在下部状态栏会提示没有License。EB Tresos是免安装的或者使用EB提供的安装软件安装到指定位置,默认在C盘。

2025-02-20 21:22:36 329

原创 【万字长文】AUTOSAR团队代码Git 管理与使用规则

此文档目的是为了规范软件开发、集成、发布的流程和保证软件质量。同时也是为使用git进行代码管理的软件工程师提供一定的指导。

2025-02-20 21:20:07 424

原创 cmake foreach 条件判断

可以看到与上面的LISTS查找方式不一样的时ZIP时多个LIST同时查找,而LISTS时3按顺序查找。中的每个项目调用一次记录的命令列表。在每次迭代开始时,变量。的作用域被限制为循环作用域,不需要像C语言一样单独定义,之间的所有命令都被记录下来而不被调用。是由空格或空白分隔的项目列表。将被设置为当前项的值。多组LISTS同时查找。

2025-01-17 16:32:43 712

原创 CanTp 笔记

我们通常的CAN/CAN TP主要是传输8Bytes/64Bytes数据,但是在我们的控制器中,部分场景需求使用超过这个规定长度的数据,物理层又不支持。为了解决这一问题,引入了一个软件协议层–Transport Protocol,即TP层,通过一定的发送规则,将can报文组合成一个较长的数据报文格式。这个应用主要用于诊断场景,也称为DoCAN(Diagnostic communication over Controller Area Network ),此定义规范在ISO15765中。

2025-01-17 16:31:05 658

原创 cmake install 与findpackage使用

在项目开发中,我们想要把某些文件编译成库并分享给别人怎么办?

2024-12-15 10:09:56 1058

原创 嵌入式跨平台工具链终极方案

我们从8051开始学习嵌入式,用过了不少IDE,比如经典的keil和IAR,但是这些IDE都不便宜,如果不用点科学手段,我们是无法使用的。秉承做个正值合法,诚实守信的良好公民,我们还是需要找到更完美的开发方案,不仅能节约个人或者公司的开发成本,还能大大提高开发技术和效率。今天给大家推荐一套开源免费的跨平台开发方案工具链:“ vs code + GCC(或者其他编译器)+CMAKE+xmak/ninjia + vscode-commandbar +git+JLINK(芯片公司提供的IDE)"

2024-12-15 10:08:09 1464

原创 cmake 条件判断 if...else

如果if为真,则执行if块中的命令,否则是elseif的判断,如果都不存在真的条件,则执行else块中的命令,最后需要以endif解释判断。首先计算括号内的条件,然后像其他示例一样计算剩余的条件。如果有嵌套的括号,最里面的括号将作为计算包含它们的条件的一部分进行计算。中的逻辑运算符有NOT 非,AND 和,OR 或三种运算符,基本格式。如果两个条件都被单独认为为真,则为真。如果任一条件单独被认为为真,则为真。其他特殊的条件,参考cmake。如果条件不为真,则为真。

2024-12-14 16:59:41 692

原创 cmake 变量定义set 和unset

在CMAKE 中没有定义类型概念,set定义变量都AUTO类型,系统自动分配。在使用set关键字时,定义一个变量必须给出变量值value;如果没有给出变量值,则认为清空变量,相当于如果给出选项,则变量将设置在当前范围之上的范围中。每个新目录或function()命令创建一个新范围。还可以使用以下命令创建范围 block()命令。将变量的值设置到父目录、调用函数或包含范围(以适用于当前情况的为准)。

2024-12-14 16:58:01 1272

AUTOSAR det错误码查询

AUTOSAR det错误码查询查询工具,用来定位AUTOSAR模块故障位

2025-02-21

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除