作者: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路徑)生成。