作者:Stephen Du
免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。
欢迎添加微信交流学习。
NXP_AUTOSAR_MCAL开发环境搭建引导
— S32K14x系列(其他平台方法一样)
1 安装准备
由于在下载界面会列出目前所有可使用的版本,所以你需要对NXP的软件版本大体分类有一定了解。如不了解,请参见下文:
NXP软件版本介绍
1.1 所需软件/组件列表概览
这里以SW32K14-SMCL431-RTMC-1.0.0
版本为例进行讲解,你可根据需要下载对应的版本即可,方法一样。
要搭建MCAL开发环境,你需要下载下面这些软件及组件:
- EB Tresos Studio 24.0.1 — MCAL 配置工具
- SW32K14-SMCL431-RTMC-1.0.0 — MCAL组件
- SW32K14-SMCL431-RTMC-1.0.0_P1 — MCAL组件补丁包
1.2 软件License申请
1.2.1 普通用户
下载时会弹出登陆框,如果你还没有账号,请前往NXP官网注册一个账号,然后使用账号登陆进行下载,在下载界面会提供License。
NXP AUTOSAR MCAL 下载链接
1.3 软件下载
请先下载MCAL的包,因为不同MCAL的包对Elektrobit Tresos Studio的版本有要求,所需版本信息通常在MCAL安装路径下面的xxx_ReleaseNote.pdf文档里面有描述
1.3.1 Autosar Mcal下载
前文下载链接进入后会进入下图的下载界面:
进入后,这里会列出所有AUTOSAR MCAL / ISO26262的版本,下载我们所需的版本,如下图红色矩形框所示。
如果出现下图,请点击I Agree,然后进入下载页面(其他组件下载流程于此相同):
选中所有文件,点击Download Selected Files按钮进行下载。
注意: 请勿关闭该页面,下载完后还需在该页面保存License(见后面详述)。
选择本地文件夹路径进行保存:
回到下载列表页面(前面提到不要关闭的页面),切换到License Keys标签页,生成License文件并保存。如下图:
下图点击Save All按钮后,浏览器会自动下载一个License.dat的文件,建议从浏览器下载路径将其保存到下载的安装包路径下,防止后面其他软件的License文件覆盖。该界面会列出本License适用于哪些模块,某些License可能只有主安装包的,没有补丁包(文件名以Px结尾的)的,那么请到相应补丁包下载界面里获取。
如果出现下列视图,可以点击View EULA
进行查看,点进去后与上图一样,通常进入该视图是因为你已经保存过License文件。
OS或其他组件下载流程及License获取方式与上述模块相同,该手册不再赘述。请一一下载保存。
1.3.2 Elektrobit Tresos Studio下载
注意: 不同MCAL版本对该工具版本要求不同,请按要求下载。
Elektrobit(后文缩写为EB) Tresos Studio 下载方式与MCAL相同,License获取稍有差异,在下载界面有黄色高亮字体提示保存激活码。见下图:
2 软件安装
首先安装EB Tresos Studio 24.0.1。然后再安装MCAL组件。
2.1 安装EB Tresos Studio
注意: 如果本地磁盘是通过文件夹映射,请将安装文件夹拷贝到原始磁盘其他路径,如桌面,等安装完成后再删除安装文件,或者从原始路径进入,否则会出现下图错误。只有AUTOSAR Tresos Studio安装有该限制。其他组件可在任意本地文件夹路径。
运行setup.exe,一路默认安装,建议不要修改路径,除非你准备同时安装多个版本。安装完成后会弹出下图中间的提示框。
安装完后还需运行:EB_Client_License_Administrator_1_2_4_Setup.exe,安装过程中选择:
- Use License Activation Codes
安装完成后,系统启动菜单启动EB Client License Administrator。进入如下界面输入激活码:
使用之前下载时获取的激活码进行激活。
2.2 安装组件
部分同学反馈下载后安装时提示:**No packages were found that can be installed!**的错误。关于该错误请见我另外的文章
运行相关组件的安装文件(安装完成后,强烈建议将安装好的MCAL文件夹及Demo文件夹备份,当碰到错误时会帮你很多忙
),根据提示默认安装直到以下界面(如果S32DS 及 EB Tresos Studio为默认安装路径,根据下图配置即可):
如果安装过程中提示如下警告信息,可手动创建link文件:
进入 EB Tresos Studio 安装目录,默认路径为:C:\EB\tresos
。检查是否有links文件夹。如果没有自行建立。文件列表及文件内容如下所示:
3 示例工程
注意: 本示例工程是基于4.3版本,其他版本可能目录结构不同(拷贝的东西不一样),如发现该类问题,如果你能理解本文的核心思想,应该也很容易自己修改,如果的确有问题,欢迎咨询。
3.1 示例工程前期准备
到MCAL安装路径,查找示例工程。
拷贝下列路径文件夹:
C:\NXP\AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\S32K14X_MCAL4_3_RTM_1_0_0_Sample_Application\eclipse\plugins\IntegrationFramework_TS_T40D2M10I0R0
到 :
C:\NXP\AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\eclipse\plugins
下面。
再拷贝示例工程安装路径备后续使用(默认路径为以下路径):
C:\NXP\AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\S32K14X_MCAL4_3_RTM_1_0_0_Sample_Application\Tresos\Workspace\lighting_S32K144_4.3_RTM1.0.0
3.2 导入示例工程
打开EB tresos Studio → File → Import → General(Existing Projects into Workspace):
把刚才拷贝好的的示例工程路径输入下图,然后根据下列图示依次操作加载示例工程及生成示例工程:
3.3 加载示例工程
在工程配置实例处右键选择Reload Configuration(如下图)或者双击即可。
3.4 生成示例工程
工程处右键选择Generate Project。
3.5 修改编译脚本
原因&&目的: 由于默认的编译脚本使用的编译环境不太一样,我们这里主要是为了适配S32DS的编译环境,因为这个环境可在官网免费获取,是大部分开发人员比较好的选择,所以如果想使用S32DS(GCC)的环境进行编译,需要做下面的修改。
如果你需要使用其他编译环境,需要自己修改编译脚本,可以看看我们这里修改了什么东西(对比原始脚本,基本上就是路径的修改)。原始脚本适配了三个常见的编译器,GCC, IAR, GreenHill。
到以下路径找到lauch.bat
文件并使用文本编辑软件将其打开:
C:\NXP\AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\S32K14X_MCAL4_3_RTM_1_0_0_Sample_Application\eclipse\plugins\IntegrationFramework_TS_T40D2M10I0R0\auxiliary\build
注意: 由于版本不一样导致修改的内容不一样,下面更新了4.3的两个版本的脚本。请根据自己使用的版本进行修改。
V4.3.0: 将原始文件内容修改为以下内容 :
::====================================================================================================
::
:: @file launch.bat
:: @version 1.0.0
::
:: @brief Integration Framework - internal build launcher.
:: @details Launches the build of the sample application
::
:: Platform : ARM
:: Build Version : S32K14x_MCAL_1_0_0_RTM_ASR_REL_4_3_REV_0001_20180615
::
:: (c) Copyright 2006-2016 Freescale Semiconductor, Inc.
:: Copyright 2017 - 2018 NXP
:: All Rights Reserved.
::
:: This file contains sample code only. It is not part of the production code deliverables.
::
::====================================================================================================
::
@echo off
::You have to uncomment and set the following variables if they are not already set
:: uncomment line below if you do not set TRESOS_DIR over environment
::TRESOS
SET TRESOS_DIR=C:/EB/tresos
::MAKE
SET MAKE_DIR=C:/NXP/S32DS_ARM_v2018.R1/utils/msys32/usr
::GHS
::SET GHS_DIR=C:/tools/ghs/ARM_MULTI_7.1.4COMPILER_2017.1.4
::GCC
SET LINARO_DIR=C:/NXP/S32DS_ARM_v2018.R1/Cross_Tools/gcc-6.3-arm32-eabi
::IAR
SET IAR_DIR=C:/tools/IARSystem/EmbeddedWorkbench8.0/arm
::Path to the plugins folder
SET PLUGINS_DIR=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_0/eclipse/plugins
::SSC
::SET SSC_ROOT=C:/NXP/AUTOSAR/S32K_AUTOSAR_OS_4_0_93_BETA_0_9_0
::SSC
SET TRESOS_WORKSPACE_DIR=C:/EB/tresos/workspace/lighting_S32K144_4.3_RTM1.0.0/output
::SET TRESOS_WORKSPACE_DIR=C:/tools/Tresos_24_0_1/workspace/lighting_S32K118_4.3_RTM1.0.0/output
::ANFC
::SET ANFC_LIB_DIR=C:/Users/nxf35061/Desktop/118/lighting_S32K118_4.2_RTM1.0.1/output
::ANFC configuration directory, in case it's in a different directory
SET ANFC_CONFIG_DIR=
if not defined TRESOS_DIR GOTO missing_path_names_TRESOS_DIR
if not exist %TRESOS_DIR% GOTO missing_path_names_TRESOS_DIR
cmd /c "make.bat %1 %2 %3 %4 %5 %6"
GOTO end
:: The variable TRESOS_DIR was not specified
:missing_path_names_TRESOS_DIR
ECHO.
ECHO The variable TRESOS_DIR was not set correctly.
ECHO Please specify this variable manually, by editing
ECHO the batch file 'launch.bat'.
ECHO.
pause
GOTO end
:end
V4.3.1: 将原始文件内容修改为以下内容 :
::====================================================================================================
::
:: @file launch.bat
:: @version 1.0.1
::
:: @brief Integration Framework - internal build launcher.
:: @details Launches the build of the sample application
::
:: Platform : ARM
:: Build Version : S32K14x_MCAL_1_0_1_RTM_ASR_REL_4_3_REV_0001_20190620
::
:: (c) Copyright 2006-2016 Freescale Semiconductor, Inc.
:: Copyright 2017 - 2018 NXP
:: All Rights Reserved.
::
:: This file contains sample code only. It is not part of the production code deliverables.
::
::====================================================================================================
::
@echo off
::You have to uncomment and set the following variables if they are not already set
:: uncomment line below if you do not set TRESOS_DIR over environment
::TRESOS
SET TRESOS_DIR=C:/EB/tresos
::MAKE
SET MAKE_DIR=C:/NXP/S32DS_ARM_v2018.R1/utils/msys32/usr
::GHS
SET GHS_DIR=C:/tools/ghs/ARM_MULTI_7.1.4COMPILER_2017.1.4
::GCC
SET GCC_DIR=C:/NXP/S32DS_ARM_v2018.R1/Cross_Tools/gcc-6.3-arm32-eabi
::IAR
SET IAR_DIR=C:/tools/IARSystem/IAR_V8.11.2/arm
::Path to the plugins folder
SET PLUGINS_DIR=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_1/eclipse/plugins
::Path to the IF plugins folder
SET SRC_PATH_IF=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_1/eclipse/plugins
SET SRC_PATH_MCAL=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_1/eclipse/plugins
::SSC Path to OS installer
SET SSC_ROOT=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_1
::FRAMEWORK WORKSPACE
::SET TRESOS_WORKSPACE_DIR=C:/EB/tresos/workspace/WorkspaceS32K144_19_06_2019/output/generated
SET TRESOS_WORKSPACE_DIR=C:/NXP/AUTOSAR/S32K14X_MCAL4_3_RTM_1_0_1/S32K14X_MCAL4_3_RTM_1_0_1_Integration_Application/Tresos/Workspace/WorkspaceS32K144_19_06_2019/output/generated
::OS WORKSPACE
SET OS_TRESOS_WORKSPACE_DIR=C:/Tools/EB/v24.0.1/workspace/OS_standalone_S32K14x_4.0/output/generated/epc
::USERCODE
SET USER_CODE_DIR=C:/Users/nxa07100/Desktop/mysource
::MOTORCONTROL LIBRARY
SET MOTORCTRL_LIB_DIR=C:/Projects/Libraries/MotorControl
::ANFC - LIBRARY
::SET ANFC_LIB_DIR=
::ANFC - TRESOS WORKSPACE DIR
::SET ANFC_CONFIG_DIR=
if not defined TRESOS_DIR GOTO missing_path_names_TRESOS_DIR
if not exist %TRESOS_DIR% GOTO missing_path_names_TRESOS_DIR
cmd /c "make.bat %1 %2 %3 %4 %5 %6"
GOTO end
:: The variable TRESOS_DIR was not specified
:missing_path_names_TRESOS_DIR
ECHO.
ECHO The variable TRESOS_DIR was not set correctly.
ECHO Please specify this variable manually, by editing
ECHO the batch file 'launch.bat'.
ECHO.
pause
GOTO end
:end
3.6 编译示例工程
打开命令行工具,改变工作目录到:
C:\NXP\AUTOSAR\S32K14X_MCAL4_3_RTM_1_0_0\eclipse\plugins\IntegrationFramework_TS_T40D2M10I0R0\auxiliary\build
输入命令:
.\launch.bat MODE=USER TOOLCHAIN=gcc
开始编译,如下图所示: