0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何快速创建用户自定义Board和App工程

先楫半导体HPMicro 2025-02-08 13:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

自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

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

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
    APP
    +关注

    关注

    33

    文章

    1596

    浏览量

    76185
  • board
    +关注

    关注

    0

    文章

    39

    浏览量

    20434
  • HPM
    HPM
    +关注

    关注

    2

    文章

    55

    浏览量

    8320
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何添加自定义单板

    在开发过程中,用户有时需要创建自定义板配置。本节将通过一个实例讲解用户如何创建属于自己的machine,下面以g2l-test.conf为例
    的头像 发表于 03-12 14:43 1616次阅读

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘可以
    的头像 发表于 06-05 14:19 2741次阅读

    自定义工程文件

    用户使用的时候,首先创建一个工程工程里有很多很多的任务,每一个任务又会带着很多信息。我也想把这些内容写入XML中,并保存成自己的自定义
    发表于 03-23 14:47

    如何使用HAL快速开发自定义创建工程模板

    自定义创建工程模板在前面“C语言使用HAL库开发”章节里,体验了如何使用HAL快速开发。不同于使用汇编和寄存器开发,使用HAL库需要为工程准备许多相关文件,也就是
    发表于 08-24 07:36

    自定义函数测试学习工程

    自定义函数测试学习工程
    发表于 07-01 16:37 5次下载

    1602自定义字符

    1602液晶能够显示自定义字符,能够根据读者的具体情况显示自定义字符。
    发表于 01-20 15:43 1次下载

    在NI Multisim中创建自定义元器件

    在NI Multisim中创建自定义元器件,NI Multisim虽然强大但芯片太少所以总结这方法
    发表于 07-20 17:21 0次下载

    利用SDSoC创建自定义硬件

    SDSoC是开发Zynq-7000 SoC应用程序的理想工具,当您可以在自己的定制板平台上实现设计时,SDSoC变得更加强大。 有了这个视频,看看创建自己的自定义硬件是多么容易..
    的头像 发表于 11-26 06:25 3201次阅读

    教程 2:添加特征-自定义配置文件创建

    教程 2:添加特征 - 自定义配置文件创建
    发表于 03-15 19:39 0次下载
    教程 2:添加特征-<b class='flag-5'>自定义</b>配置文件<b class='flag-5'>创建</b>

    教程 2:添加特征-自定义配置文件创建

    教程 2:添加特征 - 自定义配置文件创建
    发表于 07-06 18:50 0次下载
    教程 2:添加特征-<b class='flag-5'>自定义</b>配置文件<b class='flag-5'>创建</b>

    Vivado设计套件用户指南:创建和打包自定义IP

    电子发烧友网站提供《Vivado设计套件用户指南:创建和打包自定义IP.pdf》资料免费下载
    发表于 09-13 14:54 1次下载
    Vivado设计套件<b class='flag-5'>用户</b>指南:<b class='flag-5'>创建</b>和打包<b class='flag-5'>自定义</b>IP

    Vivado Design Suite用户指南:创建和打包自定义IP

    电子发烧友网站提供《Vivado Design Suite用户指南:创建和打包自定义IP.pdf》资料免费下载
    发表于 09-13 11:34 0次下载
    Vivado Design Suite<b class='flag-5'>用户</b>指南:<b class='flag-5'>创建</b>和打包<b class='flag-5'>自定义</b>IP

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项
    的头像 发表于 12-25 10:08 3011次阅读
    博途<b class='flag-5'>用户</b><b class='flag-5'>自定义</b>库的使用

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 1次下载
    <b class='flag-5'>创建</b><b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    使用Python/MyHDL创建自定义FPGA IP

    使用 Python/MyHDL 创建自定义 FPGA IP,与 Vivado 集成,并通过 PYNQ 进行控制——实现软件上的简单硬件设计。
    的头像 发表于 04-09 09:53 460次阅读
    使用Python/MyHDL<b class='flag-5'>创建</b><b class='flag-5'>自定义</b>FPGA IP