NXP Auto HVBMS S32DS 參數配置卡頓解決辦法:使用 EB 替代 S32DS Configuration Tools

一、背景介紹

        用戶在 Automotive Software Package Manager | NXP Semiconductors 可以下載 S32K344 或者是 S32K358 的 HVBMS 捆綁包。



        其中包含有 IDE:S32DS,基於 S32DS 的基礎軟體包以及 RTD 插件包,MCAL 配置工具:EB Tresos 以及 RTD 安裝包。這些均包含在 HVBMS 捆綁包中。用戶需要根據其中的 Release Note 了解安裝依賴關係,進行正常順序的安裝。關於 MCAL 以及 S32DS 的具體安裝方式可以參考:S32K344 開發環境的搭建



        但是很多用戶只使用 S32DS (已經安裝對應的基礎包 & 安裝包)可能會遇到使用 S32DS Configuration Tools 打開 “.mex”文件速度慢、配置切換卡頓、代碼生成超時的問題。這主要是因為 HVBMS 包含的相關例程使用到的外設組件較多,每個組件中的配置項也不少,並且單個配置項目往往還和其他項目相關聯——改動一處,需要對其他好多地方進行檢查,特別吃配置。



        所以在調試 HVBMS 時,建議用戶使用專門的 MCAL 配置工具:EB Tresos,EB Tresos 根據配置生成相應的配置代碼。用戶只需要使用對應的配置代碼進行編譯調試即可。此處介紹一個一勞永逸的方式,將 EB Tresos 生成代碼鏈接到 S32DS 工程中,這樣後續更改配置,用 EB 生成代碼之後,不需要手動將相關源文件、頭文件複製到 S32DS 工程中,直接進行編譯燒錄調試即可。


二、操作流程

        本文是基於 SW32K3_BMS_SDK_4.4_R21-11_1.0.1\eclipse\plugins\Bcc_774a_TS_TxDxM10I1R0\examples\EBT\S32K3XX\Bcc_774a_Phy_665a_example_S32K344_EBT 例程建立 S32DS 工程(使用 EB 配置,S32DS 編譯)。

        ① 首先我們確保相關安裝包已經按照 S32K344 開發環境的搭建 - 大大通(簡體站) (wpgdadatong.com.cn) 以及 S32K344 開發環境的搭建 - 大大通(簡體站) (wpgdadatong.com.cn) 安裝完畢,SW32K3_RTD4.4_R21-11_3.0.0_D2303.exe,SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308.exe 以及 SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308.exe 推薦按照默認路徑安裝,因為雖然他們是 EB 配置需要使用的安裝包,本次整合 S32DS 還需要使用到他們的安裝路徑,使用默認安裝路徑(C:\NXP)方便查找。

        ② 緊接著我們需要 2 個工程:一個是 S32DS 工程,另一個則是 EB Tresos 工程。這兩個工程我們可以通過仿照參考例程進行新建(重頭開始,熟悉整個 S32K3 外設組件),或者是基於現有工程進行創建(工程名自定,適合用於熟悉框架的用戶加速開發)。



        需要注意的是,創建的 EB Tresos 工程,路徑需要在 S32DS 新建工程路徑下:新建 S32DS 工程(默認創建的 "include" 文件夾,位於“Project_Settings”中的“Startup_Code”文件夾和“Linker_Files”文件夾,以及“.mex”文件都屬於新建之後不需要使用的部分,可以直接刪除)之後,可以在工程中新建一個“Tresos_Project”文件夾,該文件夾即用於新建存放 EB 工程。



        新建 EB 工程時,只需要路徑位於 S32DS 工程路徑下即可。



        圖中的 EB 工程是我自己新建(工程名自己命名,路徑只需要注意 S32DS 工程以及 EB 工程相對路徑正確)然後參照例程,添加依賴外設組件。

        ③ 在保證 MCAL 配置正確無誤之後,需要依據配置生成代碼。所以接下來,我們要先在 S32DS 工程下面創建一個“Generate”文件夾,用於存放 EB 生成的配置代碼。



        緊接著就需要在 EB Tresos 中,對應工程的工程屬性里“Code Generator”部分,設置默認生成路徑,路徑與文件名需要同 S32DS 中保持一致。如此就可以保證 MCAL 配置轉換源文件、頭文件以及生成的“.epc”文件均在“Generate”文件夾中生成,便於後續查找以及 Include。



        ④ 之後就需要在 S32DS 工程中添加 MCAL 組件。



        上述 3 個文件可通過 HVBMS 捆綁包中的 SW32K3_RTD4.4_R21-11_3.0.0_D2303.exe,SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308.exe 以及 SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308.exe 安裝獲得,推薦裝在默認位置(路徑不深,無中文字符),其中的“plugins”文件夾包含了不同外設模塊的驅動代碼,這部分代碼平時幾乎不需修改,只需要調用即可。因此用戶只需要在 S32DS 的工程中新建對應的鏈接文件夾即可(驅動文件不放在本地工程,減少工程大小,不過需要驅動文件安裝位置正確)。

        用戶可以通過右鍵工程,在“New-->Folder-->Advanced”中選擇“Link to alternate location”,然後將路徑引導至如“C:\NXP\SW32K3_RTD_4.4_R21-11_3.0.0\eclipse\plugins”即可。




        其中文件過濾器的設置,是將“plugins”里的所有模塊的“include”以及“src”文件夾涵蓋進去,編譯需要使用,沒有包含就會編譯報錯。除此之外 BaseNXP_TS_T40D34M30I0R0 組件還需要將“header”文件夾,Platform_TS_T40D34M30I0R0 組件則需要將“build_files”以及“startup”文件夾包含在內。

        針對工程使用的建立對應的  MCAL 驅動鏈接文件夾。






        這 3 個 MCAL 驅動鏈接文件夾建立完畢(SBC 的驅動暫不考慮),在新建過程中,初次嘗試的人可能不知道如何使用文件過濾器,但是沒關係,在這 3 個文件夾的屬性中,可以在 Resource --> Resource  Filters 中重新調整文件過濾器設置,最終 3 個 MCAL 文件夾過濾器如下即符合要求。







        ⑤ 設置工程變量名,此處是為後續編譯所需要 Include 的文件做準備。



        ⑥ 設置編譯宏定義,添加“VV_RESULT_ADDRESS=0x2043FF00”,因為 RTD 組件例程(如 C:\NXP\SW32K3_BMS_SDK_4.4_R21-11_1.0.1\eclipse\plugins\Bcc_774a_TS_TxDxM10I1R0\examples\EBT\S32K3XX\Bcc_774a_Phy_665a_example_S32K344_EBT)中的 main.c (該文件可以作為 S32DS 工程的 main.c)中的 Exit_Example(ExampleStatus); 需要使用。



        ⑦ 將 S32DS 工程需要使用的頭文件 Include 進來,讓編譯器知道哪些頭文件需要編譯(相關組件,EB 配置生成頭文件,以及用戶自定義功能頭文件)。



        ⑧ 設置工程 Link 階段鏈接文件,保證編譯完成後能夠正常鏈接生成最終 .elf 文件。



        ⑨ 選擇要編譯的文件,目前我們已經將 BMS 編譯需要的文件涵蓋進來,但是還可以進一步細化,選擇對真正使用到的文件進行編譯。

 

        不需要編譯的文件,就將其移除編譯選項。



        在這個工程中,不編譯的文件將會標灰。




        上述流程做完之後,即可配置 EB 生成代碼。



        之後只需要在 S32DS 上面編譯調試即可。



三、參考文檔

[1]SW32K3_RTD_4.4_R21-11_3.0.0_D2303_ReleaseNotes.pdf
[2]SW32K3_BMS_SDK_4.4_R21-11_1.0.1_D2308_Release_Notes.pdf
[3]SW32K3_BMS_SL_SDK_4.4_R21-11_1.0.1_DEMO_D2308_Release_Notes.pdf
[4]S32K344 開發環境的搭建 - 大大通(簡體站) (wpgdadatong.com.cn)

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論

daich

daich

8 天前
你好,请问SW32K3_BMS_SDK 如何获取啊?谢谢
bms小白

bms小白

1 個月前
不错,点赞