汽车电子expert成长之路

本博客发布的个人原创精品----嵌入式系统技术文章,欢迎大家参考学习,并转发分享!

S32DS 使用tips--S32DS for ARM v1.3工程V2.0迁移升级方法和注意事项

0
阅读(8748)

S32DS 使用tips--S32DS for ARM v1.3工程到S32DS for ARM V2.0迁移升级方法和注意事项

最近NXP release了最新的S32DS for ARM V2.0,与S32DS for ARM v1.3相比,有如下更新,支持最新的S32K142和S32K148并将SDK升级到SDK EAR 0.8.4版本,并集成了最新的汽车电机数学控制库AMMCLIB v.1.1.8:

2-1.jpg

        同时也修复了一些老版本S32DS for ARM的bug:

3.jpg

        本文介绍如何将S32DS for ARM v1.3(SDK RTM 1.0.0)S32K144应用工程迁移升级到S32DS for ARM V2.0(SDK EAR 0.8.4)工程,使用最新的SDK以及相关的注意事项。

        一个S32DS for ARM 2.0的demo工程Processor Expert S32DSSDK路劲设置如下:

${ProcessorExpert_loc}/../../S32DS/S32SDK_S32K14x_EAR_0.8.4

4.jpg

        工程的Includes如下,可用正常找到最新的SDK:

5.jpg

        在S32DS for ARM 2.0中导入(Import)一个S32DS for ARM 1.3的SDK工程时,其提示SDK路径不正确,指向了S32SDK_S32K144_RTM_1.0.0:

6.jpg

7.jpg

8.jpg

        所以,需要将其修改为最新的S32SDK_S32K14x_EAR_0.8.4:

9.jpg

        但是,这时工程的Includes下SDK的路径还是S32SDK_S32K144_RTM_1.0.0,在S32DS for ARM V2.0安装目录下压根没有,所以带有感叹号,找不到:

10.jpg

        接下来,我们需要修改Includes设置:


        菜单栏-->Search-->Search..,或者直接快捷键Ctrl + H:

11.jpg

        在File Search-->Containing text中输入搜索内容为S32SDK_S32K144_RTM_1.0.0(注意:搜索范围为整个Workspace,File Name patterns为 *),点击Replace..替换:

12.jpg

        将S32SDK_S32K144_RTM_1.0.0替换为S32DS for ARM 2.0自带的最新SDK----S32SDK_S32K14x_EAR_0.8.4:

13.jpg

        另外如果老的工程中使用到了gpio_hal组件和ADC组件,则需要做如下修改:


        由于S32DS for ARM 2.0以前的SDK版本中使用gpio_hal组件来配置和操作GPIO,在2.0中已经将该组件功能合并到PinSettings组件,需要需要将原有工程中的gpio_hal组件remove:

14.jpg

        并将工程中所有GPIO_HAL替换为PINS_DRV(在相应的C文件中使用快捷键 Ctrl+ F):

15.jpg

     对于ADC组件:   S32SDK_S32K144_RTM_1.0.0中ADC通道枚举定义为ADC_INPUTCHAN_ADxx:

16.jpg

        S32SDK_S32K14x_EAR_0.8.4中ADC通道枚举定义为ADC_INPUTCHAN_EXTxx:

17.jpg

        所以需要将原有工程中的ADC_INPUTCHAN_ADxx:替换为ADC_INPUTCHAN_EXTxx:

18.jpg

      然后,重新生成Processor Expert的代码,即可看到Includes下SDK的路径已经正常,可以被编译器识别了:

19.jpg

        最后,clean工程重新build编译即可:

20.jpg

最后需要注意的是,目前所有的S32DS for ARM版本都使用的是GNU的编译器和链接器工具链,其编译器优化等级建议设置为-O0,即无优化,这样才能保证编译结果能够正常运行。若选择其他优化等级或出现编译结果错误、代码跑飞的情况:

21.jpg

以下是我对同一个S32K144应用工程设置不同编译器优化等级选项的编译结果对比:

其中对size的优化--Os,器编译结果只有无优化--O0的一半不到。实测,只有编译器优化等级设置为-O0,即无优化的结果下载后可以正常运行:

22.jpg