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

    文章

    55

    浏览量

    16860
  • 代码
    +关注

    关注

    30

    文章

    4981

    浏览量

    74506
  • Zephyr
    +关注

    关注

    1

    文章

    62

    浏览量

    6641

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

    5.1.1版本 stm32创建工程直接编译报错怎么解决?

    ‘void’ RT_WEAK void rt_hw_board_init() 并未修改任何代码,说明生成的库函数有bug。网上查找可发现解决方法为 RT_WEAK 替换为 rt_weak
    发表于 09-12 07:48

    如何将GCC项目导入NuEclipse?

    如何将GCC项目导入NuEclipse?
    发表于 09-01 07:04

    请问使用 NUC505 时如何将代码放入 SRAM 中执行?

    使用 NUC505 时如何将代码放入 SRAM 中执行?
    发表于 08-28 08:25

    请问如何将ISP写入Nuvoton 8051 MCU系列?

    如何将ISP写入Nuvoton 8051 MCU系列?
    发表于 08-18 07:34

    MULTICH_CONNECT_PCB如何将EVAL_PASCO2_SENSOR 到 CYW943907AEVALF?

    MULTICH_CONNECT_PCB如何将EVAL_PASCO2_SENSOR 到 CYW943907AEVALF ,请分享任何文档或代码以及一些6EDL_SPI_LINK ,这对我有很大帮助。
    发表于 07-09 06:44

    《仿盒马》app开发技术分享-- 新增地址(28)

    关掉页面,回到地址列表展示页面,这个页面的数据查询放到onpageshow中,回到页面就会刷新列表,我们已经在地图选点页面选择好条目,然后跳转到地址新增页面,然后我们填写好对应的数据,点击保存,后续我们会打磨这几个页面的细节,让他更符合地址添加的商业app逻辑
    发表于 06-30 20:13

    HarmonyOS 代码工坊的指尖开发,让 APP 开发所见即所得

    沙盘被直接搬入了移动设备本身。眼尖的开发者应该已经发现,最近华为应用市场“应用尝鲜”专区里,上架了一款名为“HarmonyOS 代码工坊”的新应用,下载量持续攀升。 开发者只需要下载“HarmonyOS 代码工坊”,就可以看到,
    的头像 发表于 06-24 12:08 982次阅读
    HarmonyOS <b class='flag-5'>代码</b>工坊的指尖开发,让 <b class='flag-5'>APP</b> 开发所见即所得

    STM32IDE如何设定代码到ITCM中运行?

    摸索到了如何将变量定义到某个地址,但是不清楚如何让代码在指定RAM中运行。按照设定变量的方式设定代码,程序直接进入了异常中断{:16:}。
    发表于 06-24 06:45

    如何将K230 image转成jpg?

    如何将K230image转成jpg,我想获取图片,传回我自己的系统 你好,可以使用img.to_jpeg()来对其进行压缩。
    发表于 06-12 06:41

    如何将一个FA模型开发的声明式范式应用切换到Stage模型

    模型切换概述 本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型,您需要完成如下动作: 工程切换:新建一个Stage模型的应用工程。 配置文件切换:config.json切换
    发表于 06-04 06:22