对于一个汽车电子控制器来说,按照汽车开放式系统架构(AUTOSAR),软件开发包括应用层软件开发和基础软件开发。基础软件又包括微控制器抽象层、ECU抽象层、服务层和复杂驱动。而所谓的基础软件也就是行业中我们常说的底层软件(嵌入式软件)。从本篇开始,我总结一些汽车电子控制器开发项目中的实际经验希望能够帮助初学者开发汽车电子嵌入式软件。
好,要开发汽车电子嵌入式软件,需要的最基本的东西是什么呢?
1. 硬件板
可以从芯片供应商那里买开发板,或者硬件工程师同事做的开发板,控制器的Demo板都可以。
2. 开发工具
包括编译器和调试器,需要在这个开发工具上编码、编译和调试程序。
3. 烧写器
烧写器连接PC和硬件板,需要把程序下载到硬件板中运行。
4. 电源
需要给硬件板供电。
开发最基本的单片机驱动程序,还可能需要万用表、示波器辅助调试。对于一些总线模块,比如CAN,那么还会用到CAN卡。针对具体的模块届时我会具体说明。
现在来介绍一下我其中的一个项目,纯电动汽车整车控制器开发。这款整车控制器主芯片采用的是NXP的MPC5744P,开发工具是S32 Design Studio,烧写器是PE。
1. 硬件板:
这是一个比较老的硬件版本,作为这次开发实战解析的案例。
关于MPC5744P芯片的datasheet和reference manul都可以去NXP的官网下载,官网网址:https://www.nxp.com。另外,芯片的demo driver也可以从供应商处或者是官网上获得。那我们去开发某一个模块的时候,可以参考demo driver,这样方便我们快速上手。
如何阅读芯片的文档呢?可以先阅读datasheet,快速概要了解芯片的特性,对该芯片有一个整体的认识。
当需要对某个模块进行驱动开发的时候,需要仔细阅读reference manul,根据手册中的内容进行代码开发。
2. 开发工具
S32 Design Studio是一套附送的集成开发环境(IDE),适用于汽车和基于Power Architecture®(e200内核)及Arm®的超可靠微控制器和处理器。 S32DS IDE是基于开源软件的直接开发工具,包括Eclipse IDE、GNU编译器集合(GCC)和GNU调试器(GDB),并且没有代码大小限制,可以编辑、编译和调试设计。S32DS IDE支持Microsoft Windows 7/8/10 64位操作系统(具有32位二进制文件)、Ubuntu 14.04、16.04(64位)、Debian 8(64位)和CentOS 7(64位)主机操作系统。
S32 Design Studio的安装包可以去NXP的官网下载。
3. PE烧写器
在购买PE烧写器的时候会附加驱动,安装上驱动即可使用。
4. 电源
本系统是12V,可以使用一个12V的稳压电源供电。
当这些都备齐之后我们就可以开始着手开发软件了。本篇作为一个简单的引子开始,从下篇开始我会以一个模块为例来说明如何开发、调试。