OpenOCD
rtos_embkernel_stackings.c
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2011 by Broadcom Corporation *
3  * Evan Hunter - ehunter@broadcom.com *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program. If not, see <http://www.gnu.org/licenses/>. *
17  ***************************************************************************/
18 
19 #ifdef HAVE_CONFIG_H
20 #include "config.h"
21 #endif
22 
23 #include "rtos.h"
24 #include "target/armv7m.h"
26 
28  { 0x24, 32 }, /* r0 */
29  { 0x28, 32 }, /* r1 */
30  { 0x2c, 32 }, /* r2 */
31  { 0x30, 32 }, /* r3 */
32  { 0x00, 32 }, /* r4 */
33  { 0x04, 32 }, /* r5 */
34  { 0x08, 32 }, /* r6 */
35  { 0x0c, 32 }, /* r7 */
36  { 0x10, 32 }, /* r8 */
37  { 0x14, 32 }, /* r9 */
38  { 0x18, 32 }, /* r10 */
39  { 0x1c, 32 }, /* r11 */
40  { 0x34, 32 }, /* r12 */
41  { -2, 32 }, /* sp */
42  { 0x38, 32 }, /* lr */
43  { 0x3c, 32 }, /* pc */
44  { 0x40, 32 }, /* xPSR */
45 };
46 
48  0x40, /* stack_registers_size */
49  -1, /* stack_growth_direction */
50  ARMV7M_NUM_CORE_REGS, /* num_output_registers */
51  rtos_generic_stack_align8, /* stack_alignment */
52  rtos_embkernel_Cortex_M_stack_offsets /* register_offsets */
53 };
54 
55 
int64_t rtos_generic_stack_align8(struct target *target, const uint8_t *stack_data, const struct rtos_register_stacking *stacking, int64_t stack_ptr)
const struct rtos_register_stacking rtos_embkernel_Cortex_M_stacking
static const struct stack_register_offset rtos_embkernel_Cortex_M_stack_offsets[ARMV7M_NUM_CORE_REGS]
#define ARMV7M_NUM_CORE_REGS
Definition: armv7m.h:139