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

网上帮别人做网站网站设计需要什么

网上帮别人做网站,网站设计需要什么,wordpress中文分类问题,深圳网站建设公司平台目录 概述 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://www.dtcms.com/wzjs/469455.html

相关文章:

  • 宝鸡网站开发公司搭建网站
  • 动效网站怎么做安徽网站推广公司
  • lnmp用端口做网站武汉百度推广开户
  • 汝南县网站建设今日新闻摘抄
  • 专做冷冻食品批发的网站线上推广营销
  • 在github做网站什么是sem
  • spring做网站优化推广网站怎么做最好
  • 合肥高端网站网络营销的核心是
  • 网站内页怎么做seo抖音广告投放代理商
  • 泰安可靠的网站建设google官网下载安装
  • 东莞企业型网站建设搜索优化推广公司
  • 宁海县做企业网站北京网站外包
  • 简单做网站需要学什么百度定位店铺位置怎么设置
  • 麦当劳订餐网站 是谁做的网站宣传推广文案
  • 教育网站开发背景南京网站推广公司
  • logo设计及创意说明成都网站优化排名推广
  • 视频wordpress源码搜索引擎优化要考虑哪些方面
  • 如何制作h5做网站seo关键词排名优化怎么收费
  • 企业管理咨询服务公司seo站内优化公司
  • 建网站来做什么seo基本步骤
  • 南宁建站热搜360推广开户
  • 济南最新招聘信息今天嘉兴seo外包服务商
  • 网站设计简单讲解发布软文广告
  • 重庆网站建设哪里比较好呢安徽seo团队
  • 文本中设置网站超链接怎么做自动搜索关键词软件
  • 个人业务网站建设百度网站提交入口
  • 建筑工具网站网站设计优化
  • 免费做网站刮刮卡网站建设制作费用
  • 中信建设有限责任公司投资部执行总监青岛百度seo代理
  • 枣阳网站建设等服务seoul什么意思