Загрузка данных


[793/793] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           SDRAM:          0 GB        16 MB      0.00%
           FLASH:     1217624 B        16 MB      7.26%
             RAM:      327052 B        16 MB      1.95%
   NXP_FLASH_LMA:     1354945 B         4 MB     32.30%
            ITCM:          0 GB        64 KB      0.00%
            DTCM:      106624 B       128 KB     81.35%
           OCRAM:          0 GB        64 KB      0.00%
        IDT_LIST:          0 GB        32 KB      0.00%

MPU берёт 2 региона: 0x80000000, 0x80400000 - несмотря на то, что я разбил по 16MB. Какие на самом деле берёт регионы MPU? почему 0x80400000 а не 0x81000000 ?

(gdb) p/x mpu_config.mpu_regions[0]
$1 = {base = 0x80000000, name = 0x800f11c8, attr = {rasr = 0x602002a}}
(gdb) p/x mpu_config.mpu_regions[1]
$2 = {base = 0x80400000, name = 0x800f11d0, attr = {rasr = 0x110b0030}}
(gdb) p/x mpu_config.mpu_regions[2]
$3 = {base = 0x67676f6c, name = 0x676e69, attr = {rasr = 0x80409e48}}
(gdb) stepi
0x8001ae72      288             MPU->CTRL = MPU_CTRL_ENABLE_Msk | MPU_CTRL_PRIVDEFENA_Msk;
(gdb) stepi
0x8001ae74      288             MPU->CTRL = MPU_CTRL_ENABLE_Msk | MPU_CTRL_PRIVDEFENA_Msk;
(gdb) stepi
__DSB () at /home/vovan/ZEPHYR_RTOS/zephyrproject/modules/hal/cmsis_6/CMSIS/Core/Include/cmsis_gcc.h:186
186       __ASM volatile ("dsb 0xF":::"memory");
(gdb) stepi
z_arm_usage_fault () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/cortex_m/fault_s.S:80
80              mrs r0, MSP
(gdb) bt
#0  z_arm_usage_fault () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/cortex_m/fault_s.S:80
#1  <signal handler called>
#2  __DSB () at /home/vovan/ZEPHYR_RTOS/zephyrproject/modules/hal/cmsis_6/CMSIS/Core/Include/cmsis_gcc.h:186
#3  z_barrier_dsync_fence_full () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/include/zephyr/arch/arm/barrier.h:26
#4  barrier_dsync_fence_full () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/include/zephyr/sys/barrier.h:62
#5  arm_core_mpu_enable () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/mpu/arm_mpu.c:292
#6  z_arm_mpu_init () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/mpu/arm_mpu.c:554
#7  0x8004de92 in arch_kernel_init () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/include/cortex_m/kernel_arch_func.h:49
#8  z_cstart () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/kernel/init.c:780
#9  0x8001a80a in z_prep_c () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/cortex_m/prep_c.c:221
#10 0x8001a606 in z_arm_reset () at /home/vovan/ZEPHYR_RTOS/zephyrproject/zephyr/arch/arm/core/cortex_m/reset.S:207
Backtrace stopped: previous frame identical to this frame (corrupt stack?)