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

    浏览量

    16229
  • 代码
    +关注

    关注

    30

    文章

    4856

    浏览量

    69453
  • Zephyr
    +关注

    关注

    0

    文章

    29

    浏览量

    6049

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

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

收藏 人收藏

    相关推荐

    如何将项目从IAR迁移到Embedded Studio

    本文描述如何将IAR EWARM项目迁移到SEGGER Embedded Studio(简称SES)中。
    的头像 发表于 02-25 17:11 137次阅读
    <b class='flag-5'>如何将</b>项目从IAR迁移到Embedded Studio

    如何将python文件导入到ROS系统中

    本文通过使用myCobot机械臂进行QR码视觉追踪的实践案例分析,介绍如何将 python 文件导入到 ROS 系统中。
    的头像 发表于 02-11 11:08 318次阅读
    <b class='flag-5'>如何将</b>python文件导入到ROS系统中

    如何快速创建用户自定义BoardApp工程

    概述自HPM_SDKv1.7.0发布开始,在HPM_ENV中新增了user_template文件夹,以方便用户快速创建自定义的BoardApp工程。user_template是用户模板工程,用户
    的头像 发表于 02-08 13:38 131次阅读
    如何快速创建用户自定义<b class='flag-5'>Board</b>和<b class='flag-5'>App</b>工程

    STM32 BOOT跳转到APP后初始化完后成死机 用了FREERTOS

    重复的 __disable_irq();//卡死后新增的,但是没有用,跟上面应该是功能重复的 jump2app=(iapfun)*(vu32*)(appxaddr+4);//用户代码区第二个字为程序开始
    发表于 11-25 21:19

    Taro鸿蒙技术内幕系列(一):如何将React代码跑在ArkUI上

    基于 Taro 打造的京东鸿蒙 APP 已跟随鸿蒙 Next 系统公测,本系列文章深入解析 Taro 如何实现使用 React 开发高性能鸿蒙应用的技术内幕。
    的头像 发表于 10-25 17:24 445次阅读
    Taro鸿蒙技术内幕系列(一):<b class='flag-5'>如何将</b>React<b class='flag-5'>代码</b>跑在ArkUI上

    如何将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

    STM32F103C8T6在bootloader使用了USB中断后,app区再使用usb中断,直接不会跳转到app区,怎么解决?

    主控是STM32F103C8T6,程序是我移植的之前写bootloader和APP代码,是使用的串口IAP(在串口上使用一点问题没有)。我现在遇到的情况是在boot loader使用了USB中断
    发表于 05-21 08:00

    请问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