摘要: 怎麼才能在RTOS系統中,經過 串口shell控制LED的開關。linux
ls /dev/tty.*
/dev/tty.usbmodem14103
aos monitor /dev/tty.usbmodem14103 115200 #mac linux下命令 aos monitor com5 115200 #windows 下命令
--- Miniterm on /dev/tty.usbmodem14103 115200,8,N,1 --- --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H --- # #
# help ====Build-in Commands==== ====Support 4 cmds once, seperate by ; ==== help : print this p : print memory m : modify memory echo : echo for command exit : close CLI devname : print device name sysver : system version reboot : reboot system time : system time ota : system ota ====User Commands==== loglevel : set log level tasklist : list all thread info dumpsys : dump system info udp : [ip] [port] [string data] send udp data wifi_debug: wifi debug mode mac : get/set mac kv : kv [set key value | get key | del key | list] version : show version #
# tasklist ------------------------------------------------------------------------ cpu usage period = 25 CPU usage : 1.89 ------------------------------------------------------------------------ Name State Prio StackSize MinFreesize Runtime %CPU Candidate ------------------------------------------------------------------------ dyn_mem_proc_task PEND 6 256 216 22 0.00 N idle_task RDY 61 200 177 745102697 98.11 N DEFAULT-WORKQUEUE PEND 20 768 738 23 0.00 N timer_task PEND 5 300 254 25 0.00 N aos-init PEND 32 1536 1389 1419569 1.38 N cli RDY 60 512 271 491760 0.47 Y ------------------------------------------------------------------------
struct cli_command { const char *name; // 命令體,字符串 const char *help; // 命令的幫助說明文本,字符串 void (*function)(char *pcWriteBuffer, int xWriteBufferLen, int argc, char **argv); // 命令被執行時實際調用的功能函數 };
static void led_switch(char *pwbuf, int blen, int argc, char **argv) { if(argc == 1) // 若是參數爲空,則報錯返回 { LOG("參數錯誤"); return; } if(strcmp(argv[1],"on") == 0) // 若是輸入參數爲「on」,則點亮led { hal_gpio_output_low(&led); // GPIO輸出低,點亮LED2 } else { hal_gpio_output_high(&led); // GPIO輸出高,熄滅LED2 } }
參數名稱
|
參數描述
|
char *pwbuf
|
當函數執行完成返回時,經過控制檯打印出來的字符串指針。能夠不傳入。
|
int blen
|
上述字符串長度
|
int argc
|
命令調用時傳入的參數長度,沒有參數傳入時爲1
|
char **argv
|
傳入參數緩存,字符串。第一個有效參數的角標從1開始。
|
struct cli_command led_switch_command[] = { { .name = "led_switch", // 命令名稱 .help = "[on] turn on led2;[off] trun off led2",// 幫助文本 .function = led_switch // 命令具體執行的函數指針 } };
aos_cli_register_commands(&led_switch_command[0],1);
aos_cli_register_commands(&led_switch_command[0],1); // 註冊cli命令函數 aos_loop_run();
# help ====Build-in Commands==== ====Support 4 cmds once, seperate by ; ==== help : print this p : print memory m : modify memory echo : echo for command exit : close CLI devname : print device name sysver : system version reboot : reboot system time : system time ota : system ota ====User Commands==== loglevel : set log level tasklist : list all thread info dumpsys : dump system info udp : [ip] [port] [string data] send udp data wifi_debug: wifi debug mode mac : get/set mac kv : kv [set key value | get key | del key | list] version : show version led_switch: [on] turn on led2;[off] trun off led2
#led_switch on
## led_switch [1291080]<V> 參數錯誤