当前位置: 首页 > wzjs >正文

营销型网站有意义吗安徽省建设工程信息网实名制

营销型网站有意义吗,安徽省建设工程信息网实名制,网站建设进度计划,网站开发liucheng目录 概述 1. 结构介绍 2 构建和配置阶段 2.1 配置阶段 2.2 Cmake编译 3 Zephy项目目录结构 3.1 文件架构 3.2 文件content 概述 本文主要介绍Zephyr kernel Build System CMake的功能,以及使用该工具构建项目,并详细介绍了每个目录以及目录下文…

目录

概述

1. 结构介绍

2  构建和配置阶段

2.1 配置阶段

2.2 Cmake编译

3 Zephy项目目录结构

3.1 文件架构

3.2 文件content


概述

本文主要介绍Zephyr kernel Build System CMake的功能,以及使用该工具构建项目,并详细介绍了每个目录以及目录下文件的作用。

1. 结构介绍

CMake 用于与 Zephyr 内核一起构建您的应用程序。一个 CMake 构建分两个阶段完成。第一阶段称为 configuration。在配置过程中,CMakeLists.txt构建脚本是 执行。配置完成后,CMake 有一个 Zephyr 构建,并且可以生成主机原生的构建脚本平台。

CMake 支持为多个构建系统生成脚本,但仅支持 Ninja 和 Make 由 Zephyr 测试和支持。配置后,您可以通过执行生成的构建脚本来开始构建阶段。这些生成脚本 可以重新编译应用程序,而无需涉及 CMake following 大多数代码更改。但是,在某些更改之后,配置步骤必须 在构建之前再次执行。构建脚本可以检测到其中的一些 情况并自动重新配置,但在某些情况下,这必须 手动完成。

Zephyr 使用 CMake 的“目标”概念来组织构建。一个 target 可以是可执行文件、库或生成的文件。为 应用程序开发人员,库目标是最重要的 理解。Zephyr 构建中的所有源代码都是通过以下方式实现的 包含在库目标中,甚至是应用程序代码。

库目标具有源代码,这些源代码是通过 CMakeLists.txt 构建如下脚本:

target_sources(app PRIVATE src/main.c)

解释:

app:    配置源文件的地址  src/main.c

PRIVATE: keyword 表示我们正在修改库的内部的程序库

 

2  构建和配置阶段

Zephyr 构建过程可以分为两个主要阶段:配置 阶段(由 CMake 驱动)和构建阶段(由 Make 或 Ninja 驱动)。 

2.1 配置阶段

当用户调用 CMake 生成 build system,指定源应用程序目录和 Board 目标。

CMake 首先在应用程序中处理文件 CMakeLists.txt目录中,该目录引用 Zephyr 中的 CMakeLists.txt顶级目录,该目录又引用文件 CMakeLists.txt在整个 build 树中(直接和间接)。它的主要输出是一个 一组 Makefile 或 Ninja 文件来驱动构建过程,但 CMake 脚本也会执行一些自己的处理,这将在此处进行说明。

2.2 Cmake编译

运行Cmake后,会创建build/目录

Cmake 编译的log信息:

-- west build: building domain(s): observer
[0/1] Re-running CMake...
Loading Zephyr default modules (Zephyr base (cached)).
-- Application: D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer
-- CMake version: 3.21.0
-- Cache files will be written to: D:/ncs/v2.9.0/zephyr/.cache
-- Zephyr version: 3.7.99 (D:/ncs/v2.9.0/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf52840dk, qualifiers: nrf52840
-- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
-- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk)
-- Found BOARD.dts: D:/ncs/v2.9.0/zephyr/boards/nordic/nrf52840dk/nrf52840dk_nrf52840.dts
-- Generated zephyr.dts: D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/zephyr.dts
-- Generated devicetree_generated.h: D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/include/generated/zephyr/devicetree_generated.h
-- Including generated dts.cmake file: D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/dts.cmake
Parsing D:/ncs/v2.9.0/zephyr/Kconfig
Loaded configuration 'D:/ncs/v2.9.0/zephyr/boards/nordic/nrf52840dk/nrf52840dk_nrf52840_defconfig'
Merged configuration 'D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/prj.conf'
Merged configuration 'D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/.config.sysbuild'
No change to configuration in 'D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/.config'
No change to Kconfig header in 'D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/include/generated/zephyr/autoconf.h'
-- Configuring done
-- Generating done
-- Build files have been written to: D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer
[4/18] Generating include/generated/zephyr/version.h
-- Zephyr version: 3.7.99 (D:/ncs/v2.9.0/zephyr), build: v3.7.99-ncs2
[18/18] Linking C executable zephyr\zephyr.elf
Memory region         Used Size  Region Size  %age UsedFLASH:       81792 B         1 MB      7.80%RAM:       23056 B       256 KB      8.80%IDT_LIST:          0 GB        32 KB      0.00%
Generating files from D:/ncs/v2.9.0/zephyr/samples/bluetooth/observer/build/observer/zephyr/zephyr.elf for board: nrf52840dk*  Terminal will be reused by tasks, press any key to close it. 

3 Zephy项目目录结构

使用vscode打开Zephy提供的demo,笔者以adc_dt项目为例,介绍Zephy架构下的项目文件结构,具体项目位置:C:\ncs\v2.9.1\zephyr\samples\drivers\adc\adc_dt。

3.1 文件架构

工程目录下包含两个文件夹和4个文件,其具体作用如下:

1) boards 目录:


.overlay文件:   包括和板块相关的配置,主要是根据板块的特性,重写设备树文件,该文件的后缀名为.overlay

.conf文件: 其主要用于使能Zephy提供的一些程序模块,通过对相应的模块配置y或者n,以打开或者关闭该功能


2) src目录


其主要用于包括和项目相关的工程文件,demo中的src目录只包括一个文件main.c,实际开发项目是,可在该目录添加更多的文件


3)CMakeLists.txt


编译项目相关的设置,包括项目名称,添加.c文件,文件路径等内容


4)prj.conf


在进行编译项目代码时,系统默认会选择该文件作为编译配置项,实际开发项目时,可根据需要进行改写


5)README.rst


说明文件,主要用于介绍项目的功能,编译环境,板块信息,使用方法,应用场景等
 


6)sample.yaml


编译选项配置文件

3.2 文件content

1) .overlay文件

/** SPDX-License-Identifier: Apache-2.0** Copyright (c) 2022 Nordic Semiconductor ASA*// {zephyr,user {io-channels = <&adc 0>, <&adc 1>, <&adc 7>;};
};&adc {#address-cells = <1>;#size-cells = <0>;channel@0 {reg = <0>;zephyr,gain = "ADC_GAIN_1_6";zephyr,reference = "ADC_REF_INTERNAL";zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;zephyr,input-positive = <NRF_SAADC_AIN1>; /* P0.03 */zephyr,resolution = <12>;};channel@1 {reg = <1>;zephyr,gain = "ADC_GAIN_1_6";zephyr,reference = "ADC_REF_INTERNAL";zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;zephyr,input-positive = <NRF_SAADC_VDD>;zephyr,resolution = <14>;zephyr,oversampling = <8>;};channel@7 {reg = <7>;zephyr,gain = "ADC_GAIN_1_5";zephyr,reference = "ADC_REF_VDD_1_4";zephyr,vref-mv = <750>;zephyr,acquisition-time = <ADC_ACQ_TIME_DEFAULT>;zephyr,input-positive = <NRF_SAADC_AIN6>; /* P0.30 */zephyr,input-negative = <NRF_SAADC_AIN7>; /* P0.31 */zephyr,resolution = <12>;};
};

2) .conf文件结构

3) CMakeLists.txt

# SPDX-License-Identifier: Apache-2.0cmake_minimum_required(VERSION 3.20.0)find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(ADC)target_sources(app PRIVATE src/main.c)

4)  sample.yaml

sample:name: ADC devicetree driver sample
tests:sample.drivers.adc.adc_dt:tags:- adcdepends_on: adcplatform_allow:- nucleo_l073rz- disco_l475_iot1- cc3220sf_launchxl- cc3235sf_launchxl- cy8cproto_063_ble- stm32l496g_disco- stm32h735g_disco- nrf51dk/nrf51822- nrf52840dk/nrf52840- nrf54l15dk/nrf54l15/cpuapp- nrf54h20dk/nrf54h20/cpuapp- mec172xevb_assy6906- gd32f350r_eval- gd32f450i_eval- gd32vf103v_eval- gd32f403z_eval- esp32_devkitc_wroom/esp32/procpu- esp32_devkitc_wrover/esp32/procpu- esp32s2_saola- esp32c3_devkitm- gd32l233r_eval- lpcxpresso55s36- mr_canhubk3- longan_nano- longan_nano/gd32vf103/lite- rd_rw612_bga- frdm_mcxn947/mcxn947/cpu0- ucans32k1sicintegration_platforms:- nucleo_l073rz- nrf52840dk/nrf52840harness: consoletimeout: 10harness_config:type: multi_lineregex:- "ADC reading\\[\\d+\\]:"- "- .+, channel \\d+: -?\\d+"

参考文献:

https://docs.zephyrproject.org/latest/build/cmake/index.html


文章转载自:

http://MflksuJk.xdnhw.cn
http://rmNNlu9z.xdnhw.cn
http://TGoqS7dV.xdnhw.cn
http://AZJ4KGVc.xdnhw.cn
http://a5geEsnu.xdnhw.cn
http://IaFq06CM.xdnhw.cn
http://y5uZibjS.xdnhw.cn
http://R8eP7xpd.xdnhw.cn
http://LwfXEFrr.xdnhw.cn
http://CcPuVaOA.xdnhw.cn
http://XaHWhwmL.xdnhw.cn
http://QByG1Q9u.xdnhw.cn
http://DPDumrKQ.xdnhw.cn
http://7X7q2nxG.xdnhw.cn
http://xNGnKhfj.xdnhw.cn
http://WE0LfTRa.xdnhw.cn
http://bruz8f2a.xdnhw.cn
http://oWrk6bQe.xdnhw.cn
http://6PVEq2e1.xdnhw.cn
http://mSmgaAEA.xdnhw.cn
http://sFYGoPTv.xdnhw.cn
http://ksl5mKT5.xdnhw.cn
http://NpYXi8xW.xdnhw.cn
http://P2rlCRAh.xdnhw.cn
http://S0Tcumbm.xdnhw.cn
http://eWMHe5f5.xdnhw.cn
http://F9RvOYgm.xdnhw.cn
http://ITyOqoLX.xdnhw.cn
http://fypgbiXF.xdnhw.cn
http://zg8sqfab.xdnhw.cn
http://www.dtcms.com/wzjs/684323.html

相关文章:

  • 网站建设方案及报价单网页设计师主要是做什么
  • 网站制作销售术语宣传
  • 建设科技信息+网站建设无锡高端网站建设开发
  • 怎么在网站上做充话费业务用python做的网站
  • 杭州市社区建设网站湛艺建设集团网站
  • 网站内链怎么删除我用织梦5.7做个网站应该把淘宝客店铺链接放到哪
  • 小说网站开发的实际意义重庆交通在线公众号
  • wordpress 防站教程有什么国外的设计网站推荐
  • 做一个展示型网站要多少钱网上购物英语作文
  • 深圳微信分销网站制作门户网站系统建设清单
  • 公司做网站推广有效果吗找资料的免费网站
  • 怎么做能上谷歌网站企业网站小程序源码
  • 网站建设极地网wordpress关注微信登陆
  • 长治哪家公司做网站好河北利用关键词优化网页
  • 怎么在网站上做按钮网页游戏宣传片排行榜
  • 全屏网站 图片优化dede网站名称更改不了
  • 湖北二师网站建设排名太原网络搭建
  • 免费做网站百度能录入网址正能量
  • 做兼职什么网站比较好如何在云服务器上搭建网站
  • 专注服务于站长和网站的信息平台.wordpress导航标签文件在哪
  • 给网站做h5缓存机制浏览器直接进入网站
  • 网络营销中自建网站国内购物网站案例分析
  • 有没有可以做兼职的网站吗wordpress标题间隔符修改
  • 做网站 公司有哪些陕西建设网综合综合服务中心
  • emlog做企业网站海沧建设网站多少
  • 电子书推送网站怎么做有源代码如何做网站
  • 构建网站无障碍建设河南如何建网站要什么条件
  • 制作展示型网站公司哪家好国内网站域名
  • c access做网站登录页面怎么维护网站教程
  • wordpress网站速度慢网站改版解决方案