【SemiDrive G9 系列軟體開發】 G9H PTG5.1 Freertos 環境搭建

一、前言

         在芯馳 G9 系列軟體包中,從 PTG5.1 開始不再提供默認的 safety 域的工程配置,鏡像文件。默認Safety 域使用預編譯的 mcal 鏡像。

         但是在實際使用中,經常需要使用 freertos 做模塊以及功能測試。因此需要修改配置文件,編譯出 freertos 版本的 satety 域鏡像。

         本文測試開發板採用 G9H Ref A02 開發板圖(1)。

 

圖(1)

 
 


二、代碼下載與編譯

        以下操作步驟均根據 Semidriver 提供的 docker 鏡像創建的 docker 容器環境中執行。容器的創建方法請自行參考相關文檔。

1.加載 rsa 密鑰

$eval 'ssh-agent'

$ssh-agent bash

$ssh-add id_rsa

2.下載 buildsystem 包      

圖(2)


3.設置環境變量和配置文件

$export PATH=/tool/gcc_linaro/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-elf/bin:/tool/gcc_linaro/gcc-arm-none-eabi-7.3.1/bin:/tool/repo_tools:$PATH

由於 ATF 編譯所指定的交叉工具鏈和 Freertos 等模塊所使用的不相同,需要在芯馳支持網站上下載 gcc_linaro_7.3.1.tar.gz,解壓到容器中對應的路徑中。

$source lunch_sd.sh -c G9H_Ref_Linux_1G_ssdk_3200.json -b G9_3.0.0_PTG5.1 -u g9

G9H_Ref_Linux_1G_ssdk_3200.json 為工程配置文件,根據默認文件客戶可自行定製。

圖(3)

4.同步代碼

同步編譯打包簽名等工具

$make inittools

同步 SDK

$make sync_all

 

5.編譯代碼

$make build_all


圖(4)

 

注意:atf 模塊需要指定的編譯器,需要確保 makefile 文件中指定的編譯器路徑中有對應的編譯器文件。

 

6.打包

Make genpac

將編譯所產生的二進制文件,打包並簽名,生成 ospi.pac global.pac用於燒寫到開發板中去。




7.修改 safety 域配置文件

       根據頂層 Makefile 文件,safety 域默認使用預編譯好的 mcal 鏡像,因此,為了使 safety 使用 freertos,需要修改默認的 json 配置文件,SD_BUILD_SAFETY_OS 變量不能配置為rtos(X9 系列的 freeros) 和 mcal,根據以上分析,將 SD_BUILD_SAFETY_OS  配置為 SSDK,並將文件名由 G9H_Ref_Linux_1G_ssdk_3200.json。如圖(5)所示。

  

圖(5)

 

 

三、下載並運行

1.使用管理員權限打開 sd 下載工具,並加載 images。如圖(6)


圖(6)


  1. 如果已經燒寫過鏡像,可以僅替換 safety 域的 bin 文件,操作方式如圖(7)所示

圖(7)


3. 啟動運行

        啟動開發板,在調試界面輸入 help,此時顯示的測試命令和 freertos 中的一致。見圖(8)

圖(8)

 

 

 

四、 參考文獻:

  1. SD_G9_SDK_Reference_Manual_Rev1.4.pdf
  2. SD_G9H_Quick_Start_Rev1.01.pdf


歡迎在博文下方留言評論,我們會及時回復您的問題。

如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com   
作者:Sim Guo / 郭夕峰

更多資訊,請掃碼關注我們!


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

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

評論