[RTT例程練習] 6.1 Finsh 的基本使用

Finsh是調試的利器,它可以獲取系統運行時信息,對任意寄存器和內存地址進行讀寫操作,還能直接調用系統函數訪問系統變量。

要使用這個功能,需要開啓

/* SECTION: Finsh, a C-Express shell */
#define RT_USING_FINSH
/* Using symbol table */
#define FINSH_USING_SYMTAB
#define FINSH_USING_DESCRIPTION

並在startup.c 中添加啓動函數

#ifdef RT_USING_FINSH
    /* initialize Finsh */
    Finsh_system_init();
    Finsh_set_device(RT_CONSOLE_DEVICE_NAME);
#endif


下面舉些例子。

使用list()命令打印出當前註冊到Finsh系統的所有shell命令

Finsh>>list()
--Function List:
list_mem         -- list memory usage information
version          -- show RT-Thread version information
list_thread      -- list thread
list_sem         -- list semaphone in system
list_event       -- list event in system
list_mutex       -- list mutex in system
list_mailbox     -- list mail box in system
list_msgqueue    -- list message queue in system
list_mempool     -- list memory pool in system
list_timer       -- list timer in system
list_device      -- list device in system
list             -- list all symbol in system
--Variable List:
dummy            -- dummy variable for Finsh
        0, 0x00000000

list_thread() ,查看當前系統中運行的所有線程

Finsh>>list_thread()
thread  pri  status      sp     stack size max used   left tick  error
-------- ---- ------- ---------- ---------- ---------- ---------- ---
tshell   0x14 ready   0x00000110 0x00000800 0x000001e8 0x00000008 -04
tidle    0x1f ready   0x000000e0 0x00000400 0x000000e0 0x00000010 000
thread1  0x0b suspend 0x00000100 0x00000400 0x00000100 0x00000005 000
        0, 0x00000000


發佈了49 篇原創文章 · 獲贊 10 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章