mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-04-11 16:37:45 -04:00
Allow toggling the system debug state from the debug menu in Rockbox, or by holding a button combo at boot, so that an SWD/JTAG debugger can be attached to normal non-debug builds without too much hassle. Change-Id: Iee47ef916ade2e5ec1094a63c68e48f1b27b0bbb
177 lines
3.3 KiB
Text
177 lines
3.3 KiB
Text
// This file is marked CC0 1.0.
|
|
// To view a copy of this mark, visit https://creativecommons.org/publicdomain/zero/1.0/
|
|
|
|
// Register definitions common to ARM Cortex-M series processors
|
|
|
|
// Cache controller
|
|
CM_CACHE @ 0xe000ef00 : block {
|
|
ICIALLU @ 0x50 : reg
|
|
ICIMVAU @ 0x58 : reg
|
|
DCIMVAC @ 0x5c : reg
|
|
DCISW @ 0x60 : reg
|
|
DCCMVAU @ 0x64 : reg
|
|
DCCMVAC @ 0x68 : reg
|
|
DCCSW @ 0x6c : reg
|
|
DCCIMVAC @ 0x70 : reg
|
|
DCCISW @ 0x74 : reg
|
|
}
|
|
|
|
// Nested vectored interrupt controller
|
|
CM_NVIC @ 0xe000e000 : block {
|
|
ISER @ 0x100 [ 8; 0x4] : reg
|
|
ICER @ 0x180 [ 8; 0x4] : reg
|
|
ISPR @ 0x200 [ 8; 0x4] : reg
|
|
ICPR @ 0x280 [ 8; 0x4] : reg
|
|
IABR @ 0x300 [ 8; 0x4] : reg
|
|
IPR @ 0x400 [60; 0x4] : reg
|
|
|
|
STIR @ 0xf00 : reg {
|
|
8 0 INTID
|
|
}
|
|
}
|
|
|
|
// System control block
|
|
CM_SCB @ 0xe000ed00 : block {
|
|
ICSR @ 0x04 : reg {
|
|
-- 31 NMIPENDSET
|
|
-- 28 PENDSVSET
|
|
-- 27 PENDSVCLR
|
|
-- 26 PENDSTSET
|
|
-- 25 PENDSTCLR
|
|
-- 23 ISRPREEMPT
|
|
-- 22 ISRPENDING
|
|
20 12 VECTPENDING
|
|
-- 11 RETTOBASE
|
|
08 00 VECTACTIVE
|
|
}
|
|
|
|
VTOR @ 0x08 : reg
|
|
|
|
AIRCR @ 0x0c : reg {
|
|
31 16 VECTKEY : { 0x05FA = KEY }
|
|
-- 15 ENDIANNESS : { 0 = LITTLE; 1 = BIG }
|
|
10 08 PRIGROUP
|
|
-- 02 SYSRESETREQ
|
|
-- 01 VECTCLRACTIVE
|
|
-- 00 VECTRESET
|
|
}
|
|
|
|
SCR @ 0x10 : reg {
|
|
4 SEVONPEND
|
|
2 SLEEPDEEP
|
|
1 SLEEPONEXIT
|
|
}
|
|
|
|
CCR @ 0x14 : reg {
|
|
18 BP
|
|
17 IC
|
|
16 DC
|
|
09 STKALIGN
|
|
08 BFHFNMIGN
|
|
04 DIV_0_TRP
|
|
03 UNALIGN_TRP
|
|
01 USERSETMPEND
|
|
00 NONBASETHRDENA
|
|
}
|
|
|
|
SHPR1 @ 0x18 : reg {
|
|
23 16 PRI_USAGEFAULT
|
|
15 08 PRI_BUSFAULT
|
|
07 00 PRI_MEMMANAGE
|
|
}
|
|
|
|
SHPR2 @ 0x1c : reg {
|
|
31 24 PRI_SVCALL
|
|
}
|
|
|
|
SHPR3 @ 0x20 : reg {
|
|
31 24 PRI_SYSTICK
|
|
23 16 PRI_PENDSV
|
|
07 00 PRI_DEBUGMONITOR
|
|
}
|
|
|
|
SHCSR @ 0x24 : reg {
|
|
18 USGFAULTENA
|
|
17 BUSFAULTENA
|
|
16 MEMFAULTENA
|
|
15 SVCALLPENDED
|
|
14 BUSFAULTPENDED
|
|
13 MEMFAULTPENDED
|
|
12 USGFAULTPENDED
|
|
11 SYSTICKACT
|
|
10 PENDSVACT
|
|
08 MONITORACT
|
|
07 SVCALLACT
|
|
03 USGFAULTACT
|
|
01 BUSFAULTACT
|
|
00 MEMFAULTACT
|
|
}
|
|
|
|
CFSR @ 0x28 : reg {
|
|
// UFSR bits
|
|
25 DIVBYZERO
|
|
24 UNALIGNED
|
|
19 NOCP
|
|
18 INVPC
|
|
17 INVSTATE
|
|
16 UNDEFINSTR
|
|
|
|
// BFSR bits
|
|
15 BFARVALID
|
|
13 LSPERR
|
|
12 STKERR
|
|
11 UNSTKERR
|
|
10 IMPRECISERR
|
|
09 PRECISERR
|
|
08 IBUSERR
|
|
|
|
// MMSR bits
|
|
07 MMARVALID
|
|
05 MLSPERR
|
|
04 MSTKERR
|
|
03 MUNSTKERR
|
|
01 DACCVIOL
|
|
00 IACCVIOL
|
|
}
|
|
|
|
HFSR @ 0x2c : reg {
|
|
31 DEBUGEVT
|
|
30 FORCED
|
|
01 VECTTBL
|
|
}
|
|
|
|
MMFAR @ 0x34 : reg
|
|
BFAR @ 0x38 : reg
|
|
CPACR @ 0x88 : reg
|
|
}
|
|
|
|
// System timer
|
|
CM_SYSTICK @ 0xe000e000 : block {
|
|
CSR @ 0x10 : reg {
|
|
16 COUNTFLAG
|
|
02 CLKSOURCE : { 0 = EXT; 1 = CPU }
|
|
01 TICKINT
|
|
00 ENABLE
|
|
}
|
|
|
|
RVR @ 0x14 : reg {
|
|
23 0 VALUE
|
|
}
|
|
|
|
CVR @ 0x18 : reg {
|
|
23 0 VALUE
|
|
}
|
|
|
|
CALIB @ 0x1c : reg {
|
|
-- 31 NOREF
|
|
-- 30 SKEW
|
|
23 00 TENMS
|
|
}
|
|
}
|
|
|
|
// Debug
|
|
CM_DEBUG @ 0xe000edf0 : block {
|
|
DHCSR @ 0x00 : reg {
|
|
0 C_DEBUGEN
|
|
}
|
|
}
|