必须得会的汽车 ECU 研发基础—底层软件介绍 4
1 底层软件主要内容
底层软件开发内容有:一方面是设备驱动的实现,基于主芯片有:底层驱动 PORTS,ADC,PWM,SPI,CAN,SENT 等,基于外围芯片的复杂驱动。
另一方面基础功能的开发,bootloader 开发,操作系统 RTOS,存储管理,故障诊断,通讯和网络安全等功能。
2 底层软件开发基础
对于上述的底层软件开发内容,若要深入的话,一是要能看懂芯片手册,熟悉所使用芯片提供的资源 ,包括多核定义,内存分配情况(包括 RAM 和 ROM/FLASH/EEPROM),ADC 模块,GTM 模块和通讯模块等等;二是要掌握常用的标准与协议,包括 OSEK 标准(操作系统相关),14229 协议和 15765 协议(诊断,刷写相关),XCP 协议(标定相关)和 11989 协议(CAN 通讯相关)等;三是要掌握 C 语言编程,ECU 底层软件使用该语言进行开发。
3 底层软件开发工具
底层软件开发最常用的工具有劳特巴赫 TRACE32 和 Vector 三件套(Canlyzer, CANape,CANoe)。其中,劳特巴赫调试工具提供了嵌入式开发全生命周期的支持, 覆盖了 Pre-Silicon,芯片 Bring-Up, Bootloader、 Firmware 的开发,OS 和 App 的调试,以及后续的软件测试等过程。
举一个简单应用,比如开发者使用劳特巴赫实时跟踪代码的运行状态,观察一些调试资源,像寄存器、内存、C 源码、变量等等,这样就可以识别开发的功能是否满足设计要求。
而 Vector 工具的话:对于 CANlyzer,一方面可以模拟报文节点,发送或接收报文,以此来验证通讯或诊断功能,另一方面通过 CAPL 语言可设计一个模拟环境来测量或验证所开发的功能。对于 CANape,一方面可以实时监测 TCU 的内外部变量,另一个方面还可以改变标定变量的数值。
熟悉了上述的两类工具,底层软件所涉及的测试和验证工作就基本没问题。
4 总结
以上就基本介绍了底层软件的基本内容和所需掌握的基础与工具,如果想进一步了解,最好能参与具体项目,实践出真知。
作者:Z-ONE_90490814141
文章来源:上汽零束 SOA 开发者论坛
原文链接:https://bbs.z-onesoft.com/omp/community/front/api/page/mainTz?articleId=7555
评论