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

    文章

    58

    浏览量

    17003
  • 代码
    +关注

    关注

    30

    文章

    5024

    浏览量

    75979
  • Zephyr
    +关注

    关注

    1

    文章

    75

    浏览量

    6873

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何将 Micro/WIN 的库文件导入到 Micro/WIN SMART 中?

    按原官网的200库转SMART200库不能转换某些库,这个作为一个修正或补充,库的调用直接在主程序就可以了,不用在子程序。 原库转换说明网址: 如何将 Micro/WIN 的库文件导入到 Micro
    发表于 09-01 07:52

    S210如何将故障代码传送到PLC或者HMI?

    检查了S210的手册,发现好像只支持3、5、102、105 四个报文? 好像也添加不了自由报文。 那如何将故障代码传送到PLC或者HMI? 如r2131 Actual fault number或r2132 Actual alarm number
    发表于 08-27 08:08

    PSoC Thermal Management Expansion Board Kit CY8CKIT - 036:开启高效热管理设计之旅

    PSoC Thermal Management Expansion Board Kit CY8CKIT - 036:开启高效热管理设计之旅 在电子设备的设计中,热管理是一个至关重要的环节,它直接
    的头像 发表于 07-01 14:15 494次阅读

    TEF6686AHN/V205如何将这些参数设置固化到目标代码

    现在客户已经成功实现了TEF6686芯片,并完成了相应参数的配置,他们需要指导如何将这些参数设置固化到目标代码
    发表于 06-29 08:17

    壁仞科技纳入香港交易所科技100指数

    6月8日,根据香港交易所发布公告,壁仞科技(06082.HK)纳入至香港交易所科技100指数。该纳入将于2026年6月12日(星期五)收市后实施,并于2026年6月15日(星期一)起生效。
    的头像 发表于 06-11 11:45 353次阅读

    探索Photodiode PGA PICtail™ Daughter Board:从入门到应用

    Microchip的Photodiode PGA PICtail™ Daughter Board,了解它的特性、使用方法以及相关的技术要点。 文件下载: MCP6SX2DM-PCTLPD.pdf 一、代码保护
    的头像 发表于 06-06 09:10 443次阅读

    如何将光强度转换为电量

    如何将光强度转换为电量 在电子工程领域,光强度转换为电量是一项常见且重要的任务。它在诸多场景中都有广泛应用,比如室内照明设计、摄影准备,以及当下热门的智能农业领域。本文详细探讨如何实现光强度到
    的头像 发表于 05-29 12:25 464次阅读

    探索MN34041 Sensor NanoVesta Head Board:高性价比图像传感解决方案

    Semiconductor推出的MN34041 Sensor NanoVesta Head Board,为我们带来了一款紧凑、低成本且高动态范围的图像传感解决方案。今天,我们就来深入了解一这款产品
    的头像 发表于 05-21 14:15 385次阅读

    博泰车联网正式纳入港股通

    3月6日,上海证券交易所与深圳证券交易所同步发布公告,对沪港通及深港通的港股通股票名单作出调整。根据调整结果,博泰车联(股票代码:02889.HK)已成功纳入港股通标的证券名单,并于今日(3月9日)正式生效。
    的头像 发表于 03-11 11:32 880次阅读

    信维通信被纳入MSCI中国A股指数

    近期,国际指数编制公司MSCI公布了其2026年2月的指数季度调整结果。本次调整中,MSCI全球标准指数新增63只个股,其中包括33只A股标的。信维通信在本次调整中被纳入MSCI中国A股指数,相关调整将于2026年2月27日收盘后生效。
    的头像 发表于 02-26 16:18 1384次阅读

    SUREWARE ULTRA RUGGED HARDWARE之BOARD - TO - BOARD GUIDE POST STANDOFF介绍

    SUREWARE ULTRA RUGGED HARDWARE之BOARD - TO - BOARD GUIDE POST STANDOFF介绍 在电子设备的设计中,电路板之间的连接和支撑是一个
    的头像 发表于 12-18 11:25 715次阅读

    如何将某个函数或变量放在固定的地址 ?

    如题,如何将某个函数或者变量放在固定的地址?类似于__attribute__( at(绝对地址) ),用的nucleistudio ide, __attribute__( at(绝对地址) )出现警告 at属性被忽视,有类似的属性吗?
    发表于 11-07 06:07

    如何将SD卡驱动模块挂载至外设总线

    我们的队伍编号是CICC2962,这是我们第五次分享,接下来我分享一如何将SD卡驱动模块挂载至外设总线上,并且发送一条读指令。 这是外设总线上被保留的接口信号,我们所写的
    发表于 10-30 06:12

    qboot跳转app后卡在app的系统调用处,为什么?

    ;quot;); } 当我把HAL_DeInit();注释掉,其他不变,现象如下图 这是我app中注释的代码段 void rt_application_init(void
    发表于 10-10 07:03

    ota升级完成后,bootloader没有download区的新代码搬运到app区?

    download分区中,因为能看到最新的版本号,只是不明白的在跳入app程序时候为什么又把download分区又擦了!然后跳入app执行原来的代码!为什么?
    发表于 09-29 10:04