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

vs-code + nRF Connect SDK 编译nrf54l15dk

目录

概述

1 编译配置

1.1 编译环境

1.2 VS-Code配置

2 创建和编译项目

2.1 创建项目

 2.2 编译项目

2.3 重新编译

3 编译信息 

3.1 设备树信息

3.3 MCU资源消耗信息

4 项目配置信息

4.1 设备树文件

4.2 KConfig文件

3.3 .hex文件 

4.3 Cmake文件

 5 编译log:


概述

本文主要介绍基于vs-code + nRF Connect SDK编译nrf54l15dk MCU的项目,文章介绍了配置编译环境的方法:包括Toolchain和SDK,还介绍了创建项目的方法,并编译代码,还介绍整个Output文件的内容。

1 编译配置

1.1 编译环境

编译环境介绍:

nRF Connect SDK 版本: v2.9.1

toolchains版本: b620d30767

VS-CODE版本: 1.98.1

nRF Connect for VS Code Extension Pack 版本: 2024.9.5

1.2 VS-Code配置

1)nRF Connect 插件

打开VS Code,点击nRF Connect插件会出现如下页面

2)nRF SDK Toolchain

点击Manage toolchains系统会列出SDK Toolchain列表

3)nRF SDK SDK

点击Manage SDKS系统会列出SDK 的列表,选择需要的版本并安装该SDK

2 创建和编译项目

2.1 创建项目

点击如下图标创建项目,nRF SDK下有许多的Demo可供参考,可以选择合适的项目作为Demo项目。

笔者以light_dimmer项目为例作为测试项目,其在SDK中的位置如下:

C:\ncs\v2.9.1\nrf\samples\bluetooth\mesh\light_dimmer\

 创建完成项目后,可配置编译参数

 2.2 编译项目

命名编译的output文件夹,然后点击如下图标进行代码编译

编译流程如下:

 编译完成后,可以看见如下Log:

2.3 重新编译

如果需要重新编译该项目,点击如下图标,系统就会重新编译代码

3 编译信息 

3.1 设备树信息

点击如下图标就可以看见系统的编译器信息

其具体信息如下,通过该UI,可以知道系统使用了哪些资源,同时也可以对这些资源进行编辑:

3.3 MCU资源消耗信息

在编译的板卡log信息中,可以看见编译代码的log

Memory region         Used Size      Region Size       %age Used



           FLASH:         333516 B       992 KB               32.83%
             RAM:           60166 B         256 KB               22.95%
        IDT_LIST:          0 GB              32 KB                 0.00%

 vs-Code还提供个一个统计列表,方便查看MCU消耗的资源:

1) ROM资源

2)RAM资源

3)MCU内存分布

4 项目配置信息

在Config目录下可以找到项目的配置信息

 

4.1 设备树文件

 其包括两个头文件,开发这可以在该文件中设计系统的设备数据信息

4.2 KConfig文件

 该文件重要负责管理MCU相关的资料,通过配置y/n就可以enable或者disable相关的功能。

3.3 .hex文件 

编译器在编译完成代码后,会生成一个.hex文件,其具体地址如下:

4.3 Cmake文件

 其内容包括加载的source code文件路径,SDK地址,项目名称等信息

 5 编译log:

Building light_dimmer_02
C:\WINDOWS\system32\cmd.exe /d /s /c "west build --build-dir c:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02 c:/ncs/mytest/light_dimmer_02 --pristine --board nrf54l15dk/nrf54l15/cpuapp -- -DNCS_TOOLCHAIN_VERSION=NONE -DEXTRA_CONF_FILE=boards/nrf54l15dk_nrf54l15_cpuapp.conf -DBOARD_ROOT=c:\ncs\mytest\light_dimmer_02"

-- west build: generating a build system
Loading Zephyr module(s) (Zephyr base): sysbuild_default
-- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter 
-- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
Parsing c:/ncs/mytest/light_dimmer_02/Kconfig.sysbuild
Loaded configuration 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/_sysbuild/empty.conf'
Merged configuration 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/_sysbuild/empty.conf'
Configuration saved to 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/zephyr/.config'
Kconfig header saved to 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/_sysbuild/autoconf.h'
-- 
   *************************************
   * Running CMake for light_dimmer_02 *
   *************************************

Loading Zephyr default modules (Zephyr base).
-- Application: C:/ncs/mytest/light_dimmer_02
-- CMake version: 3.21.0
-- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter 
-- Cache files will be written to: C:/ncs/v2.9.1/zephyr/.cache
-- Zephyr version: 3.7.99 (C:/ncs/v2.9.1/zephyr)
-- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
-- Board: nrf54l15dk, qualifiers: nrf54l15/cpuapp
-- 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 Dtc: C:/ncs/toolchains/b620d30767/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") 
-- Found BOARD.dts: C:/ncs/v2.9.1/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp.dts
unit address and first address in 'reg' (0x5004c000) don't match for /soc/peripheral@50000000/vpr@4c000/mailbox@1
-- Generated zephyr.dts: C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/zephyr.dts
-- Generated devicetree_generated.h: C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/include/generated/zephyr/devicetree_generated.h
-- Including generated dts.cmake file: C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/dts.cmake
Parsing C:/ncs/v2.9.1/zephyr/Kconfig
Loaded configuration 'C:/ncs/v2.9.1/zephyr/boards/nordic/nrf54l15dk/nrf54l15dk_nrf54l15_cpuapp_defconfig'
Merged configuration 'C:/ncs/mytest/light_dimmer_02/prj.conf'
Merged configuration 'C:/ncs/mytest/light_dimmer_02/boards/nrf54l15dk_nrf54l15_cpuapp.conf'
Merged configuration 'C:/ncs/mytest/light_dimmer_02/boards/nrf54l15dk_nrf54l15_cpuapp.conf'
Merged configuration 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/.config.sysbuild'
Configuration saved to 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/.config'
Kconfig header saved to 'C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/include/generated/zephyr/autoconf.h'
-- Found GnuLd: c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") 
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- The ASM compiler identification is GNU
-- Found assembler: C:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
=========== Generating psa_crypto_config ===============
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Backup: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
Backup: CONFIG_MBEDTLS_THREADING: False
Backup: CONFIG_MBEDTLS_THREADING_ALT: True
=========== Checkpoint: backup ===============
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Restore: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
Restore: CONFIG_MBEDTLS_THREADING: False
Restore: CONFIG_MBEDTLS_THREADING_ALT: True
=========== End psa_crypto_config ===============
=========== Generating psa_crypto_library_config ===============
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Backup: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
Backup: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
Backup: CONFIG_MBEDTLS_THREADING: False
Backup: CONFIG_MBEDTLS_THREADING_ALT: True
=========== Checkpoint: backup ===============
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
Restore: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
Restore: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
Restore: CONFIG_MBEDTLS_THREADING: False
Restore: CONFIG_MBEDTLS_THREADING_ALT: True
=========== End psa_crypto_library_config ===============
-- Setting build type to 'MinSizeRel' as none was specified.
CMake Warning at C:/ncs/v2.9.1/zephyr/CMakeLists.txt:2133 (message):
  __ASSERT() statements are globally ENABLED


-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02
-- Configuring done
-- Generating done
-- Build files have been written to: C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02
-- west build: building application
[6/382] Generating include/generated/zephyr/version.h
-- Zephyr version: 3.7.99 (C:/ncs/v2.9.1/zephyr), build: v3.7.99-ncs2-1
[382/382] Linking C executable zephyr\zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:      325652 B      1396 KB     22.78%
             RAM:       63246 B       188 KB     32.85%
        IDT_LIST:          0 GB        32 KB      0.00%
Generating files from C:/ncs/mytest/light_dimmer_02/build_nrf54l15_dk_02/light_dimmer_02/zephyr/zephyr.elf for board: nrf54l15dk
[10/10] Generating ../merged.hex
 *  Terminal will be reused by tasks, press any key to close it. 

相关文章:

  • 系统思考:销售业绩与团队士气
  • AD9850函数信号发生器制作(全套资料)
  • C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷一)
  • Matlab 条纹点法向量计算
  • PrivHunterAI越权漏洞检测工具详细使用教程
  • openbmc mctpd模块分析
  • Vue源码深度解析:从2.x到3.x的架构演进与核心原理剖析
  • Linux中Firewall防火墙操作
  • Python GUI打包工具对比与选择
  • Ip 等级
  • 拆解 “ES 已死“ 伪命题:Agentic RAG 时代搜索引擎的终极形态
  • 暴雨受邀参加AMD华南渠道分享会
  • 如何通过ibd文件恢复MySql数据
  • 机器视觉工程师红外相机的选择:红外长波工业相机和短波红外工业相机玄机大总结
  • e2studio开发RA4M2(2)---Programmer烧录程序
  • sql-labs less-1-5wp
  • Python入门教程:从零开始学习Python编程
  • Mybatis3 调用存储过程
  • 计算机二级web易错点(2)-选择题
  • 深入理解Linux网络随笔(七):容器网络虚拟化--Veth设备对
  • 外链代发免费/一键优化清理手机
  • 企业网络规划与设计方案/网络seo优化
  • 左右翻网站模版/网站策划书怎么写
  • 网站关键字个数/广州网站设计制作
  • 网站建设 工业 青岛/网络营销就业前景和薪水
  • 好玩的网站源码/公司百度推广一年多少钱