0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式項(xiàng)目生成器project_generator簡(jiǎn)介

Linux大陸 ? 來(lái)源::Linux大陸 ? 2023-12-19 13:39 ? 次閱讀

實(shí)際開發(fā)中,不同的人習(xí)慣用不同的開發(fā)工具。比如,對(duì)于STM32開發(fā)來(lái)說(shuō),可以用Keil、IAR、VSCode+GCC等。比如安富萊開發(fā)板的例程中,常常都會(huì)提供有Keil及IAR的工程:

有沒(méi)有這樣子的一個(gè)工具:可以同時(shí)生成多種開發(fā)環(huán)境的工程?有的,project_generator,就是干這事的。

project_generator簡(jiǎn)介

project_generator是一個(gè)嵌入式項(xiàng)目生成器,簡(jiǎn)稱progen。我們可以編寫一個(gè)特定語(yǔ)法的YAML文件用于管理我們的項(xiàng)目,并根據(jù)記錄中定義的規(guī)則來(lái)生成IDE項(xiàng)目文件。

progen官網(wǎng):

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

progen項(xiàng)目生成器目前支持生成以下工具(IDE、Makefile等)的項(xiàng)目:

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環(huán)境,所以需要首先搭建Python環(huán)境??梢园惭bPython2.7.x的,也可以安裝Python3.x.x的,大家可以自行安裝。安裝好Python環(huán)境之后,使用pip工具安裝project-generator:

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

安裝后得到:

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

project_generator實(shí)踐

官方給我們提供了一個(gè) baremetal blinky examples例子,我們基于這個(gè)例子實(shí)操一遍。

下載baremetal blinky examples得到:

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

projects.yaml就是管理我們工程的yaml文件,這個(gè)是總的yaml文件,其會(huì)引用到records中的的子yaml文件。通過(guò)projects.yaml引用的子yaml文件可以同時(shí)管理多個(gè)工程,如本例的projects.yaml內(nèi)容如:

projects:
gpio_demo_frdmk64f:
-records/frdm_k64f.yaml
gpio_demo_frdmkl25z:
-records/frdm_kl25z.yaml
gpio_demo_frdmkl46z:
-records/frdm_kl46z.yaml

這里同時(shí)管理著gpio_demo_frdmk64f、gpio_demo_frdmkl25z、gpio_demo_frdmkl46z三個(gè)工程,records下對(duì)應(yīng)有三個(gè)yaml文件:

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

下面通過(guò)progen工具來(lái)生成工程,因?yàn)閜rogen工具是存放在Python/Scrips路徑下,并且已經(jīng)加入到環(huán)境變量中,所以progen工具全局有效。我們?cè)赽aremetal blinky examples工程目錄下執(zhí)行對(duì)應(yīng)命令可生成工程。

1、生成gpio_demo_frdmk64f項(xiàng)目的Keil工程:

progengenerate-fprojects.yaml-pgpio_demo_frdmk64f-tuvision

-p參數(shù)指定工程名;-t參數(shù)指定生成的工程。

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

2、生成gpio_demo_frdmk64f項(xiàng)目的IAR工程:

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

3、生成gpio_demo_frdmk64f項(xiàng)目的gcc_arm工程:

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

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

C:Python27Libsite-packagesproject_generator_definitions arget

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

以上就是本次關(guān)于progen項(xiàng)目生成器的簡(jiǎn)要分享。這個(gè)工具也是我偶然間知道的,簡(jiǎn)單了解并實(shí)踐了一下,順道分享給大家,并且也是很淺的實(shí)踐分享。關(guān)于yaml里面的內(nèi)容本文并未提到,大家感興趣的可以自行去了解學(xué)習(xí)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18906

    瀏覽量

    300699
  • STM32
    +關(guān)注

    關(guān)注

    2262

    文章

    10846

    瀏覽量

    353650
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96820
  • keil
    +關(guān)注

    關(guān)注

    68

    文章

    1208

    瀏覽量

    166444
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    313

    瀏覽量

    20918

原文標(biāo)題:嵌入式項(xiàng)目生成器,有點(diǎn)意思!

文章出處:【微信號(hào):Linux大陸,微信公眾號(hào):Linux大陸】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    編程語(yǔ)言generator生成器行業(yè)芯事經(jīng)驗(yàn)分享
    蒙娜麗寧
    發(fā)布于 :2022年03月09日 17:15:53

    FIFO由多個(gè)版本的FIFO生成器生成會(huì)導(dǎo)致問(wèn)題嗎?

    嗨,大家好! 在我的項(xiàng)目中,有FIFO由多個(gè)版本的FIFO生成器生成。可能會(huì)導(dǎo)致問(wèn)題嗎? 我該如何解決?以上來(lái)自于谷歌翻譯以下為原文Hi guys!In my project
    發(fā)表于 01-11 10:58

    如何使用系統(tǒng)生成器生成sinc信號(hào)

    我想使用系統(tǒng)生成器來(lái)生成sinc信號(hào)。但我不知道在哪里可以獲得這個(gè)系統(tǒng)生成器?這是xilinx ISE設(shè)計(jì)工具的一部分。如果是這樣,請(qǐng)告訴我如何使用它來(lái)生成sinc信號(hào)?謝謝以上來(lái)自于
    發(fā)表于 01-28 06:37

    python生成器

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

    利用LabVIEW代碼生成器簡(jiǎn)化應(yīng)用項(xiàng)目

    利用LabVIEW代碼生成器簡(jiǎn)化應(yīng)用項(xiàng)目
    發(fā)表于 02-26 14:01 ?24次下載
    利用LabVIEW代碼<b class='flag-5'>生成器</b>簡(jiǎn)化應(yīng)用<b class='flag-5'>項(xiàng)目</b>

    自制酸奶生成器

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

    代碼生成器的應(yīng)用

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

    如何使用Synergy項(xiàng)目生成器創(chuàng)建新的Synergy項(xiàng)目?

    Synergy ISDE 視頻教程-使用Synergy項(xiàng)目生成器創(chuàng)建和構(gòu)建新的Synergy項(xiàng)目
    的頭像 發(fā)表于 07-20 01:25 ?3079次閱讀

    Xilinx LogiCORE IP塊內(nèi)存生成器的產(chǎn)品指南

    Xilinx LogiCORE IP塊內(nèi)存生成器(BMG)內(nèi)核是一種高級(jí)內(nèi)存構(gòu)造函數(shù),它使用XilinxFPGAs中的嵌入式塊RAM資源生成區(qū)域和性能優(yōu)化的內(nèi)存。
    發(fā)表于 12-09 15:31 ?22次下載
    Xilinx LogiCORE IP塊內(nèi)存<b class='flag-5'>生成器</b>的產(chǎn)品指南

    python生成器是什么

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

    使用嵌入式代碼生成器檢查復(fù)雜性

      一旦外圍配置完成,開發(fā)人員可以立即專注于應(yīng)用程序。使用代碼生成器,嵌入經(jīng)典的“Hello, World!” 示例(總是轉(zhuǎn)換為閃爍的 LED)變成了兩行代碼練習(xí)。
    的頭像 發(fā)表于 06-29 14:44 ?839次閱讀
    使用<b class='flag-5'>嵌入式</b>代碼<b class='flag-5'>生成器</b>檢查復(fù)雜性

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

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

    通用RFID生成器

    通用RFID生成器資料分享
    發(fā)表于 02-10 15:35 ?1次下載

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

    將使用代碼生成器生成項(xiàng)目移植到與智能配置器一起使用的項(xiàng)目
    發(fā)表于 06-30 20:54 ?0次下載
    將使用代碼<b class='flag-5'>生成器</b><b class='flag-5'>生成</b>的<b class='flag-5'>項(xiàng)目</b>移植到與智能配置器一起使用的<b class='flag-5'>項(xiàng)目</b>

    使用C2000?嵌入式模式生成器(EPG)進(jìn)行設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《使用C2000?嵌入式模式生成器(EPG)進(jìn)行設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:13 ?0次下載
    使用C2000?<b class='flag-5'>嵌入式</b>模式<b class='flag-5'>生成器</b>(EPG)進(jìn)行設(shè)計(jì)