单片机开发只能在线调试和串口看log?No No No,或许我们也能能像linux那样通过串口终端潇洒的使用命令进行调试。
来自于github作者 @JingoC
https://github.com/JingoC/terminal
灵活的终端设置允许您毫不费力地将其与任何微控制器集成。
特征:
灵活的设置
独立于平台
日志记录命令
中止执行的机制
可用键 键左键、键右键、删除键、退格键、主页、结束键、Tab键
程序存储器中所需空间,最低工作配置为约 10 KB
来自俄罗斯大兄弟的代码,阅读代码后从中闻到了毛子味。。。
将他移植到 STM32f103上,禁止了动态内存申请,修复了参数输入不能多空格的bug,可以从我的仓库fork试一试,感觉还不错。
https://github.com/zhuolin2211/terminal
我能想到的应用,PID调参,读取系统参数,灵活修改寄存器等等。
只需要添加命令对应函数实现和参数接收代码,并将其添加到命令队列当中,即可通过串口命令行灵活调用。
/*来点个灯吧,通过CLI_GetArgDec类接口接受参数*/
void LED_ctr(void)
{
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin, CLI_GetArgDec(0)?0:1);
}
/*添加命令,指定命令名,参数个数,帮助信息*/
CLI_AddCmd("LED", LED_ctr, 1, TMC_None, "set led output");
启动界面,还原度还不错。
内置了几个有用的命令,读取时间,设置读取寄存器,复位等
感兴趣就加入到自己项目中来吧!
离线
点赞。刚刚试了下,1.不能tab补全,2.退格处理也有问题 3.不能打印对参数的帮助,如果能对寄存器进行操作,并打印寄存器各字段的帮助信息就更棒了。一直都在想做一套类似的东西,这个就可以对任意寄存器进行设置了。但是要移植一套CLI,参考的是Linux平台程序,但是工作量不小,一直搁置,如果上面的功能完善了,基本就和自己当初设想的一致了。
最近编辑记录 llinjupt (2022-04-02 10:56:56)
离线
这玩意我也写过一套,汗;
另外,GITHUB 上这兄弟也写了一套,感兴趣的可以看看,
https://github.com/NevermindZZT/letter-shell
离线
这玩意我也写过一套,汗;
另外,GITHUB 上这兄弟也写了一套,感兴趣的可以看看,
https://github.com/NevermindZZT/letter-shell
这种CLI以前在交换机上很多,后来都被GUI替代了,以前的嵌入式开发者对这类应用很熟悉,后来基本被Shell取代,大约十几二十几年前,CISCO,LINKSYS的gateway上都是这种,看起来很神秘高科技的东西,一个时代的渐行渐远。
那时候的CLI可以做得很炫,有些还带动画,ASCII码图,多种颜色,看了 letter-shell 好像也不支持对参数的帮助,只提示命令的 desc帮助。
ping [A.B.C.D/URL] 会提示单个参数的格式等等,记不太清楚了,很有趣的应用,所以想写一套针对单片机的寄存器任意位操作的CLI,并给出位段的功能提示,相当于一套内嵌的实时的datasheet,这样对于diy来说,可以在最底层验证寄存器的功能,可惜一直没空弄。
最近编辑记录 llinjupt (2022-04-02 19:52:01)
离线
@llinjupt
linux/unix世界一直都有两套人机界面:CLI跟GUI。两套都在流行,没有说CLI被GUI替代。CLI即字符界面的定义是通过输入字符的方式跟计算机交互,所以但凡是输入字符命令的界面都叫CLI
linux/unix的CLI有一套图形库叫Ncurses,而GUI则有很多图形库流行度大点。
像bash、less、vi这些在标准输出上有彩色等的格式化输出的程序都依赖于Ncurses
最近编辑记录 海石生风 (2022-04-02 22:14:13)
离线
有个 clish , 还有个 klish
操作起来风格更交换机的cli很类似, 有自动不全,有帮助提示
离线
@llinjupt
哈哈,你这个功能我好像做过,但是不太完善,以前调试USB手柄的时候写的,你可以看看哈。
帖子跳转 ITX-190——一个性能不强却支持强大的开发板
最近编辑记录 LinjieGuo (2022-04-03 19:40:23)
离线
有个 clish , 还有个 klish
操作起来风格更交换机的cli很类似, 有自动不全,有帮助提示
对,就是这个,这个移植到单片机上面工作量还不小,但是功能很强,该有的都有,操作起来也很顺手。如果能用JSON格式替代掉繁琐的XML就更好了。
离线