简介
本文简单介绍NCS中的代码分区。
环境
1、zephyr v3.5.99
2、nrf connect sdk v2.6.1
分区简介
在任一例程中,我们编译完代码后点击左侧的Memory report,就会看到如下界面
图中显示了例程代码的分区情况,具体解释如下:
mcuboot: 引导程序的存储区域(48 kB)。
mcuboot_primary: 主固件区域,包含引导程序填充和主应用程序(472 kB)。
mcuboot_secondary: 次要固件区域,用于固件更新(472 kB)。
settings_storage: 用于存储系统设置(8 kB)。
littlefs_storage: 一个小型的文件系统存储区(24 kB)。
sram_primary: 主SRAM区域,用于运行时数据存储(256 kB)。
分区定义
以上分区可以在设备树代码及Kconfig文件中找到相关定义。
&flash0 {
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
boot_partition: partition@0 {
label = "mcuboot";
reg = <0x00000000 0x0000C000>;
};
slot0_partition: partition@c000 {
label = "image-0";
reg = <0x0000C000 0x00076000>;
};
slot1_partition: partition@82000 {
label = "image-1";
reg = <0x00082000 0x00076000>;
};
/*
* The flash starting at 0x000f8000 and ending at
* 0x000fffff is reserved for use by the application.
*/
/*
* Storage partition will be used by FCB/LittleFS/NVS
* if enabled.
*/
storage_partition: partition@f8000 {
label = "storage";
reg = <0x000f8000 0x00008000>;
};
};
};