【Autosar从入门到精通到进阶实战篇】75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

Autosar从入门到精通到进阶实战篇
专栏收录该内容
¥49.90
¥99.00
99 篇文章

75 0x34/0x36/0x37:请求下载、传输数据、请求退出——刷写流程的“三兄弟”

开篇故事:一次“断气”的刷写事故

去年冬天,我接手一个维修站反馈的“疑难杂症”——某款ECU在OTA远程升级时,有3%的车辆刷写失败,变砖后只能返厂。

分析日志发现,所有失败案例都卡在同一个阶段:数据块传输到一半,突然中断。

更诡异的是,日志显示ECU已经正确回复了0x34的肯定响应,0x36也传了十几个包,但突然在第23个包后,ECU不再回复任何消息。Tester超时后强制退出,ECU陷入“半死不活”状态——既不能正常启动,也无法再次进入刷写模式。

后来我们定位到原因:工程师在实现0x36处理函数时,没有检查传输层缓冲区是否溢出。

当收到第23个包时,内部环形缓冲区的写指针追上了读指针,数据被覆盖,导致CRC校验失败。而代码里又没处理这个错误,直接死循环了。

这个案例让我意识到:0x34/0x36/0x37看似简单,但刷写流程是ECU最脆弱的时刻,任何疏忽都可能导致“变砖”。今天,我就带你把这“三兄弟”的每个细节掰开揉碎。

痛点拆解:常见错误实现与认知误区

误区1:把0x36当作“无脑转发”

很多初学者以为0x36就是“收到数据→写Flash→回复”。反例代码:


        
《我的AUTOSAR之路》UDS 0x34 service 其中 RequestDownload Request SID,dataFormatIdentifier,addressAndLengthFormatIdentifier 是固定长度一个字节,而memoryAddress和memorySize是非固定长度,OEM可以自定义。其中request的第三位44 分别表示[80 00 00 00]的字节的长度和[09 68 F4 00]数据长度的字节长度,而响应的第二位40中的4表示后面[00 40 00 00]的字节长度。0x34服务支持的NRC 如表格所示。 469 阅读·0 点赞·2 收藏 阅读详情

相关推荐

【Autosar从入门到精通到进阶实战篇】76 0x31例程控制:刷写中的擦除与校验

文章摘要 本文深入解析UDS协议中0x31例程控制在刷写流程中的关键作用,揭示常见误区和正确实现方法。通过实际案例说明错误使用0x31服务的后果,包括无效擦除、时序混乱等问题。重点阐述0x31服务的三个子功能(开始、停止、请求结果)和典型应用场景(擦除与校验)。提供Python代码示例展示带状态轮询的标准实现,强调处理忙状态响应(0x7F 0x21)的重要性。最后扩展讲解校验例程的实现要点,帮助开发人员规避刷写过程中的常见陷阱。(150字)

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 33

英飞凌TC275 Bootloader实战:内存布局、Flash驱动与启动跳转全解析

在嵌入式系统开发中,Bootloader是固件升级与系统恢复的基石,其设计涉及内存映射、链接脚本、启动流程与外设驱动等多个底层环节。对于基于TriCore架构的英飞凌AURIX系列MCU,如TC275,其多核启动、PMU控制Flash擦写以及安全机制等特性,使得Bootloader开发比传统Cortex-M平台更具挑战性。理解从复位向量到跳转Application的完整流程,掌握TASKING编译器下链接脚本(.lsl)的配置,以及如何将Flash驱动安全地驻留RAM执行,是保障系统稳定性的关键。此类技术在

weixin_33985679的博客 1287

NexIoT AI物联网平台 是一款基于Java 25 AI+创新的"真·零代码侵入"企业级物联网平台

基于Java 25 AI+创新的"真·零代码侵入"企业级物联网平台 | 开箱即用 | 设备驱动完全外置,一键导出即用 | 支持TCP、MQTT、Modbus、天翼物联等多协议多平台接入 | 基于浏览器的调试IDE、插件化和热部署 | 驱动生态共享,你对接的设备我可直接导入

人工智能基于Spring AI的流程编排技术:Java开发者实现RAG、工具调用与多Agent协作的系统化方法论

「AI大模型」Spring-AI-流程编排主流做法-保姆级教程 内容概要:本文是一份关于 Spring AI 1.0 GA 版本中流程编排的系统性教程,重点讲解如何利用 Spring AI 的核心机制实现 AI 应用中的标准化、可复用的流程控制。文章从环境搭建入手,深入介绍 ChatClient 作为编排入口的使用方式,并详细阐述 Advisors 拦截链在实现安全过滤、记忆管理、检索增强生成(RAG)、工具调用等功能中的核心作用。进一步覆盖结构化输出、跨进程通信协议 MCP 及基于状态图的复杂工作流引擎 Spring AI Alibaba Graph 等高级编排能力,最后通过一个集成 RAG、工具调用与对话记忆的生产级 Agent 实战案例,展示了全流程自动化的能力。整套体系借鉴了 Servlet Filter 和 LangGraph 思想,强调“约定优于配置”的工程化设计。; 适合人群:具备 Spring Boot 基础,希望系统掌握 AI 应用流程编排的 Java 开发者,尤其是从事企业级 AI 功能开发、Agent 构建及相关平台建设的技术人员。; 使用场景及目标:① 构建具备记忆、RAG、工具调用等复合能力的智能助手;② 实现可插拔、高复用、易测试的 AI 流程组件;③ 设计支持循环、分支和并行的复杂 Agent 工作流;④ 推动跨服务、跨语言的 AI 工具标准化集成(通过 MCP)。; 阅读建议:此资源以 Spring 官方及 Alibaba 生态权威资料为基础,内容紧跟 1.0 GA 最新演进,建议结合官方文档同步实践代码,特别注意版本迁移要点(如 artifactId 更名、Advisor 替换等),并在实际项目中遵循最佳实践规避常见陷阱。

产业园区如何精准识别并引进符合本地产业特色的优质科技成果转化项目?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

产业园区如何高效精准匹配企业与科研机构的技术成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

薄膜铌酸锂调制器:高带宽、低驱动电压与高线性度优势推动高速光通信与数据中心互连升级.docx

薄膜铌酸锂调制器:高带宽、低驱动电压与高线性度优势推动高速光通信与数据中心互连升级

乘用车用电动油泵:电动化驱动乘用车用电动油泵迈向集成化与智能热管理.docx

乘用车用电动油泵:电动化驱动乘用车用电动油泵迈向集成化与智能热管理

高校技术转移办公室人员如何利用平台提升技术成果的市场转化率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

阿里云云原生架构白皮书文档

阿里云云原生架构白皮书,由阿里云内部技术团队合著,对整个阿里云云原生产品和架构理念进行了全面深入介绍

国央企创新负责人如何构建高效的创新资源协同机制?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

vscode_cli_alpine_arm64_cli.tar.gz

vscode_cli_alpine_arm64_cli.tar

从SPICE到电磁场:非线性器件在CST场路协同仿真中的建模艺术

本文深入探讨了非线性器件在CST场路协同仿真中的建模技术,重点分析了SPICE模型与电磁场仿真的集成方法。通过对比线电流模型和面电流模型的优缺点,结合实际案例展示了二极管阵列在电磁散射调控中的应用,为工程师提供了优化仿真精度与效率的实用技巧。

pandas7gardener的博客 192

泛微E9开发 明细表字段赋值到主表字段,将各类型合计赋值到主表类型合计中

①绑定明细表类型、预计金额字段的值改变事件,每当有值发生改变,就需要重新计算供应商1、供应商2、供应商3的合计,如果不绑定这两个字段的话,会出现计算不及时或计算错误的问题。②当有明细行被删除时,也需要重新计算供应商1、供应商2、供应商3的合计,比如删除了供应商1的明细行,如果不重新计算,那么供应商1的值还是被删之前的值,合计错误。将各类型合计赋值到主表类型合计中。

a_waste_only的博客 3829

Zynq远程更新程序实战:从emmc到flash的完整方案解析

本文详细解析了Zynq远程更新程序的完整方案,重点探讨了从emmc到flash的实战操作。通过硬件连接限制破解、emmc配置技巧、flash擦写策略优化等关键技术点,提供了可靠的远程更新解决方案,特别适合需要频繁更新boot.bin的应用场景。

weixin_29163797的博客 173

Ultralytics YOLO模块自定义与替换实战技巧

本文详细介绍了在Ultralytics YOLO框架中进行模块自定义与替换的实战技巧。通过从零开始添加全新模块(如注意力模块)到进阶替换现有模块(如增强版卷积),并涵盖模块注册、YAML配置、模型融合及ONNX导出等关键步骤,帮助开发者深度定制YOLO模型,以应对复杂检测任务与部署需求。

numpy6sculptor的博客 927

HyperLynx(十八)DDR(一)DDR简介和DDR的数据仿真

LVTTL电平为单端信号,而SSTL电平本质上是差分对,其实现机制是将信号与参考电平Vref组成差分对进行比较,如图所示,VIH和VIL各有一个交流参数AC和直流参数DC,信号第一次越过AC门限的时刻,作为时序计算的参考点,此后只要信号保持DC门限内,逻辑状态保持不变,这种设计减小了噪声、振铃等对于信号质量的影响。经过调整后,控制器在发送颗粒1的DQS后,延时1ns再发送颗粒2的DQS,则颗粒1在1ns后收到对齐的DQS和CLK,颗粒2在2ns后收到对齐的DQS和CLK,从而满足了时序关系。

小幽余生不加糖 7661

CKS-CN考试之路----11

显然是alpine-b的镜像有libcrypto3-3.1.4-r5。新版本发布老版本会被回收,此时pod只剩下2个container。我们依次测试是哪个镜像里包含libcrypto3。可以看到alpine的pod有3个副本.

Q先生 642

英飞凌TC3xx之一起认识GTM系列(一)先来认识GTM架构

本文讲述英飞凌TC3xx的通用计时器GTM的架构。

无所适从的我的博客 4590

Esp32蓝牙Hid调用方案 http执行设备、鼠标、键盘相关操作

本文主要介绍 Esp32 蓝牙 Hid 相关的多种操作方式,详细的设备、鼠标、键盘相关操作的 http 调用方法。下面是整理出的所有 http 调用方法和 rhino 引擎方式。本机调用的话直接使用http://localhost:8080 如果是局域网调用则使用软件里的地址 比如我的是http://192.168.1.5:8080。文件地址: https://www.123865.com/s/Qtm4jv-xyZbd?使用前需要一块烧录好的ESP32板子并在手机安装好embedded软件用于蓝牙通信。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 561

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 【Autosar从入门到精通到进阶实战篇】74 0x31例行程序控制:让ECU执行“自定义脚本”
下一篇: 【WorkBuddy从入门到精通实战教程】使用手册第 6 章 WorkBuddy的专家和专家团

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
企鹅码农
博客等级 码龄14年 133粉丝 943原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

企鹅码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值