OpenOCD
nuttx.c File Reference
Include dependency graph for nuttx.c:

Go to the source code of this file.

Data Structures

struct  nuttx_params
 
struct  symbols
 
struct  tcbinfo
 

Macros

#define EXTRAINFO_SIZE   256
 
#define NAME_SIZE   32
 
#define PTR_WIDTH   4
 
#define TCBINFO_TARGET_SIZE   22
 

Enumerations

enum  nuttx_symbol_vals { NX_SYM_READYTORUN = 0 , NX_SYM_PIDHASH , NX_SYM_NPIDHASH , NX_SYM_TCB_INFO }
 

Functions

static bool cortexm_hasfpu (struct target *target)
 
static const struct rtos_register_stackingcortexm_select_stackinfo (struct target *target)
 
static int nuttx_create (struct target *target)
 
static bool nuttx_detect_rtos (struct target *target)
 
static int nuttx_get_symbol_list_to_lookup (struct symbol_table_elem *symbol_list[])
 
static int nuttx_get_thread_reg_list (struct rtos *rtos, int64_t thread_id, struct rtos_reg **reg_list, int *num_regs)
 
static int nuttx_getreg_current_thread (struct rtos *rtos, struct rtos_reg **reg_list, int *num_regs)
 
static int nuttx_getregs_fromstack (struct rtos *rtos, int64_t thread_id, struct rtos_reg **reg_list, int *num_regs)
 
static int nuttx_smp_init (struct target *target)
 
static int nuttx_update_threads (struct rtos *rtos)
 
static target_addr_t target_buffer_get_addr (struct target *target, const uint8_t *buffer)
 

Variables

static const struct nuttx_params nuttx_params_list []
 
const struct rtos_type nuttx_rtos
 
static const struct symbols nuttx_symbol_list []
 
static char * task_state_str []
 

Macro Definition Documentation

◆ EXTRAINFO_SIZE

#define EXTRAINFO_SIZE   256

Definition at line 25 of file nuttx.c.

◆ NAME_SIZE

#define NAME_SIZE   32

Definition at line 24 of file nuttx.c.

◆ PTR_WIDTH

#define PTR_WIDTH   4

Definition at line 31 of file nuttx.c.

◆ TCBINFO_TARGET_SIZE

#define TCBINFO_TARGET_SIZE   22

Definition at line 43 of file nuttx.c.

Enumeration Type Documentation

◆ nuttx_symbol_vals

Enumerator
NX_SYM_READYTORUN 
NX_SYM_PIDHASH 
NX_SYM_NPIDHASH 
NX_SYM_TCB_INFO 

Definition at line 61 of file nuttx.c.

Function Documentation

◆ cortexm_hasfpu()

static bool cortexm_hasfpu ( struct target target)
static

◆ cortexm_select_stackinfo()

static const struct rtos_register_stacking * cortexm_select_stackinfo ( struct target target)
static

Definition at line 138 of file nuttx.c.

References cortexm_hasfpu(), nuttx_stacking_cortex_m, and nuttx_stacking_cortex_m_fpu.

◆ nuttx_create()

static int nuttx_create ( struct target target)
static

◆ nuttx_detect_rtos()

static bool nuttx_detect_rtos ( struct target target)
static

◆ nuttx_get_symbol_list_to_lookup()

static int nuttx_get_symbol_list_to_lookup ( struct symbol_table_elem symbol_list[])
static

◆ nuttx_get_thread_reg_list()

static int nuttx_get_thread_reg_list ( struct rtos rtos,
int64_t  thread_id,
struct rtos_reg **  reg_list,
int *  num_regs 
)
static

◆ nuttx_getreg_current_thread()

static int nuttx_getreg_current_thread ( struct rtos rtos,
struct rtos_reg **  reg_list,
int *  num_regs 
)
static

◆ nuttx_getregs_fromstack()

static int nuttx_getregs_fromstack ( struct rtos rtos,
int64_t  thread_id,
struct rtos_reg **  reg_list,
int *  num_regs 
)
static

◆ nuttx_smp_init()

static int nuttx_smp_init ( struct target target)
static

Definition at line 176 of file nuttx.c.

References ERROR_OK.

◆ nuttx_update_threads()

◆ target_buffer_get_addr()

static target_addr_t target_buffer_get_addr ( struct target target,
const uint8_t *  buffer 
)
static

Definition at line 183 of file nuttx.c.

References buffer, target_buffer_get_u32(), and target_buffer_get_u64().

Referenced by nuttx_update_threads().

Variable Documentation

◆ nuttx_params_list

const struct nuttx_params nuttx_params_list[]
static
Initial value:
= {
{
.target_name = "cortex_m",
.stacking = NULL,
.select_stackinfo = cortexm_select_stackinfo,
},
{
.target_name = "hla_target",
.stacking = NULL,
.select_stackinfo = cortexm_select_stackinfo,
},
{
.target_name = "esp32",
.stacking = &nuttx_esp32_stacking,
},
{
.target_name = "esp32s2",
.stacking = &nuttx_esp32s2_stacking,
},
{
.target_name = "esp32s3",
.stacking = &nuttx_esp32s3_stacking,
},
{
.target_name = "esp32c3",
.stacking = &nuttx_riscv_stacking,
},
}
static const struct rtos_register_stacking * cortexm_select_stackinfo(struct target *target)
Definition: nuttx.c:138
const struct rtos_register_stacking nuttx_esp32s2_stacking
const struct rtos_register_stacking nuttx_riscv_stacking
const struct rtos_register_stacking nuttx_esp32s3_stacking
const struct rtos_register_stacking nuttx_esp32_stacking
#define NULL
Definition: usb.h:16

Definition at line 90 of file nuttx.c.

Referenced by nuttx_create().

◆ nuttx_rtos

const struct rtos_type nuttx_rtos
Initial value:
= {
.name = "nuttx",
.detect_rtos = nuttx_detect_rtos,
.create = nuttx_create,
.smp_init = nuttx_smp_init,
.update_threads = nuttx_update_threads,
.get_thread_reg_list = nuttx_get_thread_reg_list,
.get_symbol_list_to_lookup = nuttx_get_symbol_list_to_lookup,
}
static int nuttx_get_symbol_list_to_lookup(struct symbol_table_elem *symbol_list[])
Definition: nuttx.c:419
static bool nuttx_detect_rtos(struct target *target)
Definition: nuttx.c:143
static int nuttx_create(struct target *target)
Definition: nuttx.c:152
static int nuttx_update_threads(struct rtos *rtos)
Definition: nuttx.c:192
static int nuttx_smp_init(struct target *target)
Definition: nuttx.c:176
static int nuttx_get_thread_reg_list(struct rtos *rtos, int64_t thread_id, struct rtos_reg **reg_list, int *num_regs)
Definition: nuttx.c:406

Definition at line 419 of file nuttx.c.

◆ nuttx_symbol_list

const struct symbols nuttx_symbol_list[]
static
Initial value:
= {
{ "g_readytorun", false },
{ "g_pidhash", false },
{ "g_npidhash", false },
{ "g_tcbinfo", false },
{ NULL, false }
}

Definition at line 1 of file nuttx.c.

Referenced by nuttx_get_symbol_list_to_lookup().

◆ task_state_str

char* task_state_str[]
static
Initial value:
= {
"INVALID",
"PENDING",
"READYTORUN",
"RUNNING",
"INACTIVE",
"WAIT_SEM",
"WAIT_SIG",
"WAIT_MQNOTEMPTY",
"WAIT_MQNOTFULL",
"WAIT_PAGEFILL",
"STOPPED",
}

Definition at line 76 of file nuttx.c.

Referenced by nuttx_update_threads().