|
楼主 |
发表于 2021-10-16 15:17:20
|
显示全部楼层
自己搞命令行确实很花时间,也是一边做产品一边把自己的命令行需求一步步完善,主要是考虑单片机资源方面花了比较多心思,已经比较考虑极端资源的情况。
命令行对调试来说还是很有用,对模块进行单元测试和完整性测试死一个基础功能,再加上自己写一个python的串口工具,可以很方面的去收集和分析数据。
以下是对命令行的一些思考:
升级下载
设备通信(鱼)
打印信息(熊)
单个字符控制命令
容易干扰
命令数量很多后,不方便记忆
字符串控制命令
给每个命令取个名字,便于记忆
调试改变参数,避免不了修改,编译,下载,查看
命令名称+参数命令
参数自由化
MCU十进制与十六进制平分天下
没有十六进制参数是没有色彩的
添加十六进制命令参数
命令名称 [H]参数(十六进制) ...(回车)
熊和鱼
对于只有一个串口资源的mcu只拿来调试,谁都不同意
创造登录口令进而复用串口
设备运行时串口是处理设备通信任务
需要调试监控时,登录调试模式
局部与全局关闭编译
局部
添加模块命令只有2个函数,一个是初始化注册函数,一个是命令行函数
要模块这2个函数添加预编译,而预编译DBG_CMD_EN定义在命令行.h文件中
模块屏蔽*include "dbg_cmd.h",则关闭相应模块命令行编译代码
全局
要在命令行.h文件中屏蔽命令行DBG_CMD_EN定义,则关闭整个工程命令编译 |
|