加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 嵌入式系统的命令行实现是否有任何良好的参考实现?

发布时间:2020-12-15 21:27:32 所属栏目:安全 来源:网络整理
导读:我知道这不是什么新鲜事,已经做了好几次了.但我正在寻找一些参考实现(甚至只是参考设计)作为“最佳实践指南”.我们有一个实时嵌入式环境,其想法是能够使用“调试 shell”来调用某些命令.示例:“SomeDevice print reg xyz”将请求SomeDevice子系统打印名为xy
我知道这不是什么新鲜事,已经做了好几次了.但我正在寻找一些参考实现(甚至只是参考设计)作为“最佳实践指南”.我们有一个实时嵌入式环境,其想法是能够使用“调试 shell”来调用某些命令.示例:“SomeDevice print reg xyz”将请求SomeDevice子系统打印名为xyz的寄存器的值.

解决方法

我有一小组例程,基本上由3个函数和一个查找表组成:

>一个收集命令行的函数 – 它很简单;没有命令行历史或任何东西,只有退格或按下转义以丢弃整个事物的能力.但如果我认为需要更好的编辑功能,那么在这里添加它们并不会太难.
>一个解析一行文本argc / argv样式的函数(有关这方面的一些想法,请参阅Parse string into argv/argc)
>一个函数,它在解析的命令行上获取第一个arg并在命令表中查找它.函数指针确定为命令调用哪个函数,因此命令处理程序只需匹配原型:

int command_handler(int argc,char * argv []);

然后使用适当的argc / argv参数调用该函数.

实际上,查找表还有指向每个命令的基本帮助文本的指针,如果命令后跟’ – ?’要么 ‘/?’显示一些帮助文本.此外,如果命令使用’help’,则转储命令表(如果将参数传递给’help’命令,则可能只有子集).

对不起,我无法发布实际的来源 – 但它非常简单直接实现,功能足以满足我对嵌入式系统开发的所有命令行处理需求.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读