<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式項目生成器project_generator簡介

Linux大陸 ? 來源::Linux大陸 ? 2023-12-19 13:39 ? 次閱讀

實際開發中,不同的人習慣用不同的開發工具。比如,對于STM32開發來說,可以用Keil、IAR、VSCode+GCC等。比如安富萊開發板的例程中,常常都會提供有Keil及IAR的工程:

有沒有這樣子的一個工具:可以同時生成多種開發環境的工程?有的,project_generator,就是干這事的。

project_generator簡介

project_generator是一個嵌入式項目生成器,簡稱progen。我們可以編寫一個特定語法的YAML文件用于管理我們的項目,并根據記錄中定義的規則來生成IDE項目文件。

progen官網:

5c468e16-9e20-11ee-8b88-92fbcf53809c.png

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環境??梢园惭bPython2.7.x的,也可以安裝Python3.x.x的,大家可以自行安裝。安裝好Python環境之后,使用pip工具安裝project-generator:

pip install project-generator
5c6abfca-9e20-11ee-8b88-92fbcf53809c.png

安裝后得到:

5c763008-9e20-11ee-8b88-92fbcf53809c.png

project_generator實踐

官方給我們提供了一個 baremetal blinky examples例子,我們基于這個例子實操一遍。

下載baremetal blinky examples得到:

5c825108-9e20-11ee-8b88-92fbcf53809c.png

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文件:

5c89a2dc-9e20-11ee-8b88-92fbcf53809c.png

下面通過progen工具來生成工程,因為progen工具是存放在Python/Scrips路徑下,并且已經加入到環境變量中,所以progen工具全局有效。我們在baremetal blinky examples工程目錄下執行對應命令可生成工程。

1、生成gpio_demo_frdmk64f項目的Keil工程:

progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tuvision

-p參數指定工程名;-t參數指定生成的工程。

5c8cea46-9e20-11ee-8b88-92fbcf53809c.png5c927f74-9e20-11ee-8b88-92fbcf53809c.png5ca00a86-9e20-11ee-8b88-92fbcf53809c.png

2、生成gpio_demo_frdmk64f項目的IAR工程:

progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tiar_arm
5ca69054-9e20-11ee-8b88-92fbcf53809c.png5cac6394-9e20-11ee-8b88-92fbcf53809c.png

3、生成gpio_demo_frdmk64f項目的gcc_arm工程:

progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tiar_arm
5cb729c8-9e20-11ee-8b88-92fbcf53809c.png5cbebd14-9e20-11ee-8b88-92fbcf53809c.png

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

C:Python27Libsite-packagesproject_generator_definitions arget

5cc98622-9e20-11ee-8b88-92fbcf53809c.png

以上就是本次關于progen項目生成器的簡要分享。這個工具也是我偶然間知道的,簡單了解并實踐了一下,順道分享給大家,并且也是很淺的實踐分享。關于yaml里面的內容本文并未提到,大家感興趣的可以自行去了解學習。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    4981

    文章

    18281

    瀏覽量

    288422
  • STM32
    +關注

    關注

    2239

    文章

    10671

    瀏覽量

    348736
  • 開發板
    +關注

    關注

    25

    文章

    4429

    瀏覽量

    93991
  • keil
    +關注

    關注

    68

    文章

    1196

    瀏覽量

    165311
  • 生成器
    +關注

    關注

    7

    文章

    302

    瀏覽量

    20211

原文標題:嵌入式項目生成器,有點意思!

文章出處:【微信號:Linux大陸,微信公眾號:Linux大陸】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    臥槽,牛逼了!這是全網把Python生成器Generator)講的最透徹的 - 2.Python生成器的使用

    編程語言generator生成器行業芯事經驗分享
    蒙娜麗寧
    發布于 :2022年03月09日 17:15:53

    Minitab 交互表格生成器

    生成器
    MinitabUG
    發布于 :2024年04月03日 15:58:54

    系統生成器的版本與Vivado不兼容

    過程中的系統生成器。另外,我的系統上安裝了舊版本的ISE(13.3),它有一個系統生成器。但是,系統生成器的版本與Vivado不兼容。如果有人可以指導我安裝System Generator
    發表于 12-17 11:49

    FIFO由多個版本的FIFO生成器生成會導致問題嗎?

    嗨,大家好! 在我的項目中,有FIFO由多個版本的FIFO生成器生成??赡軙е聠栴}嗎? 我該如何解決?以上來自于谷歌翻譯以下為原文Hi guys!In my project
    發表于 01-11 10:58

    如何使用系統生成器生成sinc信號

    我想使用系統生成器生成sinc信號。但我不知道在哪里可以獲得這個系統生成器?這是xilinx ISE設計工具的一部分。如果是這樣,請告訴我如何使用它來生成sinc信號?謝謝以上來自于
    發表于 01-28 06:37

    python生成器

    python生成器1. 什么是生成器?生成器(英文名 Generator ),是一個可以像迭代器那樣使用for循環來獲取元素的函數。生成器
    發表于 02-24 15:56

    pim卡資料生成器

    pim卡資料生成器
    發表于 11-22 23:23 ?6次下載

    利用LabVIEW代碼生成器簡化應用項目

    利用LabVIEW代碼生成器簡化應用項目
    發表于 02-26 14:01 ?24次下載
    利用LabVIEW代碼<b class='flag-5'>生成器</b>簡化應用<b class='flag-5'>項目</b>

    自制酸奶生成器

    自制酸奶生成器
    發表于 04-23 11:48 ?879次閱讀
    自制酸奶<b class='flag-5'>生成器</b>

    LED段碼生成器

    本文提供的LED段碼生成器,希望對你的學習有所幫助!
    發表于 06-03 15:19 ?96次下載

    代碼生成器的應用

    jeesite框架代碼生成器,可以很方便的生成代碼,挺不錯的。
    發表于 01-14 15:19 ?0次下載

    如何使用Synergy項目生成器創建新的Synergy項目?

    Synergy ISDE 視頻教程-使用Synergy項目生成器創建和構建新的Synergy項目
    的頭像 發表于 07-20 01:25 ?2893次閱讀

    python生成器是什么

    python生成器 1. 什么是生成器? 生成器(英文名 Generator ),是一個可以像迭代器那樣使用for循環來獲取元素的函數。 生成器
    的頭像 發表于 02-24 15:53 ?3076次閱讀

    將使用代碼生成器生成項目移植到與智能配置器一起使用的項目

    將使用代碼生成器生成項目移植到與智能配置器一起使用的項目
    發表于 01-11 19:00 ?0次下載
    將使用代碼<b class='flag-5'>生成器</b><b class='flag-5'>生成</b>的<b class='flag-5'>項目</b>移植到與智能配置器一起使用的<b class='flag-5'>項目</b>

    將使用代碼生成器生成項目移植到與智能配置器一起使用的項目

    將使用代碼生成器生成項目移植到與智能配置器一起使用的項目
    發表于 06-30 20:54 ?0次下載
    將使用代碼<b class='flag-5'>生成器</b><b class='flag-5'>生成</b>的<b class='flag-5'>項目</b>移植到與智能配置器一起使用的<b class='flag-5'>項目</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>