OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3855|回复: 1

freeRTOS配置文件configCOMMAND_INT_MAX_OUTPUT_SIZE的疑问

[复制链接]

67

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2011-11-15
在线时间
4 小时
发表于 2020-3-25 10:22:03 | 显示全部楼层 |阅读模式
请问,freeRTOS配置文件中configCOMMAND_INT_MAX_OUTPUT_SIZE的作用是什么?该设置多大合适?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

82

帖子

0

精华

高级会员

Rank: 4

积分
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。
系统的这个部分只是为了方便而已。
uevip#126.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 21:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表