如何在FreeRTOS-Plus-CLI中添加一個自己的命令列

來源:互聯網
上載者:User

標籤:freertos

根據上一篇添加完成後,下面就是添加一個自己的命令列。其實添加一個命令列格式很簡單,就是按照demo中的資料格式添加一個結構體,然後在註冊函數中註冊就可以使用了。

第一步:添加自己的結構體
/* The structure that defines command line commands.    A command line command should be defined by declaring a const structure of this type. */typedef struct xCOMMAND_LINE_INPUT{     const char * const pcCommand; /* The command that causes pxCommandInterpreter to be executed.  For example "help".              Must be all lower case. */     const char * const pcHelpString; /* String that describes how to use the command.  Should start with the command itself, and end with "\r\n".  For example "help: Returns a list of all the commands\r\n". */     const pdCOMMAND_LINE_CALLBACK pxCommandInterpreter;/* A pointer to the callback function that will return the output generated by the command. */     int8_t cExpectedNumberOfParameters; /* Commands expect a fixed number of parameters, which may be zero. */} CLI_Command_Definition_t;

參考實際格式:

/* Structure that defines the "task-stats" command line command.  This generatesa table that gives information on each task in the system. */static const CLI_Command_Definition_t xTaskStats ={     "task-stats", /* The command string to type. */     "\r\ntask-stats:\r\n Displays a table showing the state of each FreeRTOS task\r\n",      prvTaskStatsCommand, /* The function to run. */     0 /* No parameters are expected. */};

於是按葫蘆畫瓢自己寫一個自己的命令“whatbook”吧!如下:

static const CLI_Command_Definition_t xWhatbook ={     "whatbook",      "\r\nwhatbook:\r\n Displays a string "I Love ZML!"\r\n",      prvWhatbookCommand, /* The function to run. */     0 /* No parameters are expected. */};
第二步:實現上面資料結構後,然後寫資料結構中的回呼函數。
static BaseType_t prvWhatbookCommand( char *pcWriteBuffer, size_t xWriteBufferLen, const char *pcCommandString ){ BaseType_t xReturn; /* Remove compile time warnings about unused parameters, and check the write buffer is not NULL.  NOTE - for simplicity, this example assumes the write buffer length is adequate, so does not check for buffer overflows. */ ( void ) pcCommandString; ( void ) xWriteBufferLen; configASSERT( pcWriteBuffer ); /* The first time the function is called after the command has been entered just a header string is returned. */ sprintf( pcWriteBuffer, "I Love ZML!!!\r\n" ); xReturn = pdFALSE; return xReturn;}
第三步:註冊資料結構。
FreeRTOS_CLIRegisterCommand( &xWhatbook );

至此,就完成了一個命令whatbook的實現。在串口工具輸入whatbook,就返回如下列印資訊:
>
I Love ZML!!!
[Press ENTER to execute the previous command again]
>

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

如何在FreeRTOS-Plus-CLI中添加一個自己的命令列

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.