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

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

3天内不再提示

West提货单单一应用的提货单使用方法

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

简洁清晰的代码结构有利于项目代码的管理,Zephyr的West工具对多仓库代码文件提供了多种拓扑结构管理方式。West对多仓库的管理基本概念可以参考Zephyr west简介中”提货单简介”章节,本文主要讨论单一应用的提货单使用方法。

Zephyr代码工作空间的拓扑结构

West支持的代码拓扑结构有三种

T1: 星型结构,manifest 在zephyr中

T2: 星型结构,manifest 在app中, 适用于单独应用管理

T3: 树型结构,专门的manifest目录, 适用于多应用管理

T1

zephyr仓库作为中央存储库,并在它的west.yml 中指定其模块(外部项目), app可以放到任意目录。这种形式在不修改west.yml的情况下会下载所有的外部module,适合于Zephyr本身的开发。

类似于以Zephyr为主项目,其它为git子模块,这是Zephyr Getting Started示例使用的目录结构,这里就不再举例说明

T2

应用程序的仓库充当中央存储库,并在它的west.yml中指定要使用的模块(zephyr和其它外部项目)。该方式适合于单个独立的Zephyr应用的开发。

类似于以Zephyr应用为主项目,其它(包括zephyr)为git子模块,后文会详细说明该方式的使用,这里不做举例。

T3

不包含 Zephyr 源代码的专用”提货单”存储库,指定所有处于同一“级别”的项目列表,适合于多个相互独立的Zephyr应用开发。

类似于google的repo管理,示例如下

工作空间的代码结构

west-workspace/

├── app1/ # .git/ project

│ ├── CMakeLists.txt

│ ├── prj.conf

│ └── src/

│ └── main.c

├── app2/ # .git/ project

│ ├── CMakeLists.txt

│ ├── prj.conf

│ └── src/

│ └── main.c

├── manifest-repo/ # .git/ never modified by west

│ └── west.yml # main manifest with optional import(s) and override(s)

├── modules/

│ └── lib/

│ └── tinycbor/ # .git/ project from either the main manifest or

│ # from some import

└── zephyr/ # .git/ project

└── west.yml # This can be partially imported with lower precedence or ignored.

# Only the ‘manifest-rev’ version can be imported.

对应的提货单应该放在manifest-repo/west.yml

manifest:

remotes:

- name: zephyrproject-rtos

url-base: https://github.com/zephyrproject-rtos

- name: your-git-server

url-base: https://git.example.com/your-company

defaults:

remote: your-git-server

projects:

- name: zephyr

remote: zephyrproject-rtos

revision: v2.5.0

import: true

- name: app1

revision: SOME_SHA_OR_BRANCH_OR_TAG

- name: app2

revision: ANOTHER_SHA_OR_BRANCH_OR_TAG

self:

path: manifest-repo

单一应用West提货单

我的个人项目只有单应用,因此采用T1或者T2结构都可以。我希望应用仓库里面只有单纯和应用相关的代码,同时又能够通过应用仓库拿到Zephyr代码和必要的外部项目代码,这一点T2就非常合适了。

应用仓库的代码拓扑结构如下

app

├── CMakeLists.txt

├── boards

├── drivers

├── dts

├── prj.conf

├── scripts

├── src

└── west.yml

west.yaml内容如下

manifest:

remotes:

- name: zephyrproject-rtos

url-base: https://github.com/zephyrproject-rtos

projects:

- name: zephyr

remote: zephyrproject-rtos

revision: zephyr-v2.6.0

clone-depth: 1

import:

name-allowlist:

- cmsis

- hal_nxp

- hal_espressif

- fatfs

- lvgl

self:

west-commands: scripts/west-commands.yml

执行下面命令west init -l app/就会按照west.yaml指定的内容下载zephyr和zephyr外部项目的代码,该west.yaml要下载的内容:

Zephyr的源代码:指定下载v2.6.0 tag的

cmsis: 使用cortex-m7,需要cmsis

hal_nxp: 应用会跑到rt1052上因此需要nxp hal

hal_espressif: 应用会跑到esp32上因此需要espressif hal

fatfs:应用使用了文件系统

lvgl:应用使用了gui

除以上内容外,不会再下载其它内容,这样大大缩减了T1模式下载代码的时间和占用的空间

├── LICENSE

├── README.en.md

├── README.md

├── app

│ ├── CMakeLists.txt

│ ├── boards

│ ├── drivers

│ ├── dts

│ ├── prj.conf

│ ├── scripts

│ ├── src

│ └── west.yml

├── modules

│ ├── fs

│ ├── hal

│ └── lib

└── zephyr

参考

https://docs.zephyrproject.org/latest/guides/west/workspaces.html#topologies-supported

编辑:jq

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

    关注

    6

    文章

    323

    浏览量

    39159
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68330
  • Zephyr
    +关注

    关注

    0

    文章

    18

    浏览量

    5952
收藏 人收藏

    评论

    相关推荐

    利用RFID技术实现仓管人员提货的自动化管理方案

    那么在现代高度集成化的货物仓储管理中,如何合理安排人员权限问题呢?针对个大型货运仓库,如果能做到恰当安排人员的提货权限,那么就可以大大减少甚至避免发货物、提错货、货物丢失的情况;从而实现高效
    的头像 发表于 12-20 09:31 4669次阅读
    利用RFID技术实现仓管人员<b class='flag-5'>提货</b>的自动化管理方案

    瑞芯微2022年财报:净利下滑近半,Q3提货接近0

    下降 50.58% ;扣非归母净利润为1.73亿元, 同比下降 61.28% 。从财报数据来看,瑞芯微也没能“逃离”行业下游需求下滑,以及去库存的影响,这两大关键因素也是瑞芯微2022年业绩下滑的原因。   2022 年需求下滑至冰点,Q3 提货接近0 分季度来看,瑞芯微在第
    的头像 发表于 04-14 01:12 1953次阅读
    瑞芯微2022年财报:净利下滑近<b class='flag-5'>一</b>半,Q3<b class='flag-5'>提货</b>接近0

    九江市欧姆龙定位模块回收 回收上门提货

    回收咨询***-同步微信。九江市欧姆龙定位模块回收 回收上门提货,,回收二手欧姆龙CPU模块上门回收欧姆龙产品,专业从事各种电子元件的回收,回收欧姆龙模块、回收欧姆龙plc扩展模块,触摸屏高价回收
    发表于 10-21 14:57

    ESD5641D12-3/TR现货出售 潍坊回收进口电容 统货单片机收购

    潍坊回收进口电容 统货单片机收购科启源专业电子回收18年,价高同行,诚信报价收购工厂呆料IC芯片,退港货,转行积压库存货,金额大小都收;自己压货,现金交易(IC 、内存、传感器)乐意还价!厌不其烦
    发表于 10-26 13:39

    东莞常平回收工厂电感 统货单片机收购

    东莞常平回收工厂电感 统货单片机收购科启达电子专业收购电料贴片直插IC集成IC、二、三极管、手机料、CPU内存、继电器、滤波器、光耦、模块TI,XILINX,ATMEL,ALTERA,AD,ST
    发表于 11-03 13:52

    底片的使用方法()

    底片的使用方法() 作者:占斌1.前言
    发表于 04-16 21:17 686次阅读
    底片的<b class='flag-5'>使用方法</b>(<b class='flag-5'>一</b>)

    Matlab使用方法和程序设计

    Matlab使用方法和程序设计 实验 Matlab使用方法和程序设计
    发表于 10-17 00:18 5374次阅读
    Matlab<b class='flag-5'>使用方法</b>和程序设计

    基于RFID技术的仓储管理提货方案设计

    设计了种基于EPC编码规则的仓管人员提货管理方案。通过对提货人员EPC特殊编码,从而实现提货权限的合理分配与管理。有效解决了大型仓库出入库操作的复杂流程,大大减少
    发表于 02-16 16:13 99次下载
    基于RFID技术的仓储管理<b class='flag-5'>提货</b>方案设计

    奇趣科技推出款基于嵌入式linux的面向单一应用的开发平台

    奇趣科技公司日前推出了款基于嵌入式linux的面向单一应用嵌入式产品的开发平台qtopiacore,可用于汽车自动化、医疗设备、pos机、办公设备以及图象处理设备的开发等。
    发表于 03-11 15:03 987次阅读

    Keil的使用方法 - 常用功能(

    Keil的使用方法 - 常用功能(
    的头像 发表于 04-07 14:51 8714次阅读
    Keil的<b class='flag-5'>使用方法</b> -  常用功能(<b class='flag-5'>一</b>)

    示波器的使用方法(三):示波器的使用方法详解

    示波器的使用方法并非很难,重点在于正确使用示波器的使用方法。往期文章中,小编对模拟示波器的使用方法和数字示波器的使用方法均有所介绍。为增进大家对示波器的
    的头像 发表于 12-24 20:37 3185次阅读

    浅析Zephyr应用的代码结构中的自定义驱动

    本篇是《《Zephyr应用的代码结构》》系列的终篇和下面两篇文章起可以构建出个有app独立管理的zephyr项目 Zephyr应用的代码结构--West提货单: zephyr和ze
    的头像 发表于 08-18 09:08 4733次阅读

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

    在Zephyr应用的代码结构--West提货单一文中已经将zephyr和zephyr外部项目纳入到应用的管理,应用可以基于zephyr的任意开发板进行开发。不过实际的嵌入式应用场景需要对硬件进行定制
    的头像 发表于 08-18 09:23 1764次阅读

    数智先锋谈丨软通咨询彭智勇(下):融合“咨询+实施”能力,重塑供应链金融

    某小企业手握大量订单也不敢扩大生产,因为缺乏资金采购原材料;某企业同批产品重复质押融资,暴雷后给银行带来巨额资金损失;某信贷经理爬上高高的仓库,识别出提货单造假,避免了贷款风险…… 类似的故事
    的头像 发表于 12-20 09:45 283次阅读
    数智先锋谈丨软通咨询彭智勇(下):融合“咨询+实施”能力,重塑供应链金融

    从多线程设计模式到对 CompletableFuture 的应用

    提到的 Future 模式 ,以及在实际业务开发中对该模式的应用,而这些内容对于本书来说只是冰山角,还是推荐大家有时间去阅读原书。 1. Future 模式:“先给您提货单” 我们先来看个场景:假如我们去蛋糕店买蛋糕,下单后
    的头像 发表于 06-26 14:18 265次阅读
    从多线程设计模式到对 CompletableFuture 的应用