网站 费用汕头百度推广公司
2026/4/5 5:39:31 网站建设 项目流程
网站 费用,汕头百度推广公司,临沂做网站建设公司,网站特效漂亮的网站rh850 can uds刷写 boot OTA 1. 基于can 通讯 的bootloader#xff0c;芯片用的是rh850u2a16 2. 配套capl上位机 3. uds服务刷写 4. flash driver 可选择在ram中运行 5. 支持single map/ double map ota/single map GCFU ota三种模式下的刷写#xff0c;支持单/双map 两种模式…rh850 can uds刷写 boot OTA 1. 基于can 通讯 的bootloader芯片用的是rh850u2a16 2. 配套capl上位机 3. uds服务刷写 4. flash driver 可选择在ram中运行 5. 支持single map/ double map ota/single map GCFU ota三种模式下的刷写支持单/双map 两种模式下的Bank切换方便拓展icum安全固件 6. boot 与app 互访对方数据使用标准nvm存储栈 7. app有效标记检查app程序跳转, app刷写请求检测 8. autosar 标准架构提供mcal bsw 通讯栈存储栈等配置工程 9. 附加串口控制台程序提供log 打印调试触发等功能 10. 量产级代码而非Demo 11. ghs编译RH850刷写器开发踩坑三年最想吐槽的就是各家OEM五花八门的OTA需求。这次基于U2A16搞的Bootloader总算把单双map、GCFU这些模式全打通了直接上干货聊聊实现细节。先看CAN通讯层CAPL脚本里最关键的是这个事件处理on diagRequest ECU_Program.SessionControl { if(this.Service 0x10) //会话控制 { byteArray buf {0x50,0x03,0x00,0x32,0x01,0xF4}; diagSendResponse(ECU_Program, buf); } }这里硬核处理了0x10会话控制服务响应里藏着安全种子和定时参数。实际项目遇到过某德系车厂要求500ms内完成种子交换直接把定时参数从0xF4改成0x64才过关。Flash驱动跑在RAM里这事得这么玩内存搬运#pragma section .flsdrv const uint8_t flash_driver_code[] {0x12,0x34,0x56,0x78,...}; //驱动二进制 #pragma section void copy_to_ram() { volatile uint32_t *ram_addr 0xFEDC0000; memcpy(ram_addr, flash_driver_code, sizeof(flash_driver_code)); ((void(*)(void))ram_addr)(); //函数指针跳转 }注意RH850的内存保护机制得在工程里配置好MPC模块的寄存器否则一跑就进TRAP。上次调试时忘了开MPU写权限愣是卡了三天才发现。双map切换最刺激的部分在bank切换逻辑void switch_bank() { NvM_WriteBlock(NVM_BANK_CONFIG, target_bank); while(NvM_GetErrorStatus() ! NVM_REQ_OK); //等写入完成 __asm(syncm); //内存同步指令 reset_mcu(); //必须冷重启 }这里有个坑——某些厂商的NVM驱动没做好原子操作切换时突然断电会导致bank配置错乱。我们的方案是写双份配置镜像CRC校验量产装车至今零投诉。Boot和App数据互传的核心是共享内存区#pragma address _SHARED_DATA_ 0x007F8000 //固定地址 struct { uint32_t app_signature; uint8_t vin[17]; uint32_t crc32; } shared_data;Autosar配置里得把NvM Block的RAM Mirror地址指向这个区域两边工程里都要声明同样的结构体。实测发现GHS编译器有结构体对齐问题必须加#pragma pack(1)才能保证兼容。最后看编译配置的骚操作OPTIMIZE -Os -ipa --cross_call MEMORY_PROTECTION --mpurh850u2a.ptnGHS的--cross_call选项能优化跨模块调用配合MPU配置实现运行时保护。曾经有个bug是app里误擦boot区加上MPU后直接硬件拦截省了80%的调试时间。这套方案现在支持半小时内刷完2MB程序文件OTA失败率控制在万分之三以内。量产代码最关键是异常处理要全——比如刷写中途拔线、电压突变这些场景我们甚至模拟了CAN线被剪断的极端情况测试恢复流程。下次有空再聊聊怎么用CAPL实现自动化冒烟测试...

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询