
基于TC397的AUTOSAR BSW工程、MCAL工程,使用EB、davinci configurator、tasking
或hightec工具的编译通过并实际运行的开发版
搞TC397+AUTOSAR这玩意儿,真不是个轻松活儿。特别是当需求里写着要OS六核全跑起来的时候,我
对着EB Tresos Studio的配置界面愣是抽完了半包烟。今天咱就唠唠这个配置工程里几个要命的坑。
先看OS配置这块,六核调度玩的就是心跳。在DaVinci Configurator里核间通信配置不当直接死锁
,我遇到过Core0和Core1互相等信号量,结果整个系统卡成PPT。后来发现得在OsScheduleTable里硬核分
配时间片:
```C
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文件才能开启DM
A优化。实测开启后Polling模式的传输效率能提升40%,但配置不当直接HardFault:
```XML
<XCP-GENERAL>
<XCP-MEMORY-ALIGNMENT>32</XCP-MEMORY-ALIGNMENT>
<XCP-DMA-ENABLED>true</XCP-DMA-ENABLED>