實際開發中,不同的人習慣用不同的開發工具。比如,對于STM32開發來說,可以用Keil、IAR、VSCode+GCC等。比如安富萊開發板的例程中,常常都會提供有Keil及IAR的工程:
有沒有這樣子的一個工具:可以同時生成多種開發環境的工程?有的,project_generator,就是干這事的。
project_generator簡介
project_generator是一個嵌入式項目生成器,簡稱progen。我們可以編寫一個特定語法的YAML文件用于管理我們的項目,并根據記錄中定義的規則來生成IDE項目文件。
progen官網:

progen項目生成器目前支持生成以下工具(IDE、Makefile等)的項目:
uVision4 和 uVision5
IAR
生成文件 (GCC ARM)
生成文件 (ARMCC)
Cmake (GCC ARM)
CoIDE (GCC ARM)
Eclipse(帶有 GCC ARM 的 Makefile)
Sublime(帶有 GCC ARM 的 Makefile)
Visual Studio(帶有 GCC ARM 的 Makefile)
安裝project_generator
progen依賴于Python環境,所以需要首先搭建Python環境。可以安裝Python2.7.x的,也可以安裝Python3.x.x的,大家可以自行安裝。安裝好Python環境之后,使用pip工具安裝project-generator:
pip install project-generator

安裝后得到:

project_generator實踐
官方給我們提供了一個 baremetal blinky examples例子,我們基于這個例子實操一遍。
下載baremetal blinky examples得到:

projects.yaml就是管理我們工程的yaml文件,這個是總的yaml文件,其會引用到records中的的子yaml文件。通過projects.yaml引用的子yaml文件可以同時管理多個工程,如本例的projects.yaml內容如:
projects: gpio_demo_frdmk64f: -records/frdm_k64f.yaml gpio_demo_frdmkl25z: -records/frdm_kl25z.yaml gpio_demo_frdmkl46z: -records/frdm_kl46z.yaml
這里同時管理著gpio_demo_frdmk64f、gpio_demo_frdmkl25z、gpio_demo_frdmkl46z三個工程,records下對應有三個yaml文件:

下面通過progen工具來生成工程,因為progen工具是存放在Python/Scrips路徑下,并且已經加入到環境變量中,所以progen工具全局有效。我們在baremetal blinky examples工程目錄下執行對應命令可生成工程。
1、生成gpio_demo_frdmk64f項目的Keil工程:
progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tuvision
-p參數指定工程名;-t參數指定生成的工程。



2、生成gpio_demo_frdmk64f項目的IAR工程:
progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tiar_arm


3、生成gpio_demo_frdmk64f項目的gcc_arm工程:
progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tiar_arm


我們知道,keil等工具起初支持的芯片都比較有限,比如需要安裝一些芯片支持包進行擴展,同樣的,progen也是一樣的,支持的開發板及芯片有限,我們可自行添加目標支持。路徑如:
C:Python27Libsite-packagesproject_generator_definitions arget

以上就是本次關于progen項目生成器的簡要分享。這個工具也是我偶然間知道的,簡單了解并實踐了一下,順道分享給大家,并且也是很淺的實踐分享。關于yaml里面的內容本文并未提到,大家感興趣的可以自行去了解學習。
審核編輯:湯梓紅
-
嵌入式
+關注
關注
5198文章
20442瀏覽量
333978 -
STM32
+關注
關注
2309文章
11162瀏覽量
373406 -
開發板
+關注
關注
26文章
6289瀏覽量
118048 -
keil
+關注
關注
69文章
1230瀏覽量
172626 -
生成器
+關注
關注
7文章
322瀏覽量
22707
原文標題:嵌入式項目生成器,有點意思!
文章出處:【微信號:Linux大陸,微信公眾號:Linux大陸】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
臥槽,牛逼了!這是全網把Python生成器(Generator)講的最透徹的 - 2.Python生成器的使用
FIFO由多個版本的FIFO生成器生成會導致問題嗎?
如何使用系統生成器生成sinc信號
如何使用Synergy項目生成器創建新的Synergy項目?
Xilinx LogiCORE IP塊內存生成器的產品指南
嵌入式項目生成器project_generator簡介
評論