OpenOCD
nuttx_header.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 /***************************************************************************
4  * Copyright 2016,2017 Sony Video & Sound Products Inc. *
5  * Masatoshi Tateishi - Masatoshi.Tateishi@jp.sony.com *
6  * Masayuki Ishikawa - Masayuki.Ishikawa@jp.sony.com *
7  ***************************************************************************/
8 
9 #ifndef OPENOCD_RTOS_NUTTX_HEADER_H
10 #define OPENOCD_RTOS_NUTTX_HEADER_H
11 
12 /* gdb script to update the header file
13  according to kernel version and build option
14  before executing function awareness
15  kernel symbol must be loaded : symbol nuttx
16 
17 define awareness
18  set logging off
19  set logging file nuttx_header.h
20  set logging on
21 
22  printf "#define PID %p\n",&((struct tcb_s *)(0))->pid
23  printf "#define XCPREG %p\n",&((struct tcb_s *)(0))->xcp.regs
24  printf "#define STATE %p\n",&((struct tcb_s *)(0))->task_state
25  printf "#define NAME %p\n",&((struct tcb_s *)(0))->name
26  printf "#define NAME_SIZE %d\n",sizeof(((struct tcb_s *)(0))->name)
27  end
28 
29 
30  OR ~/.gdbinit
31 
32 
33 define hookpost-file
34 
35  if &g_readytorun != 0
36  eval "monitor nuttx.pid_offset %d", &((struct tcb_s *)(0))->pid
37  eval "monitor nuttx.xcpreg_offset %d", &((struct tcb_s *)(0))->xcp.regs
38  eval "monitor nuttx.state_offset %d", &((struct tcb_s *)(0))->task_state
39  eval "monitor nuttx.name_offset %d", &((struct tcb_s *)(0))->name
40  eval "monitor nuttx.name_size %d", sizeof(((struct tcb_s *)(0))->name)
41  end
42 
43 end
44 
45 */
46 
47 /* default offset */
48 #define PID 0xc
49 #define XCPREG 0x70
50 #define STATE 0x19
51 #define NAME 0xb8
52 #define NAME_SIZE 32
53 
54 /* defconfig of nuttx */
55 /* #define CONFIG_DISABLE_SIGNALS */
56 #define CONFIG_DISABLE_MQUEUE
57 /* #define CONFIG_PAGING */
58 
59 
60 #endif /* OPENOCD_RTOS_NUTTX_HEADER_H */