news 2026/4/15 20:37:07

基于TC397的AUTOSAR BSW工程、MCAL工程编译与验证——确保Xcp功能、Can通...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于TC397的AUTOSAR BSW工程、MCAL工程编译与验证——确保Xcp功能、Can通...

基于TC397的autosar配置BSW工程,MCAL工程,编译通过的IDE工程。 工具是基于EB,davinci configurator,tasking(CBD19版本)或hightec(CBD24版本) 实际能在开发版上跑起来。 需要的联系,软件产品,不包含工具,不提供SIP(如果需要价格另议),不提供MCAL包,只是配置工程,读懂关键字 功能:支持Xcp功能(polling模式),Can通信收发,OS6核跑起来

搞TC397+AUTOSAR这玩意儿,真不是个轻松活儿。特别是当需求里写着要OS六核全跑起来的时候,我对着EB Tresos Studio的配置界面愣是抽完了半包烟。今天咱就唠唠这个配置工程里几个要命的坑。

先看OS配置这块,六核调度玩的就是心跳。在DaVinci Configurator里核间通信配置不当直接死锁,我遇到过Core0和Core1互相等信号量,结果整个系统卡成PPT。后来发现得在OsScheduleTable里硬核分配时间片:

ScheduleTable = { .Duration = 10, .SchedulePoints = { { .Offset = 0, .Action = &AppTask_10ms }, { .Offset = 5, .Action = &ComTask_5ms } } };

每个核的ScheduleTable得像齿轮咬合那样精确,特别是当Xcp在Polling模式下抢资源的时候,时间窗重叠超过2ms就可能丢帧。有个邪门现象——把ScheduleTable的Duration值设为质数(比如7ms、11ms)反而能减少资源冲突,玄学得很。

Xcp配置最坑的是内存对齐。EB的Xcp模块配置界面有个隐藏选项,得手动改.arxml文件才能开启DMA优化。实测开启后Polling模式的传输效率能提升40%,但配置不当直接HardFault:

<XCP-GENERAL> <XCP-MEMORY-ALIGNMENT>32</XCP-MEMORY-ALIGNMENT> <XCP-DMA-ENABLED>true</XCP-DMA-ENABLED> <XCP-CALPAGE-BUFFER-SIZE>0x200</XCP-CALPAGE-BUFFER-SIZE> </XCP-GENERAL>

这个0x200的BufferSize是经验值,小了会丢数据,大了影响OS调度。最骚的是这个参数跟Tasking编译器优化等级强相关,开-O2时得再加16字节冗余。

Can通信配置要特别注意DMA通道分配。TC397的MultiCAN模块有六个节点,但只有三个DMA通道能用于AUTOSAR ComStack。实战中发现把NM报文和Xcp诊断报文分到不同DMA通道能避免总线仲裁冲突:

CanControllerCanCfg = { .CanControllerId = 0, .CanDmaChannel = 0, .CanTxProcessing = DELAYED, .CanRxProcessing = IMMEDIATE };

这里DELAYED模式必须配合硬件时间戳使用,否则总线负载率超过30%就开始丢帧。有个魔鬼细节——CanIf模块的HRH配置必须与CanDriver的HOH对象数量严格对应,差一个就等着看总线上幽灵报文乱飞吧。

工程编译更是个玄学现场。HighTec编译器对多核LDF文件极其敏感,有次手抖在Core4的链接脚本里多写了个.bss段,结果整个BSW的NVRAM管理崩了。建议编译参数里必须加-mtcr=all才能保证各核MMU配置同步:

CORE0_LDFLAGS += -Wl,--gc-sections -mtcr=all -mcore=tc3xx CORE1_LDFLAGS += -Wl,--gc-sections -mtcr=all -mcore=tc3xx

最后上板子实测,用Xcp协议栈暴力灌500帧/秒的数据包,看着六个核的CPU负载曲线在70%附近跳舞,那感觉比蹦迪还刺激。记住,所有核的看门狗超时时间必须比最长的ScheduleTable周期大1.5倍以上,否则跑着跑着突然给你来个全局复位,那酸爽...

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 6:29:55

LangFlow能否实现邮件自动回复系统?SMTP集成实测

LangFlow能否实现邮件自动回复系统&#xff1f;SMTP集成实测 在企业客服压力日益加剧的今天&#xff0c;一封封重复的咨询邮件让人工处理不堪重负。有没有可能用一个“会思考”的系统&#xff0c;自动识别用户问题、生成专业回复并即时发出&#xff1f;这不再是科幻场景——借助…

作者头像 李华
网站建设 2026/4/15 7:53:48

16、Windows Store应用用户界面创建与应用栏设计

Windows Store应用用户界面创建与应用栏设计 1. 新闻阅读器应用界面问题及解决方案 在测试新闻阅读器应用时,可能会遇到某些新闻文章中图片导致文本溢出并被裁剪的问题。主UI元素通常是位于 ScrollViewer 内的 RichTextBlock 控件,以实现内容的垂直滚动。为了在所有视图…

作者头像 李华
网站建设 2026/4/15 20:36:38

17、构建 Windows 应用:用户界面与数据展示设计

构建 Windows 应用:用户界面与数据展示设计 在开发 Windows 应用时,用户界面(UI)的设计和数据展示是至关重要的环节。一个好的 UI 设计不仅能提供一致的用户体验,还能帮助用户快速上手应用。同时,合理的数据展示方式能让用户更高效地获取和处理信息。下面将详细介绍 Win…

作者头像 李华
网站建设 2026/4/15 20:37:05

22、Windows Store 应用通知与磁贴更新全解析

Windows Store 应用通知与磁贴更新全解析 1. 磁贴的创建与管理 在 Windows Store 应用开发中,磁贴和徽章是与用户进行有效沟通的重要工具,即便应用处于未运行状态,也能发挥作用。以下是关于磁贴和徽章的详细介绍: - 实时磁贴的作用 :实时磁贴能够鼓励用户启动应用并与…

作者头像 李华
网站建设 2026/4/15 20:37:06

28、Windows Store 应用的安全与数据管理

Windows Store 应用的安全与数据管理 1. 数据存储与访问策略 1.1 应用数据存储注意事项 当用户卸载 Windows Store 应用时,应用数据会被移除。因此,应用不应使用应用数据存储来保存有价值且不可替代的信息,包括漫游存储。在用户从所有设备上移除应用后,漫游存储中的数据…

作者头像 李华
网站建设 2026/4/15 16:10:35

紧急!Open-AutoGLM升级后符号输入集体失效?速用此方案回滚修复

第一章&#xff1a;紧急&#xff01;Open-AutoGLM升级后符号输入集体失效&#xff1f;速用此方案回滚修复问题现象与影响范围 近期&#xff0c;Open-AutoGLM 在发布 v1.4.0 升级版本后&#xff0c;大量用户反馈在使用过程中出现符号输入异常&#xff0c;包括但不限于括号 ()、引…

作者头像 李华