在前几篇中,我们已经搭建好了AUTOSAR的开发环境,这里我们开始记录对软件的使用过程。接下来博主记录S32DS配置MCAL,建立PORT控制方法。
一、在S32DS中基于S32K310新建一个工程
在菜单栏里面File -- > New -- > S32DS Application Project;
在弹出的Create a S32 Design Studio Project对话框中(图2-2),配置以下参数后,单击Next。
Project name:为该工程命名S32K312_LED_Example;
Processors:在S32K3系列芯片中选择一个型号,这里以S32K310为例;
在弹出的New S32DS Project for S32K310对话框中,配置以下参数后,单击Finish。新项目生成。它包含一个sample accumulator application。可以在不做任何更改的情况下构建和调试该项目。在此基础项目中添加您的内容。
Debugger:有以下选项GDB PEMicro Debugging Interface,Segger Debugging Interface和VDK Debugging Interface。这里选择Segger Debugging Interface,使用Segger J-Link烧录和调试。
Library:有以下选项NewLib()和NewLib Nano()。这里选择NewLib。Newlib 与 Newlib-Nano 的区别包括:
a)Newlib-Nano 对大小进行了优化;
b)在 Newlib-Nano 中重新实现了 printf 和 scanf 系列例程,以消除对floating-point浮点输入/输出处理代码的直接依赖。需要使用这些函数处理浮点数值的项目现在必须在链接过程中明确请求该功能,如上所述;
c)Newlib-Nano 中的 printf 和 scanf 系列例程只支持 C89 标准中定义的转换说明符。这在小内存占用和全功能格式化输入/输出之间实现了良好的平衡;
d)Newlib-Nano 删除了 printf/scanf 系列例程(iprintf/iscanf 等)多余的纯整数实现;
e)在 Newlib-Nano 中,退出时只刷新未写入的缓冲数据。打开的数据流不会关闭;
f)在 Newlib-Nano 中,重新实现了动态内存分配器;
I/O Support:有以下选项No I/O,Debugger Console和Real-time printf with ITM。这里选择No I/O。
FPU Support:有以下选项Toolchain Default,Software: No FPU (-mfloat-abi=soft), Hardware : -mfloat-abi=hard和Hardware : -mfloat-abi=softfp。这里选择Toolchain Default。
Language:编程使用的语言,这里默认C。
SDKs:选择一个RTD中,对应芯片的驱动。
请注意,根据所选处理器的不同,调试器支持不同的选项。此外,如果支持 S32 配置工具,还会有一个选项。
新的工程就创建成功。
二、在PIN引脚配置界面中配置GPIO
在引脚配置界面中,勾选PTE8,接着在弹出的对话框中,选择SIUL2:gpio,136;弹出的对话框内选择Output;然后点OK,再点完成。实现IO端口配置为输出。
在路由详情中,会看到PIN的配置信息:
a)标签和标识符:为每个PIN配置一个字符串名称,用于API函数的传参。
b)Slew Rate:寄存器位MSCR_SRC
c)Output Buffer Enable:寄存器位MSCR_OBE
d)Pad keep enable:寄存器位MSCR_PKE
e)Driver Strength Field:寄存器位MSCR_DSE
f)Initial Value:寄存器位GPDO_PDO
接着单击右上角的“外设”按钮;
在组件中,单击Drivers的右侧,添加Siul2_Dio外设驱动模块;
最后单击“更新源代码”生成Pin配置代码。可以选择需要更新的文件;
等待右下角Update Code结束。
三、适配器适配生成的代码
在main.c文件中,手动增加以下代码,见图2-16:
增加头文件:
#include "Siul2_Port_Ip.h"
#include "Siul2_Dio_Ip.h"
调用Port初始化函数:
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);
调用Pin设置函数:此函数可切换参数引脚中列出的输出引脚("1 "位)。与 "0 "对应的引脚不受影响。
Siul2_Dio_Ip_TogglePins(RLY_EN3_PORT, (1 << RLY_EN3_PIN));
宏定义配置如下图所示。
四、编译工程
在Project Explorer选Debugtest工程后,依次单击Dashboard中的Clear和Build,编译该工程。
至此一个项目已经编译完成,可以通过J-Link连接目标板进行调试和烧录程序。