Zephyr API Documentation
4.0.0-rc3
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
memory_map.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2014 Wind River Systems, Inc.
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
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) || defined(CONFIG_CPU_CORTEX_M7)
62
#define _PPB_INT_ITM 0xE0000000
63
#define _PPB_INT_DWT 0xE0001000
64
#define _PPB_INT_FPB 0xE0002000
65
#define _PPB_INT_RSVD_1 0xE0003000
66
#define _PPB_INT_SCS 0xE000E000
67
#define _PPB_INT_RSVD_2 0xE000F000
68
#elif defined(CONFIG_CPU_CORTEX_M23) || \
69
defined(CONFIG_CPU_CORTEX_M33) || \
70
defined(CONFIG_CPU_CORTEX_M55) || \
71
defined(CONFIG_CPU_CORTEX_M85)
72
#define _PPB_INT_RSVD_0 0xE0000000
73
#define _PPB_INT_SCS 0xE000E000
74
#define _PPB_INT_SCB 0xE000ED00
75
#define _PPB_INT_RSVD_1 0xE002E000
76
#else
77
#error Unknown CPU
78
#endif
79
#define _PPB_INT_END_ADDR 0xE003FFFF
80
81
/* 0xe0000000 -> 0xe00fffff: private peripheral bus */
82
/* 0xe0040000 -> 0xe00fffff: external [768K] */
83
#define _PPB_EXT_BASE_ADDR 0xE0040000
84
#if defined(CONFIG_CPU_CORTEX_M0) || defined(CONFIG_CPU_CORTEX_M0PLUS) \
85
|| defined(CONFIG_CPU_CORTEX_M1) || defined(CONFIG_CPU_CORTEX_M23)
86
#elif defined(CONFIG_CPU_CORTEX_M3) || defined(CONFIG_CPU_CORTEX_M4)
87
#define _PPB_EXT_TPIU 0xE0040000
88
#define _PPB_EXT_ETM 0xE0041000
89
#define _PPB_EXT_PPB 0xE0042000
90
#define _PPB_EXT_ROM_TABLE 0xE00FF000
91
#define _PPB_EXT_END_ADDR 0xE00FFFFF
92
#elif defined(CONFIG_CPU_CORTEX_M33) || defined(CONFIG_CPU_CORTEX_M55) \
93
|| defined(CONFIG_CPU_CORTEX_M85)
94
#undef _PPB_EXT_BASE_ADDR
95
#define _PPB_EXT_BASE_ADDR 0xE0044000
96
#define _PPB_EXT_ROM_TABLE 0xE00FF000
97
#define _PPB_EXT_END_ADDR 0xE00FFFFF
98
#elif defined(CONFIG_CPU_CORTEX_M7)
99
#define _PPB_EXT_BASE_ADDR 0xE0040000
100
#define _PPB_EXT_RSVD_TPIU 0xE0040000
101
#define _PPB_EXT_ETM 0xE0041000
102
#define _PPB_EXT_CTI 0xE0042000
103
#define _PPB_EXT_PPB 0xE0043000
104
#define _PPB_EXT_PROC_ROM_TABLE 0xE00FE000
105
#define _PPB_EXT_PPB_ROM_TABLE 0xE00FF000
106
#else
107
#error Unknown CPU
108
#endif
109
#define _PPB_EXT_END_ADDR 0xE00FFFFF
110
111
/* 0xe0100000 -> 0xffffffff: vendor-specific [0.5GB-1MB or 511MB] */
112
#define _VENDOR_BASE_ADDR 0xE0100000
113
#define _VENDOR_END_ADDR 0xFFFFFFFF
114
115
#endif
/* ZEPHYR_INCLUDE_ARCH_ARM_CORTEX_M_MEMORY_MAP_H_ */
util.h
Misc utilities.
zephyr
arch
arm
cortex_m
memory_map.h
Generated on Thu Nov 14 2024 03:06:25 for Zephyr API Documentation by
1.12.0