S32DS for ARM 如何创建 Standalone 工程

前言

上一篇文章 《S32DS for ARM 如何新建工程》 给大家介绍了如何从零开始用 S32DS for ARM 新建一个 S32K144 工程, 包括三种常用方式:

  1. 利用应用框架(New S32DS Application Project)
  2. 导入已有工程
  3. 通过例程新建工程

用方法 2 和 3 新建的工程, workspace 中 SDK 文件夹是通过链接安装包的对应文件生成的, 这对于习惯用 Git、 SVN、 Source insight 工具来做代码编辑、 版本控制、 备份的工程师来讲, 是很不方便的, 因为没有把真正的工程文件实际包含进来, 导致工程要依赖于链接文件, 没办法完全独立, 这里我教大家一个很简单的办法, 去创建一个真正的 Standalone 工程。



一. 新建工程

在这里我们采用第三种方法(通过例程新建工程)新建一个工程:

  1. 打开 S32DS, 修改 workspace 路径, 选择 File -> New -> S32DS Project from Example。



  1. 选择 “hello world”工程, 记住要选 SDK 中的工程, 再单击 “Finish”。



二. 创建 Standalone 工程

新建完工程后, 可以看到 S32DS 工程文件结构如下:



对应的 workspace 工程路径下文件结构为:



首先看一下 S32DS 中 SDK 文件夹内容, 打开 SDK 文件夹:



我们看到 SDK 文件夹中的 .c .h文件都是以链接的形式加载到工程里面, 实际存储路径并不在 workspace 路径下的 SDK 中, 我们也可以打开 workspace 工程路径确认一下, 如下图:



SDK 文件夹下文件都为空,实际的存储路径我们可以通过查看文件属性得知:



实际存储路径是在安装包中,在工程中是以 linked file 的形式存在, 所以如果想用 source insight 等软件的话, 就要把这些引用的文件实际拷贝到 workspace 下。

  1. 创建 SDK 文件夹

(1)删除 S32DS SDK 文件夹下内容:



(2)关闭工程



(3)在 workspace 工程路径下找到 ProcessExpert.pe 文件:



 用 UltraEdit 打开(或其他编辑工具), 找到:

LINKED

将 LINKED修改为:STANDALONE 并保存。

(4)重新打开工程



(5)重新生成 Processor Expert Code:






在 S32DS中可以看到, SDK 文件夹中的 .c .h 文件已经不是 Linked 文件, 而是真实的存在于 workspace 中:



我们可以打开 workspace 确认一下:




SDK 中的代码文件已经完整拷贝到 workspace 中了。

  1. 创建链接文件和启动文件

除了 SDK 中的代码需要处理外, 还有一个文件夹需要处理: Project_Settings, 我们可以看到这个文件夹的文件也是以 Linked file 的形式存在于 workspace 中:



最简单的处理办法就是:

(1)先找到对应文件在 SDK 中的实际路径, 并记录下来:



(2)直接在对应文件上右键删除:



(3) 在步骤 (1) 记录的路径下将 SDK 中对应文件拷贝到 workspace 中的 Project_Settings

文件夹下。





(4)刷新对应的文件夹内容:



(5)这样就更新成功了:



要注意一下:因为 ld 文件命名有修改, 需要确认一下 link 文件信息:



这里要把原来的 S32K1xx_flash.ld 改成 S32K144_64_flash.ld,  如果是 Debug_RAM 工程,S32K1xx_ram.ld 改成 S32K144_64_ram.ld

完成以上这两步, 我们就可以编译了:

总结

本文给大家介绍了 S32DS 如何创建 Standalone 工程, 针对这个完全独立的工程,大家可以用自己熟悉的工具做代码编辑查看, 版本管理和维护等, 整个过程最重要的两步就是创建新的 SDK 文件夹和创建新的链接文件和启动文件,后续我们还会陆续推出 S32DS 开发相关的文章, 敬请期待!

参考资料

  1. 《 S32 SDK Quick Start Guide 》, Rev. 1.5, 04/2018, NXP
  2. 《 HOWTO: Use SDK based example code as standalone 》,https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/HOWTO-Use-SDK-based-example-code-as-standalone-usable-for-GIT/ta-p/1108204





★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能