diff --git a/tools/jlink-nuttx.c b/tools/jlink-nuttx.c index 11ecc76c7bb..8b3ee4eabae 100644 --- a/tools/jlink-nuttx.c +++ b/tools/jlink-nuttx.c @@ -35,7 +35,7 @@ /* Marcos for J-Link plugin API */ -#define PLUGIN_VER 100 +#define API_VER 101 #define DISPLAY_LENGTH 256 #define THREADID_BASE 1 @@ -414,7 +414,32 @@ int RTOS_Init(const struct jlink_ops_s *api, uint32_t core) uint32_t RTOS_GetVersion(void) { - return PLUGIN_VER; + return API_VER; +} + +int RTOS_UpdateThreads(void) +{ + int ret; + + ret = update_tcbinfo(&g_plugin_priv); + if (ret) + { + return ret; + } + + ret = update_pidhash(&g_plugin_priv); + if (ret) + { + return ret; + } + + ret = normalize_tcb(&g_plugin_priv); + if (ret) + { + return ret; + } + + return 0; } struct symbols_s *RTOS_GetSymbols(void) @@ -424,6 +449,11 @@ struct symbols_s *RTOS_GetSymbols(void) uint32_t RTOS_GetNumThreads(void) { + if (g_plugin_priv.ntcb == 0) + { + RTOS_UpdateThreads(); + } + return g_plugin_priv.ntcb; } @@ -659,28 +689,3 @@ int RTOS_SetThreadRegList(char *hexreglist, uint32_t threadid) return 0; } - -int RTOS_UpdateThreads(void) -{ - int ret; - - ret = update_tcbinfo(&g_plugin_priv); - if (ret) - { - return ret; - } - - ret = update_pidhash(&g_plugin_priv); - if (ret) - { - return ret; - } - - ret = normalize_tcb(&g_plugin_priv); - if (ret) - { - return ret; - } - - return 0; -}