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.