概述
自HPM_SDK v1.7.0發布開始,在HPM_ENV中新增了user_template文件夾,以方便用戶快速創建自定義的Board和App工程。user_template是用戶模板工程,用戶可將該文件夾復制到用戶自定義的工作目錄(workspace)中,基于此模板進行開發。
本模板主要牽涉到的用戶自定義的文件有:
用戶板級文件Board
用戶應用程序App
用戶鏈接腳本Linker
用戶板級文件Board
在 user_board 文件夾下,有一個 yaml 文件和一個 cfg 文件,這兩個文件的名稱必須要跟文件夾名稱一致,這樣start_gui才能識別出該文件夾為板級文件夾。
其中, yaml 文件是用戶板級配置文件,用于配置soc名稱、openocd腳本等。 cfg 文件是openocd的板級配置文件,指定板載Flash的參數、調試器reset-init事件處理、調試器gdb-attach事件處理等。
通常,用戶可將hpm_sdk/boards/hpm_xxxx_evk目錄中文件復制到user_board文件夾下,將hpm_sdk/boards/openocd/boards目錄evk對應的cfg文件復制到user_board文件夾下,然后在其基礎上根據自身板子的配置進行修改。
Tips:復制過來后,請修改 yaml 和 cfg 文件名稱,與文件夾名稱保持一致。
本模板中的 user_board 文件夾的文件是從hpm6750evk2相關文件復制過來的,用戶可根據自身板子的配置情況將其替換或修改。
用戶應用程序App
在 user_app 文件夾下,用戶可組織自己的應用程序,例如main函數等。
添加的.c文件和.h文件時,請在 CMakeList.txt 中使用sdk_app_src 添加.c文件,使用 sdk_app_inc 添加.h文件的路徑。
若使用到 middleware 、 components 等,請參考hpm_sdk對應sample中的 CMakeList.txt ,然后在依葫蘆畫瓢在用戶的 CMakeList.txt 中添加相關指令。
HPM_SDK中支持的cmake指令可在hpm_sdk\docs\index_zh.html中查看:
![f8edea32-e5de-11ef-9434-92fbcf53809c.png](http://images.elecfans.net/uploads/20250208/f8edea32-e5de-11ef-9434-92fbcf53809c.png)
Tips:修改CMakeList.txt后,需要重新生成工程并編譯,才能生效。
用戶鏈接腳本Linker
在 user_app 文件夾下,有該應用程序的 linker 文件,用戶可根據自身的需求自定義該文件。
通常,用戶可將hpm_sdk/soc/xxxx/xxxx/toolchains中的gcc/iar/segger文件夾中的linker文件復制到user_app/linkers中,在其基礎上進行修改。
Tips:復制過來后,gcc/iar/segger三個文件下的linker文件名稱保持一致,僅后綴不一樣。
本模板中的linker文件是從hpm6750evk2的flash_xip liner文件復制過來的,用戶可根據自身板子的配置情況將其替換或修改。
用戶在應用程序的 CMakeList.txt 中可以指定使用的Linker文件,如果在 CMakeList.txt 中不指定Linker文件,也可在start_gui生成工程的時候指定Linker文件。
如果以上兩種情況都不指定Linker文件,則會使用SDK默認的linker文件,位于hpm_sdk/soc/xxxx/xxxx/toolchains中。
START_GUI的使用
上述的文件組織完畢后,可使用start_gui生成自己的project工程。
![f9266600-e5de-11ef-9434-92fbcf53809c.png](http://images.elecfans.net/uploads/20250208/f9266600-e5de-11ef-9434-92fbcf53809c.png)
Board Path:指定頂層的 user_template 文件夾,它將自動搜索該文件夾下的板級文件。
Application Path:指定頂層的 user_template 文件夾,它將自動搜索該文件夾下的應用程序。
User GCC Liner File:指定用戶自定義的gcc linker文件。生成project后,gcc工具鏈將使用gcc文件夾下的linker,iar工具鏈將使用iar文件夾下的linker,segger工具鏈將使用segger文件夾下的linker。
-Tips: start_gui的 Build Type 需要配合linker文件 正確指定。例如,當linker文件使用到Flash且沒有SDRAM時,start_gui的 Build Type 需要指定為 flash_xip ;當linker文件使用到Flash且有SDRAM時,start_gui的 Build Type 需要指定為flash_sdram_xip 。
配置完畢后,點擊 Generate ,即可生成工程。
<注意>: 修改 CMakeList.txt 后,需要重新生成工程并編譯,才能生效。
-
APP
+關注
關注
33文章
1578瀏覽量
72811 -
board
+關注
關注
0文章
38瀏覽量
19806 -
HPM
+關注
關注
1文章
38瀏覽量
7789
發布評論請先 登錄
相關推薦
如何使用HAL快速開發自定義創建工程模板
Qt自定義窗口部件的創建
利用SDSoC創建自定義硬件
自定義視圖組件教程案例
Vivado Design Suite用戶指南:創建和打包自定義IP
![Vivado Design Suite<b class='flag-5'>用戶</b>指南:<b class='flag-5'>創建</b>和打包<b class='flag-5'>自定義</b>IP](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
博途用戶自定義庫的使用
![博途<b class='flag-5'>用戶</b><b class='flag-5'>自定義</b>庫的使用](https://file1.elecfans.com/web2/M00/B8/C9/wKgaomWI5JaAXqXFAAAu3Ihwefo802.png)
評論