作者:Stephen Du
免责声明: 本文为个人学习笔记及总结,仅代表个人观点,尽可能保证内容准确性。复制/转发请注明来源/作者。
欢迎添加微信交流学习。
S32DS创建自己的SDK
1. 前言
如果你有一份代码,需要在不同项目中使用,你是否还在重复着复制/粘贴的步骤?
作为程序猿,除了复制粘贴,还需要懂得剪切,做一些减法操作,提高你的工作效率。
当然你可以将你这份代码打包成一个库(.lib)文件。但很多时候库文件调试是非常不方便的。
那么你是否想过如何才能兼顾呢?
你是否想过将自己的代码打包为一个SDK呢?
实际上S32DS提供了这样的功能。本文将介绍如何将自己的代码制作为SDK(以MCAL代码为例)。
2. 创建SDK
由于MCAL比较特殊,打包成SDK时部分文件需要忽略。如果是你自己的代码根据实际情况选择你需要打包的文件即可。
首先打开S32DS,进入工具栏Window -> Preferences -> SDK Management -> Add。如下图:
点击Add后,会弹出下图窗口,参照下图输入SDK信息。下图右侧的路径需要注意不能包含空格。图片中写的精确到plugins文件夹是为了减小SDK大小,去除外层不必要的文件。也就是说理论上精确到eclipse的上层主目录也是可以的。
输入完信息后,点击上图右侧2处的OK按钮,回到上图左侧的主界面,将窗口拉大(拉大窗口有时可能反映非常迟钝,需要多次操作),会发现下面识别到了你的代码,如下图:
接下来我们需要将静态代码使能,建议使能所有模块,如果实际工程有些模块不使用,到时候在实际使用工程里面去关掉即可。除了使能,建议将Copy功能也打开,打开Copy功能后,新建工程时会自动拷贝一份代码到工程目录下,否则只是一个链接,这样当某些项目碰到某些特殊情况需要修改SDK代码时,不会影响其他项目。
如上图,先进入Sources标签页,凡是以generate开始的文件夹都不要选择(图1处),只需要选择src文件夹(图2处),点击src右侧的x图标(图3处),会自动将文件夹下所有.c文件选中(当然也可一个一个文件选中),同时每个文件后面的Copy列会自动激活让用户选择,这里需要每个文件单独勾选(图4处)。
然后切换到Headers标签页(图5处),和Sources下面一样,只勾选include文件夹下面的文件,generate开始的文件夹不要勾选。
然后切换到Defined symbols标签页,这里可以定义一些常用的全局宏,点击图6处的➕,根据需要输入即可。这里输入后会自动添加到工程属性里面。也可以后面在项目工程属性里面去单独配置。设置完这些后,点击OK按钮完成配置(图7处)。
SDK打包好后,即可在SDK列表里面会发现,在新建工程过程中可选择使用。
3. 导出SDK
前面章节讲解了如果制作的问题,但是制作好了只能自己使用,如果只能自己使用,显然这并不满足当前这种团队合作的需求。实际上我们可以导出你的配置给团队其他成员使用。
回到我们新增SDK的界面:工具栏Window -> Preferences -> SDK Management。
在该界面中除了Add功能外,实际下还有Import,Export等功能。
点击Export…按钮。然后输入导出保存路径。如果你的伙伴在相同路径(你创建SDK时的原始代码路径)下已有代码(代码目录结构必须完全一致),那么你可以单纯导出配置信息(只会生成一个xml文件),只需要勾选Export only SDK descriptor选项即可,否则不要勾选该选项(会生成一个压缩包)。如下图:
4. 导入SDK
当你拿到其他伙伴导出的压缩包后,还是进入上面章节提到的界面:工具栏Window -> Preferences -> SDK Management。点击Import…按钮。在弹出的窗口中,有两种导入方式可供选择,一种是From ZIP file;另一种是From directory。如果导出时是整个包导出(没有选择Export only SDK descriptor选项),则选择第一种导入方式(浏览导出的压缩包)。否则选择第二种方式导入(浏览导出的xml文件)。浏览路径这些操作不再赘述,注意不要有空格。如下图:
上图下半部分的窗口请选择Default(SDK folder)选项,实测下来(S32DS ARM 2018.R1版本)第二个选项不启用,就算你勾选第二个选项,还是会在上一个窗口设置的路径下(也就是本窗口的Default路径)生成。