微吼云上線多路互動直播服務 加速多場景互動直播落地
860
2025-04-05
在使用LiteOS系統時,需要使用到利用串口即console進行執行自己的進程,往往需要使用到shell命令,所以需要學習如何在自己的程序中增加shell的使用。
1、shell是啥
Shell在liteOS作為在線調試工具,可以通過串口工具輸入輸出,支持常用的基本調試功能。同時用戶可以新增定制的命令,新增命令需重新編譯燒錄后才能執行。
2、shell的作用
1??為LiteOS提供基礎的命令供用戶使用,用戶可以利用這些命令控制LIteOS系統,并查詢相相關信息;
2??為用戶提供接口,可以將自己的進程和任務進行命令輸出,并在console進行交互。
3、如何才能使用Sell
首先,要在軟件剪裁開關中打開sell功能,即在make menuconfig中選擇打開Sell,Debug ---> Enable a Debug Version ---> Enable Shell
設置shell連接uart端口,程序通過下面的程序將需要的串口和shell進行連接
UINT32 ShellStdinLoop(ShellCB *shellCB) { UINT8 ch; while (1) { ch = uart_read(); ShellCmdLineParse(ch, (pf_OUTPUT)dprintf, shellCB); } return 0; }
如果需要更改log的存儲buf需要設置下面的宏
#define KERNEL_LOG_BUF_SIZE (8 * 1024)
打開shelll功能宏后,LiteOS系統的宏已經可以使用,如果需要自己的進程需要使用宏,需要注冊,后面會講到。
4、系統shell命令
設置好,studio IDE 設置好串口號,波特率設置為115200;
上電控制板,系統啟動后在Log出現“Huawei LiteOS #”的提示符,就可以使用shell了;
shell有幾個常用的鍵盤特殊字符操作:
回車鍵執行操作;
Tab鍵可自動聯想補全,若有多個匹配項則補全共同字符,并打印多個匹配項。
退格鍵可刪除一個字符,如果在UTF8格式下輸入了中文字符,只能通過回退三次來刪除。默認模式為英文輸入。
方向鍵上下可選擇歷史命令。
常見的系統命令有:help、date、uname、task、free、memcheck、memused、hwi、queue、sem、mutex、dlock、swtmr、systeminfo、log、dmesg、stack、cpup、watch ;使用和Linux的shell比較相似,需要可以查詢幫助。
5、自己的task如何注冊到shell中
定義Shell命令需要處理的任務
int osShellCmdXX(int argc, const char **argv);
argc:Shell命令的參數個數。個數中是否包括命令關鍵字,和注冊命令時的命令類型有關。
argv:為指針數組,每個元素指向一個字符串,該字符串就是執行shell命令時傳入命令處理函數的參數。參數中是否包括命令關鍵字,和注冊命令時的命令類型有關。
注冊到shell命令:分為靜態注冊和動態注冊,建議使用動態注冊
靜態注冊XX命令到shell:
#include "shcmd.h" SHELLCMD_ENTRY(XX_shellcmd, CMD_TYPE_EX, "XX", XARGS, (CMD_CBK_FUNC)osShellCmdXX);
動態注冊XX命令到shell:
#include "shell.h" osCmdReg(CMD_TYPE_EX, "XX", XARGS, (CMD_CBK_FUNC)osShellCmdXX);
注冊好后,就可以在串口交互中使用XX命令,執行osshellXX函數的功能。
6、總結,善于使用shell是方便LiteOS找bug的很好地一個方法,把自己需要用的tsak在需要時時候打開,然后并且查詢系統和進程中信息。
Shell 單片機 輕量級操作系統 LiteOS
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。