高级会员
- 积分
- 743
- 金钱
- 743
- 注册时间
- 2018-9-1
- 在线时间
- 177 小时
|
发表于 2020-3-26 19:52:42
|
显示全部楼层
命令行可能会产生一些字符输出,那么就需要一个buffer来存这些输出的数据。
这个配置项不是必须的,根据情况使用:
如果你想让你板子有多个接口(如多个UART/IIC/SPI等)都支持CLI的话,
那么,输出buffer只需要定义一个即可,所有需要处理命令行的地方都共享使用这个buffer。
因为命令行API是不可重入的,所以同一时刻必须只能有一个地方使用。
此情况下,可以使用FreeRTOS_CLI系统自己提供的buffer定义,而配置项
configCOMMAND_INT_MAX_OUTPUT_SIZE 就是该buffer的大小。
大小根据你自己的命令设计来定,如设置为你设计的命令中输出最大的字节数(若为字符串要再加1)。
(此外,支持多接口时,configAPPLICATION_PROVIDES_cOutputBuffer也应该设置为1)
FreeRTOS_CLIGetOutputBuffer()这个API就是返回系统定义的这个buffer的,其实不用也可以(不用的话就将SIZE配置项设为1)
完全可以自己定义buffer使用,因为调用API,如:
FreeRTOS_CLIProcessCommand( const char * const pcCommandInput, char * pcWriteBuffer, size_t xWriteBufferLen )
参数pcWriteBuffer/xWriteBufferLen 还是需要你手动传入的,如果你使用系统定义的就传入FreeRTOS_CLIGetOutputBuffer()和那个配置项,
否则就传入你自己定义的buffer。
系统的这个部分只是为了方便而已。 |
|