LCOV - code coverage report
Current view: top level - zephyr/arch/arm/cortex_m - memory_map.h Coverage Total Hit
Test: new.info Lines: 100.0 % 1 1
Test Date: 2025-03-11 06:50:38

            Line data    Source code
       1            1 : /*
       2              :  * Copyright (c) 2014 Wind River Systems, Inc.
       3              :  *
       4              :  * SPDX-License-Identifier: Apache-2.0
       5              :  */
       6              : 
       7              : /**
       8              :  * @file
       9              :  * @brief ARM CORTEX-M memory map
      10              :  *
      11              :  * This module contains definitions for the memory map of the CORTEX-M series of
      12              :  * processors.
      13              :  */
      14              : 
      15              : #ifndef ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_MEMORY_MAP_H_
      16              : #define ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_MEMORY_MAP_H_
      17              : 
      18              : #include <zephyr/sys/util.h>
      19              : 
      20              : /* 0x00000000 -> 0x1fffffff: Code in ROM [0.5 GB] */
      21              : #define _CODE_BASE_ADDR 0x00000000
      22              : #define _CODE_END_ADDR  0x1FFFFFFF
      23              : 
      24              : /* 0x20000000 -> 0x3fffffff: SRAM [0.5GB] */
      25              : #define _SRAM_BASE_ADDR           0x20000000
      26              : #define _SRAM_BIT_BAND_REGION     0x20000000
      27              : #define _SRAM_BIT_BAND_REGION_END 0x200FFFFF
      28              : #define _SRAM_BIT_BAND_ALIAS      0x22000000
      29              : #define _SRAM_BIT_BAND_ALIAS_END  0x23FFFFFF
      30              : #define _SRAM_END_ADDR            0x3FFFFFFF
      31              : 
      32              : /* 0x40000000 -> 0x5fffffff: Peripherals [0.5GB] */
      33              : #define _PERI_BASE_ADDR           0x40000000
      34              : #define _PERI_BIT_BAND_REGION     0x40000000
      35              : #define _PERI_BIT_BAND_REGION_END 0x400FFFFF
      36              : #define _PERI_BIT_BAND_ALIAS      0x42000000
      37              : #define _PERI_BIT_BAND_ALIAS_END  0x43FFFFFF
      38              : #define _PERI_END_ADDR            0x5FFFFFFF
      39              : 
      40              : /* 0x60000000 -> 0x9fffffff: external RAM [1GB] */
      41              : #define _ERAM_BASE_ADDR 0x60000000
      42              : #define _ERAM_END_ADDR  0x9FFFFFFF
      43              : 
      44              : /* 0xa0000000 -> 0xdfffffff: external devices [1GB] */
      45              : #define _EDEV_BASE_ADDR 0xA0000000
      46              : #define _EDEV_END_ADDR  0xDFFFFFFF
      47              : 
      48              : /* 0xe0000000 -> 0xffffffff: varies by processor (see below) */
      49              : 
      50              : /* 0xe0000000 -> 0xe00fffff: private peripheral bus */
      51              : /* 0xe0000000 -> 0xe003ffff: internal [256KB] */
      52              : #define _PPB_INT_BASE_ADDR 0xE0000000
      53              : #if defined(CONFIG_CPU_CORTEX_M0) || defined(CONFIG_CPU_CORTEX_M0PLUS) ||                          \
      54              :         defined(CONFIG_CPU_CORTEX_M1)
      55              : #define _PPB_INT_RSVD_0 0xE0000000
      56              : #define _PPB_INT_DWT    0xE0001000
      57              : #define _PPB_INT_BPU    0xE0002000
      58              : #define _PPB_INT_RSVD_1 0xE0003000
      59              : #define _PPB_INT_SCS    0xE000E000
      60              : #define _PPB_INT_RSVD_2 0xE000F000
      61              : #elif defined(CONFIG_CPU_CORTEX_M3) || defined(CONFIG_CPU_CORTEX_M4) ||                            \
      62              :         defined(CONFIG_CPU_CORTEX_M7)
      63              : #define _PPB_INT_ITM    0xE0000000
      64              : #define _PPB_INT_DWT    0xE0001000
      65              : #define _PPB_INT_FPB    0xE0002000
      66              : #define _PPB_INT_RSVD_1 0xE0003000
      67              : #define _PPB_INT_SCS    0xE000E000
      68              : #define _PPB_INT_RSVD_2 0xE000F000
      69              : #elif defined(CONFIG_CPU_CORTEX_M23) || defined(CONFIG_CPU_CORTEX_M33) ||                          \
      70              :         defined(CONFIG_CPU_CORTEX_M55) || defined(CONFIG_CPU_CORTEX_M85)
      71              : #define _PPB_INT_RSVD_0 0xE0000000
      72              : #define _PPB_INT_SCS    0xE000E000
      73              : #define _PPB_INT_SCB    0xE000ED00
      74              : #define _PPB_INT_RSVD_1 0xE002E000
      75              : #else
      76              : #error Unknown CPU
      77              : #endif
      78              : #define _PPB_INT_END_ADDR 0xE003FFFF
      79              : 
      80              : /* 0xe0000000 -> 0xe00fffff: private peripheral bus */
      81              : /* 0xe0040000 -> 0xe00fffff: external [768K] */
      82              : #define _PPB_EXT_BASE_ADDR 0xE0040000
      83              : #if defined(CONFIG_CPU_CORTEX_M0) || defined(CONFIG_CPU_CORTEX_M0PLUS) ||                          \
      84              :         defined(CONFIG_CPU_CORTEX_M1) || defined(CONFIG_CPU_CORTEX_M23)
      85              : #elif defined(CONFIG_CPU_CORTEX_M3) || defined(CONFIG_CPU_CORTEX_M4)
      86              : #define _PPB_EXT_TPIU      0xE0040000
      87              : #define _PPB_EXT_ETM       0xE0041000
      88              : #define _PPB_EXT_PPB       0xE0042000
      89              : #define _PPB_EXT_ROM_TABLE 0xE00FF000
      90              : #define _PPB_EXT_END_ADDR  0xE00FFFFF
      91              : #elif defined(CONFIG_CPU_CORTEX_M33) || defined(CONFIG_CPU_CORTEX_M55) ||                          \
      92              :         defined(CONFIG_CPU_CORTEX_M85)
      93              : #undef _PPB_EXT_BASE_ADDR
      94              : #define _PPB_EXT_BASE_ADDR 0xE0044000
      95              : #define _PPB_EXT_ROM_TABLE 0xE00FF000
      96              : #define _PPB_EXT_END_ADDR  0xE00FFFFF
      97              : #elif defined(CONFIG_CPU_CORTEX_M7)
      98              : #define _PPB_EXT_BASE_ADDR      0xE0040000
      99              : #define _PPB_EXT_RSVD_TPIU      0xE0040000
     100              : #define _PPB_EXT_ETM            0xE0041000
     101              : #define _PPB_EXT_CTI            0xE0042000
     102              : #define _PPB_EXT_PPB            0xE0043000
     103              : #define _PPB_EXT_PROC_ROM_TABLE 0xE00FE000
     104              : #define _PPB_EXT_PPB_ROM_TABLE  0xE00FF000
     105              : #else
     106              : #error Unknown CPU
     107              : #endif
     108              : #define _PPB_EXT_END_ADDR 0xE00FFFFF
     109              : 
     110              : /* 0xe0100000 -> 0xffffffff: vendor-specific [0.5GB-1MB or 511MB]  */
     111              : #define _VENDOR_BASE_ADDR 0xE0100000
     112              : #define _VENDOR_END_ADDR  0xFFFFFFFF
     113              : 
     114              : #endif /* ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_MEMORY_MAP_H_ */
        

Generated by: LCOV version 2.0-1