网站备案规则石家庄品牌设计公司

张小明 2026/1/8 7:00:05
网站备案规则,石家庄品牌设计公司,郑州h5网站建设价格,seo营销是指基于UDS的bootloader开发。 包括诊断协议栈#xff0c;网络协议栈#xff0c;瑞萨底层驱动#xff0c;通过周立功can盒通讯#xff0c;实现上位机对单片机的程序更新功能#xff0c;同时包含主机厂和供应商开发资料#xff0c;可以很好的参考学习。最近在搞车载ECU的boot…基于UDS的bootloader开发。 包括诊断协议栈网络协议栈瑞萨底层驱动通过周立功can盒通讯实现上位机对单片机的程序更新功能同时包含主机厂和供应商开发资料可以很好的参考学习。最近在搞车载ECU的bootloader开发发现UDS协议栈这玩意儿真是让人又爱又恨。今天就跟大伙儿唠唠怎么用瑞萨RH850单片机整出个能远程刷写的bootloader顺便分享几个开发时踩过的坑。诊断协议栈这块最要命的是会话控制像0x10切会话这种操作很多新手容易栽在定时器配置上。看这段代码void HandleSessionControl(uint8_t sessionType) { static uint32_t activeSessionTimer 0; if(sessionType DEFAULT_SESSION) { // 默认会话下关闭安全访问 SecurityUnlockState SECURITY_OFF; activeSessionTimer 0; } else { // 扩展会话激活后启动30秒超时 activeSessionTimer GetSystemTick() 30000; } CurrentSession sessionType; SendPositiveResponse(SID_SESSION_CONTROL, sessionType, 1); }这里有个骚操作——用系统滴答计时代替独立定时器省了硬件资源。但注意GetSystemTick()要确保在1ms中断里自增否则时间不准会搞出幽灵bug。网络层处理CAN报文时瑞萨的CAN驱动有个坑爹的地方接收FIFO的配置必须严格按手册来。有次调试发现CAN盒死活收不到响应最后发现是波特率计算时少了个零void CAN_Init(void) { CAN0.CTMR.BIT.TPM 0; // 使用内部时钟 CAN0.BITREG.BIT.BRGC (BRP_VALUE 16) | (TSEG1 8) | TSEG2; // 波特率计算公式1Mbps时BRP0, TSEG14, TSEG23 // 实际调试发现寄存器值要减1瑞萨手册里的小字说明 }周立功CAN盒的API调用也有讲究他们的ZLGCanApi.dll有个隐藏功能——异步发送模式比同步模式快3倍。但要注意线程安全问题最好加个互斥锁from ctypes import * can_dll WinDLL(ZLGCanApi.dll) def send_can_msg(msg): with threading.Lock(): can_dll.ZCAN_Transmit(handle, byref(msg), 1)刷写流程中最容易翻车的是Flash驱动。RH850的Flash操作必须关中断但很多开发板例程里没提醒这事。有个血的教训刷写时突然来个中断直接导致Flash锁死最后只能上J-Link强行解锁。主机厂的诊断规范文档里经常藏着魔鬼细节。比如某德系厂商要求编程会话下必须支持0x3E服务保活但响应时间不能超过15ms。这时候就得在任务调度上动脑筋void Task_3E_KeepAlive(void) { if(CurrentSession PROGRAMMING_SESSION) { // 使用RTOS的软件定时器触发响应 if(osTimerExpired(KeepAliveTimer)) { SendPositiveResponse(SID_TESTER_PRESENT, NULL, 0); osTimerReset(KeepAliveTimer); } } }供应商给的参考代码也别全信有次发现他们的CRC校验算法居然用的是XMODEM标准而主机厂要求SAE-J1850差点导致项目延期。后来自己重写了校验函数uint16_t CalculateCRC_J1850(uint8_t *data, uint32_t len) { uint16_t crc 0xFFFF; while(len--) { crc ^ *data; for(int i0; i8; i) { if(crc 0x0001) { crc (crc 1) ^ 0x8408; } else { crc 1; } } } return ~crc; }最后给个忠告做bootloader一定要留后门我们项目里偷偷做了个通过连续三次非法会话切换触发紧急下载模式的功能结果在产线救回了好几个锁死的ECU。这事儿主机厂不知道知道了估计得骂街但关键时刻真能救命啊。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

电商网站有哪些功能建设网站银行

YOLOv5终极部署指南:Docker容器化完整解决方案 【免费下载链接】yolov5 yolov5 - Ultralytics YOLOv8的前身,是一个用于目标检测、图像分割和图像分类任务的先进模型。 项目地址: https://gitcode.com/GitHub_Trending/yo/yolov5 痛点直击&#x…

张小明 2026/1/6 20:25:30 网站建设

济宁个人网站建设价格便宜做汽车介绍视频的网站吗

还在为PUBG中的枪口跳动而苦恼?想要实现精准的压枪射击吗?罗技鼠标宏为你提供了完美的解决方案!本教程将手把手教你如何配置和使用罗技PUBG无后坐力脚本,让你的射击水平瞬间提升。 【免费下载链接】logitech-pubg PUBG no recoil …

张小明 2026/1/6 20:25:28 网站建设

公司网站建设服务公司wordpress Dux1.5下载

构建学生成绩报告系统:从 Rails 应用到 Access 数据导入 在当前的学生成绩管理流程中,培训师提交 Excel 电子表格,管理员将这些表格合并到 Access 数据库,再生成成绩报告。然而,数据合并耗时且电子表格格式不一,增加了导入难度。为了让流程更顺畅,我们可以使用 Ruby、R…

张小明 2026/1/8 0:10:54 网站建设

网站项目总体设计模板企业网络营销是什么

PyTorch GPU环境配置避坑指南:常见错误及解决方案汇总 在深度学习项目启动阶段,最让人抓狂的往往不是模型调参,而是——为什么 torch.cuda.is_available() 返回的是 False? 明明装了RTX 4090,显存24GB,结…

张小明 2026/1/6 20:25:24 网站建设

网站推广的方式有哪几种phpcms 友情链接 网站名称字数

lora-scripts支持Stable Diffusion和LLM双场景微调,一文讲清差异 在AI模型日益“大而全”的今天,真正让人头疼的从来不是如何运行一个预训练模型,而是——怎么让它听我的话? 我们想要它画出某个特定画风的城市夜景,结果…

张小明 2026/1/6 20:25:23 网站建设

做医院网站响应式制作网站建设

TaskFlow:重新定义Java任务编排的DAG框架实践指南 【免费下载链接】taskflow taskflow是一款轻量、简单易用、可灵活扩展的通用任务编排框架,基于有向无环图(DAG)的方式实现,框架提供了组件复用、同步/异步编排、条件判断、分支选择等能力&am…

张小明 2026/1/6 20:25:21 网站建设