RTD统一了MCAL Autosar和SDK非Autosar两种方式,都是通过工具配置资源,前者通过EB Tresos Studio来配置生成初始代码,后者通过S32DS的CT配置生成初始代码。现在不少国外芯片大厂很多都是图形化配置如ST的STM32CubeMX,Reneas的RA Smart Configurator等,不妨先从本文主角S32K312的LLD开发方式入手。
一、环境搭建
需要安装以下软件(请注意:如果是MCAL开发方式,软件安装顺序有讲究):
| 名称 | 下载链接 |
| S32 Design Studio 3.6.0 | https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=6497301或https://nxp.flexnetoperations.com/control/frse/download?element=6443311 |
| SW32K3_S32M27x_RTD_R21-11_5.0.0_D2410_DesignStudio_updatesite.zip | https://nxp.flexnetoperations.com/control/frse/download?element=6441901 |
其中S32 DS需要license,在注册NXP账号会自动分配。

只需傻瓜式下一步就行,中途会安装Visual C++库。S32DS安装完成后就能进行RTD的安装,可离线安装具体在Help->Install New Software->Add导入SW32K3_S32M27x_RTD_R21-11_5.0.0_D2410_DesignStudio_updatesite.zip或者在线安装具体在Help->S32DS Extensions and Updates:


二、环境验证
RTD安装完成后在RTD/eclipse/plugins目录下有例程,但只有S32K344/S32K358/S32K388/S32K396,直接导入不能保证,故新建工程,点击File->New S32DS Application Project,Processor选择S32K312,建好后需要借助开篇提到的图形化工具进行资源配置比如Pin、Port、MCU等,可右击工程S32 Configuration Tools->Open Tools或者工具栏Pins图标,查看原理图可看到板子有个RGB三色灯,管脚定义如下:
| 管脚名 | 管脚定义 |
| LED_RED | PTB10_GPIO42 |
| LED_GREEN | PTB9_GPIO41 |
| LED_BLUE | PTB8_GPIO40 |
所以不妨勾选PTB8引脚,同时配置系统集成单元SIU为“SIUL2:gpio,40”,模式为“output”,标识符设为自定义“LED_BLUE”,配完后有预览:

再点击上方的“更新源代码”即可生成C代码,再点击工具栏的“S32DS C/C++”图标切回工程编辑界面,编译可看到生成了很多配置源文件如generate目录,添加端口初始化代码、然后引脚定时翻转,代码如下:
void TestDelay(uint32 delay)
{
static volatile uint32 DelayTimer = 0;
while(DelayTimer < delay)
{
DelayTimer++;
}
DelayTimer = 0;
}
int main(void)
{
/* Write your code here */
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals,g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals);
for(;;)
{
Siul2_Dio_Ip_TogglePins(LED_BLUE_PORT, (1 << LED_BLUE_PIN));
TestDelay(5000000);
}
return exit_code;
}
点击右下角Dashboard的Build或者工具栏的Build锤子图标就可看到输出窗口日志调用arm-none-eabi-gcc去生成$ProjName.elf,其中刚配置的管脚定义在board/Siul2_Port_Ip_Cfg.h里,端口Port和引脚Dio函数在属于RTD LLD,都在RTD目录下,分别定义在Siul2_Port_Ip.c和Siul2_Dio_Ip.c里:

在Run->Debug Configurations->GDB SEGGER J-Link Debugging->dio_k312_Debug_FLASH_Segger的Deugger右侧标签页设置Device Name为S32K312并设置Jlink目录然后点击Debug就能在线仿真,此时可观察到程序运行蓝灯在不断闪烁:

三、烧录
在线烧录前面已述,离线烧录也可用J-Flash来弄,但S32DS只生成.elf,并没有生成.bin或.hex,可通过右击工程菜单Propertis-》C/C++ Build->Settings->Stool Settings->Standard S32DS Create Flash Image,切换到Intel HEX或Raw binary即可,

然后打开J-Flash就是熟悉的操作(需要较新版芯片列表才有S32K312):

可以看到程序代码不是常规的0x0开始,而是在0x40 0000作为复位矢量。
此文章来自“S32K312 开发板评测活动”测评者:明祥軍
如有更多需求,欢迎联系大联大世平集团 ATU 部门:atu.sh@wpi-group.com 作者:WPIg
NXP S32K312 RTD LLD环境搭建与验证

235

被折叠的 条评论
为什么被折叠?



