OpenOCD
rtos_chibios_stackings.c
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2012 by Matthias Blaicher *
3  * Matthias Blaicher - matthias@blaicher.com *
4  * *
5  * Copyright (C) 2011 by Broadcom Corporation *
6  * Evan Hunter - ehunter@broadcom.com *
7  * *
8  * This program is free software; you can redistribute it and/or modify *
9  * it under the terms of the GNU General Public License as published by *
10  * the Free Software Foundation; either version 2 of the License, or *
11  * (at your option) any later version. *
12  * *
13  * This program is distributed in the hope that it will be useful, *
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
16  * GNU General Public License for more details. *
17  * *
18  * You should have received a copy of the GNU General Public License *
19  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
20  ***************************************************************************/
21 
22 #ifdef HAVE_CONFIG_H
23 #include "config.h"
24 #endif
25 
26 #include "rtos.h"
27 #include "target/armv7m.h"
28 
30  { -1, 32 }, /* r0 */
31  { -1, 32 }, /* r1 */
32  { -1, 32 }, /* r2 */
33  { -1, 32 }, /* r3 */
34  { 0x00, 32 }, /* r4 */
35  { 0x04, 32 }, /* r5 */
36  { 0x08, 32 }, /* r6 */
37  { 0x0c, 32 }, /* r7 */
38  { 0x10, 32 }, /* r8 */
39  { 0x14, 32 }, /* r9 */
40  { 0x18, 32 }, /* r10 */
41  { 0x1c, 32 }, /* r11 */
42  { -1, 32 }, /* r12 */
43  { -2, 32 }, /* sp */
44  { -1, 32 }, /* lr */
45  { 0x20, 32 }, /* pc */
46  { -1, 32 }, /* xPSR */
47 };
48 
50  0x24, /* stack_registers_size */
51  -1, /* stack_growth_direction */
52  ARMV7M_NUM_CORE_REGS, /* num_output_registers */
53  NULL, /* stack_alignment */
54  rtos_chibios_arm_v7m_stack_offsets /* register_offsets */
55 };
56 
58  { -1, 32 }, /* r0 */
59  { -1, 32 }, /* r1 */
60  { -1, 32 }, /* r2 */
61  { -1, 32 }, /* r3 */
62  { 0x40, 32 }, /* r4 */
63  { 0x44, 32 }, /* r5 */
64  { 0x48, 32 }, /* r6 */
65  { 0x4c, 32 }, /* r7 */
66  { 0x50, 32 }, /* r8 */
67  { 0x54, 32 }, /* r9 */
68  { 0x58, 32 }, /* r10 */
69  { 0x5c, 32 }, /* r11 */
70  { -1, 32 }, /* r12 */
71  { -2, 32 }, /* sp */
72  { -1, 32 }, /* lr */
73  { 0x60, 32 }, /* pc */
74  { -1, 32 }, /* xPSR */
75 };
76 
78  0x64, /* stack_registers_size */
79  -1, /* stack_growth_direction */
80  ARMV7M_NUM_CORE_REGS, /* num_output_registers */
81  NULL, /* stack_alignment */
82  rtos_chibios_arm_v7m_stack_offsets_w_fpu /* register_offsets */
83 };
static const struct stack_register_offset rtos_chibios_arm_v7m_stack_offsets_w_fpu[ARMV7M_NUM_CORE_REGS]
#define ARMV7M_NUM_CORE_REGS
Definition: armv7m.h:139
const struct rtos_register_stacking rtos_chibios_arm_v7m_stacking_w_fpu
static const struct stack_register_offset rtos_chibios_arm_v7m_stack_offsets[ARMV7M_NUM_CORE_REGS]
const struct rtos_register_stacking rtos_chibios_arm_v7m_stacking
#define NULL
Definition: usb.h:27