2、开发环境搭建:基于S32K144的硬件平台介绍、EB tresos Studio配置基础、Vector Davinci Configurator Pro入门
好,咱们正式开始动手了。这一章,说白了就是搭台子。台子搭不好,后面唱戏肯定要摔跟头。我见过不少新手,上来就急着写代码,结果工具链没配通,一编译几百个错误,心态直接崩了。
今天咱们要搭的台子,主要涉及三样东西:一块硬件板子(S32K144),两个软件工具(EB tresos Studio 和 Vector Davinci Configurator Pro)。别被这些名字吓到,咱们一个一个来拆解。
2.1 硬件平台:S32K144 微控制器
先说说板子。S32K144 是 NXP 家的一款车规级 MCU,基于 ARM Cortex-M4F 内核。为什么选它?因为它在汽车电子里太常见了。车身控制、电池管理、传感器节点,到处都有它的影子。
我个人习惯,拿到一块新板子,先看三样东西:电源、时钟、调试接口。这三样通了,板子就活了。
| 特性 | 说明 |
|---|---|
| 内核 | ARM Cortex-M4F,带 FPU,主频最高 112 MHz |
| Flash | 最高 2 MB,带 ECC |
| SRAM | 最高 256 KB |
| 通信接口 | CAN FD、LIN、FlexIO、SPI、I2C、UART |
| 诊断相关 | 内置硬件 CRC、ECC、时钟监控、看门狗 |
嗯,这里要注意:S32K144 的调试接口是 SWD,不是 JTAG。买调试器的时候别买错了。我建议用 S32 Design Studio 自带的调试器,或者 J-Link 的 SWD 版本,兼容性最好。
2.2 EB tresos Studio 配置基础
EB tresos Studio 是干啥的?它是用来配置 AUTOSAR 基础软件的。说白了,就是图形化地生成代码,不用你手写底层驱动。
我第一次用这个工具的时候,说实话,有点懵。界面全是英文,模块多得像迷宫。但后来摸清了套路,发现其实就三步:
- 创建工程:选好芯片型号(S32K144),选好基础软件版本。
- 配置模块:比如配置 CAN、配置 GPIO、配置时钟。每个模块都有对应的参数页。
- 生成代码:点一下按钮,工具自动生成 C 代码和头文件。
举个例子,配置一个 CAN 通道。你需要在 Can 模块里设置波特率、设置邮箱数量、设置中断优先级。这些参数,在 EB 里都是下拉框和输入框,填好就行。
我曾经犯过一个错误:为了临时调试,在生成的代码里加了几行打印。结果后来重新生成配置,那几行代码全没了,排查了半天。从那以后,我再也不动生成的代码了。要加功能,写在单独的模块里。
2.3 Vector Davinci Configurator Pro 入门
这个工具,和 EB tresos Studio 有点像,但侧重点不同。Davinci Configurator Pro 更偏向于 网络通信和诊断协议栈 的配置。比如 DoIP、UDS on CAN,这些用它来配就很方便。
怎么入门?我建议你记住一个原则:先配基础,再配协议。
- 基础配置:时钟、中断、内存映射。这些是所有模块的基石。
- 协议配置:比如配置 UDS 服务,配置诊断会话、安全等级、DTC 存储。
举个例子,配置一个简单的 UDS 诊断服务(比如 0x22 读取数据)。在 Davinci 里,你需要:
- 创建一个诊断服务实例。
- 设置服务 ID 为 0x22。
- 配置该服务支持的数据标识符(DID)。
- 关联回调函数,当收到请求时,执行你的代码。
我记得有一次,客户现场报故障,说诊断通信时好时坏。我远程一看,发现是 EB 和 Davinci 都配了 CAN 中断,导致中断处理函数被覆盖了。后来统一由 EB 配中断,Davinci 只配协议逻辑,问题就解决了。
2.4 本章知识体系总览
为了让你更直观地理解这三者的关系,我画了一张图。你可以把它当作本章的“地图”。
你看,硬件是地基,EB 是钢筋水泥(底层驱动),Davinci 是水电管网(协议栈)。三者配合好了,诊断栈才能跑得稳。
好,这一章就到这里。工具装好了,环境搭通了,下一章咱们就开始真正写诊断栈的代码了。