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环境。可以安装Python2.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里面的内容本文并未提到,大家感兴趣的可以自行去了解学习。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19014

    浏览量

    303231
  • STM32
    +关注

    关注

    2266

    文章

    10871

    浏览量

    354787
  • 开发板
    +关注

    关注

    25

    文章

    4943

    浏览量

    97188
  • keil
    +关注

    关注

    68

    文章

    1211

    浏览量

    166679
  • 生成器
    +关注

    关注

    7

    文章

    313

    浏览量

    20976

原文标题:嵌入式项目生成器,有点意思!

文章出处:【微信号:Linux大陆,微信公众号:Linux大陆】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    卧槽,牛逼了!这是全网把Python生成器Generator)讲的最透彻的 - 2.Python生成器的使用

    编程语言generator生成器行业芯事经验分享
    蒙娜丽宁
    发布于 :2022年03月09日 17:15:53

    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

    利用LabVIEW代码生成器简化应用项目

    利用LabVIEW代码生成器简化应用项目
    发表于 02-26 14:01 24次下载
    利用LabVIEW代码<b class='flag-5'>生成器</b>简化应用<b class='flag-5'>项目</b>

    自制酸奶生成器

    自制酸奶生成器
    发表于 04-23 11:48 930次阅读
    自制酸奶<b class='flag-5'>生成器</b>

    代码生成器的应用

    jeesite框架代码生成器,可以很方便的生成代码,挺不错的。
    发表于 01-14 15:19 0次下载

    如何使用Synergy项目生成器创建新的Synergy项目

    Synergy ISDE 视频教程-使用Synergy项目生成器创建和构建新的Synergy项目
    的头像 发表于 07-20 01:25 3115次阅读

    Xilinx LogiCORE IP块内存生成器的产品指南

    Xilinx LogiCORE IP块内存生成器(BMG)内核是一种高级内存构造函数,它使用XilinxFPGAs中的嵌入式块RAM资源生成区域和性能优化的内存。
    发表于 12-09 15:31 22次下载
    Xilinx LogiCORE IP块内存<b class='flag-5'>生成器</b>的产品指南

    python生成器是什么

    python生成器 1. 什么是生成器生成器(英文名 Generator ),是一个可以像迭代器那样使用for循环来获取元素的函数。 生成器
    的头像 发表于 02-24 15:53 3620次阅读

    使用嵌入式代码生成器检查复杂性

      一旦外围配置完成,开发人员可以立即专注于应用程序。使用代码生成器嵌入经典的“Hello, World!” 示例(总是转换为闪烁的 LED)变成了两行代码练习。
    的头像 发表于 06-29 14:44 868次阅读
    使用<b class='flag-5'>嵌入式</b>代码<b class='flag-5'>生成器</b>检查复杂性

    将使用代码生成器生成项目移植到与智能配置器一起使用的项目

    将使用代码生成器生成项目移植到与智能配置器一起使用的项目
    发表于 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>

    通用RFID生成器

    通用RFID生成器资料分享
    发表于 02-10 15:35 1次下载

    将使用代码生成器生成项目移植到与智能配置器一起使用的项目

    将使用代码生成器生成项目移植到与智能配置器一起使用的项目
    发表于 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>

    使用C2000™嵌入式模式生成器(EPG)进行设计

    电子发烧友网站提供《使用C2000™嵌入式模式生成器(EPG)进行设计.pdf》资料免费下载
    发表于 09-14 10:13 0次下载
    使用C2000™<b class='flag-5'>嵌入式</b>模式<b class='flag-5'>生成器</b>(EPG)进行设计