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

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

3天内不再提示

如何将新增的board的代码直接纳入app下

智芯原动ICETech 来源:HalfCoder 作者: lgl88911 2021-08-18 09:23 次阅读

在Zephyr应用的代码结构--West提货单一文中已经将zephyr和zephyr外部项目纳入到应用的管理,应用可以基于zephyr的任意开发板进行开发。不过实际的嵌入式应用场景需要对硬件进行定制,这就需要添加新的board,为了方便应用项目代码集中管理,我们希望将新增的board的代码直接纳入app下。

添加board

在app目录下添加boards,添加的方式必须遵从boards/《arch》/《board_name》, 例如我的应用要跑在两种不同的硬件上,增加了使用rt1052和esp32两个芯片的board,那么就要新建arm和xtensa两个arch目录,并分别在其中建立新的开发板文件夹atclock和tclock,目录树如下

app

├── CMakeLists.txt

├── boards

│ ├── arm

│ │ └── atclock

│ └── xtensa

│ └── tclock

添加board一般的做法是在zephyr/boards目录下找相同soc的board然后根据硬件对dts和配置文件进行修改,具体添加board的方法可以参考Zephyr移植新Board,例如atclock就是从mm_swiftio修改而来,文件如下

└── atclock

├── CMakeLists.txt

├── Kconfig.board

├── Kconfig.defconfig

├── atclock.dts

├── atclock.yaml

├── atclock_defconfig

├── atclock_flexspi_nor_config.c

├── atclock_flexspi_nor_config.h

├── atclock_sdram_ini_dcd.c

├── board.cmake

├── doc

└── pinmux.c

而tclock是从esp32修改而来,文件如下

└── tclock

├── CMakeLists.txt

├── Kconfig.board

├── Kconfig.defconfig

├── board.cmake

├── doc

├── tclock.dts

├── tclock.yaml

└── tclock_defconfig

如何使用

zephyr提供了两种方法使用非zephyr目录下的board

1.编译时指定

west build -b atclock -- -DBOARD_ROOT=app/ app/

2.Cmake指定

编译时指定需要在每次编译时都指定BOARD_ROOT路径,略显累赘,可以在app/CMakeLists.txt中添加如下内容

list(APPEND BOARD_ROOT ${CMAKE_SOURCE_DIR})

CMAKE_SOURCE_DIR表示app的source code目录,也就是app的目录,由于boards在该目录下,因此在编译时就无需再指定board_root,直接执行下面命令即可

west build -b atclock app/

第二种方法是应用管理自定义board这种场景下比较推荐的方法。

参考

https://docs.zephyrproject.org/latest/application/index.html#custom-board-devicetree-and-soc-definitions

https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/application_development/out_of_tree_board

编辑:jq

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

    关注

    1

    文章

    50

    浏览量

    16101
  • 代码
    +关注

    关注

    30

    文章

    4780

    浏览量

    68539
  • Zephyr
    +关注

    关注

    0

    文章

    21

    浏览量

    5963

原文标题:Zephyr应用的代码结构--自定义开发板

文章出处:【微信号:智芯原动ICETech,微信公众号:智芯原动ICETech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何将LVDS/OLDI桥接到HDMI/DVI

    电子发烧友网站提供《如何将LVDS/OLDI桥接到HDMI/DVI.pdf》资料免费下载
    发表于 09-27 09:35 1次下载
    <b class='flag-5'>如何将</b>LVDS/OLDI桥接到HDMI/DVI

    如何将BQ35100配置为EOS模式

    电子发烧友网站提供《如何将BQ35100配置为EOS模式.pdf》资料免费下载
    发表于 09-11 10:03 0次下载
    <b class='flag-5'>如何将</b>BQ35100配置为EOS模式

    请问light demo如何添加esp_http_client例程?

    );*/ //app_wifi_initialise(); xTaskCreate(&http_test_task, \"http_test_task\", 8192, NULL, 5, NULL); } 2.官方现在是有有无一个demo projec
    发表于 06-28 15:46

    请问STM8S如何将中断代码拷贝到RAM中运行?

    STM8S在写EEPROM时,中断停掉,如何将中断代码拷贝到RAM中运行??? 求助各位大神!!!
    发表于 05-17 07:37

    PADS2.7,如何将3D封装与PCB封装绑定,然后再PCB设计时可直接调用?

    PADS2.7,如何将3D封装与PCB封装绑定,然后再PCB设计时可直接调用?
    发表于 05-06 17:07

    STM32的App应用程序用MDK直接仿真,MDK下载后无法正常仿真的原因?

    如题,尝试了STM32的App应用程序用MDK直接仿真,发现MDK下载后无法正常仿真,程序起始地址和中断偏移都设置了。以前用IAR是可以仿真Ap
    发表于 04-12 08:00

    如何将bootloader代码从flash搬到RAM运行?

    如何将bootloader 代码从flash 搬到RAM 运行
    发表于 04-03 07:14

    如何将bootloader代码从flash搬到RAM运行?

    如何将bootloader 代码从flash 搬到RAM 运行
    发表于 04-01 07:10

    STM32 IAP升级,KEIL如何一份代码运行于两个APP区?

    我的想法是一个IAP+APP1+APP2。上电运行IAP。会检测当前有效APP,跳转有效APP运行。在APP运行期间,收到升级指令,直接do
    发表于 03-26 07:20

    如何将F-RAM™添加到现有的PSoC™ Creator项目?

    我们在PSoC™ Creator 中有一个 PSoC6 项目,并希望 QSPI F-RAM™存储器添加到TDA5235_868_5_BOARD中。我很难找到如何在F-RAM™ PSoC
    发表于 03-01 12:14

    如何将LED连接到Arduino板并使其闪烁

     在本快速入门指南中,您将学习如何将 LED 连接到 Arduino 板并使其闪烁。
    的头像 发表于 02-11 10:53 2199次阅读
    <b class='flag-5'>如何将</b>LED连接到Arduino板并使其闪烁

    如何将按钮连接到Arduino板

    在本快速入门指南中,您将学习如何将按钮连接到Arduino板,并根据按钮是否被按下来读取HIGH或LOW。您将使用电路板上随附的发光二极管 (LED)通过按钮打开和关闭,以便验证按钮按下代码是否正常工作。
    的头像 发表于 02-11 10:52 3779次阅读
    <b class='flag-5'>如何将</b>按钮连接到Arduino板

    HighTec的TC212开发,如何将VADC设置为TOM输出的PWM触发呢?

    HighTec的TC212开发,如何将VADC设置为TOM输出的PWM触发?
    发表于 02-04 09:22

    如何将共享代码映射到DSPR5以及将其映射到其他RAM区域?

    Scratch-Pad Sram(CPU5 DSPR)相关联。 在链接器脚本中,我已经映射了每个.text 部分移至其各自的 PSPR 内核。 我想知道如何将共享代码映射到 DSPR5 以及如何将其映射到其他 RAM 区域。
    发表于 01-24 07:26

    CPU是如何将数据传到GTM模块的?

    ATOM不通过ARU也可以直接写寄存器,从而配置占空比和周期。我的问题是中间发生了什么,CPU是如何将数据传到GTM模块的?
    发表于 01-22 08:09