搜索
bottom↓
回复: 39

单片机命令行交互调试 开源

  [复制链接]

出0入0汤圆

发表于 2021-10-9 09:36:54 | 显示全部楼层 |阅读模式
本帖最后由 llpbhy 于 2021-10-9 10:37 编辑




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入135汤圆

发表于 2021-10-9 09:49:06 | 显示全部楼层
强顶一下,上个月搞命令行解析搞了好久,最后用jiejie的开源移植的

出0入0汤圆

发表于 2021-10-9 09:59:50 | 显示全部楼层
一直在用letter-shell,下载试试

出0入9汤圆

发表于 2021-10-9 10:27:00 | 显示全部楼层
文件是什么编码格式?
打开全是乱码

出0入0汤圆

发表于 2021-10-9 10:31:04 | 显示全部楼层
很感兴趣,下载回来学习一下。

出0入0汤圆

发表于 2021-10-9 10:34:02 | 显示全部楼层
打开文件全是乱码啊

出0入0汤圆

 楼主| 发表于 2021-10-9 10:38:20 | 显示全部楼层
istars2005 发表于 2021-10-9 10:27
文件是什么编码格式?
打开全是乱码

不好意思,已经重新上传代码了。

出0入0汤圆

 楼主| 发表于 2021-10-9 10:39:03 | 显示全部楼层
jemmy 发表于 2021-10-9 10:34
打开文件全是乱码啊

不好意思,已经重新上传代码了。

出0入0汤圆

 楼主| 发表于 2021-10-9 11:26:32 | 显示全部楼层
596142041 发表于 2021-10-9 09:59
一直在用letter-shell,下载试试

letter-shell很强大,谢谢分享。

出0入0汤圆

 楼主| 发表于 2021-10-9 11:27:38 | 显示全部楼层
yelong98 发表于 2021-10-9 09:49
强顶一下,上个月搞命令行解析搞了好久,最后用jiejie的开源移植的


jiejie?搜了一下,没搜到。帮忙贴下链接。

出0入0汤圆

发表于 2021-10-9 11:48:17 | 显示全部楼层
llpbhy 发表于 2021-10-9 11:26
letter-shell很强大,谢谢分享。

主要是开源,功能做的也很完善,就没必要自己从新造轮子 ,之前还用过nr_micro_shell,也是很不错的,可以尝试一下

出0入135汤圆

发表于 2021-10-9 11:56:20 | 显示全部楼层
llpbhy 发表于 2021-10-9 11:27
jiejie?搜了一下,没搜到。帮忙贴下链接。

https://github.com/jiejieTop/cmd-parser

出0入0汤圆

发表于 2021-10-9 19:20:04 来自手机 | 显示全部楼层
交互式调试

出0入0汤圆

发表于 2021-10-9 19:44:58 来自手机 | 显示全部楼层
多谢分享,下载试试怎么用的

出0入0汤圆

发表于 2021-10-9 19:58:35 | 显示全部楼层
谢谢开源

出100入312汤圆

发表于 2021-10-9 20:09:18 来自手机 | 显示全部楼层
支持下开源

出125入16汤圆

发表于 2021-10-9 22:03:06 | 显示全部楼层
没看懂呢,大神能多讲讲吗?

出110入8汤圆

发表于 2021-10-9 22:14:19 | 显示全部楼层
感谢开源,同原子的USMART组件是相似的功能.

出0入0汤圆

发表于 2021-10-10 16:15:36 | 显示全部楼层
多谢分享,下载来看看!

出0入0汤圆

发表于 2021-10-11 13:45:38 | 显示全部楼层
回到命令行了,慢慢升级就是别一个windows

出0入0汤圆

 楼主| 发表于 2021-10-12 14:08:21 | 显示全部楼层
yelong98 发表于 2021-10-9 11:56
https://github.com/jiejieTop/cmd-parser

谢谢,对比了下letter-shell,cmd-parser比较轻量,letter-shell迭代的功能更多。

出0入4汤圆

发表于 2021-10-13 17:34:00 | 显示全部楼层
llpbhy 发表于 2021-10-12 14:08
谢谢,对比了下letter-shell,cmd-parser比较轻量,letter-shell迭代的功能更多。

大神推荐下哪个占资源小,移植方便

出0入0汤圆

发表于 2021-10-13 21:34:41 | 显示全部楼层
这个很好,解析 很不 容易

出0入0汤圆

 楼主| 发表于 2021-10-14 09:16:28 | 显示全部楼层
本帖最后由 llpbhy 于 2021-10-14 09:20 编辑
zhanyanqiang 发表于 2021-10-13 17:34
大神推荐下哪个占资源小,移植方便


大神,不敢当,相互交流。

这个dbg_cmd 命令行支持4字节、浮点及字符串精简配置
配置关闭4字节及浮点解析

编译占用资源2k多,具体如下

       
移植只要dbg_cmd.c及dgb_cmd.h两个文件配合printf格式化输出函数


命令行考考使用 :https://donginker.gitee.io/mcu/dbg_cmd/index.html[/url]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2021-10-16 15:08:11 | 显示全部楼层
angler12 发表于 2021-10-9 22:14
感谢开源,同原子的USMART组件是相似的功能.

USMART了解了一下,正点原子也很上心,文档写得很全,比较好入手,谢谢介绍。

出0入0汤圆

 楼主| 发表于 2021-10-16 15:17:20 | 显示全部楼层
yelong98 发表于 2021-10-9 09:49
强顶一下,上个月搞命令行解析搞了好久,最后用jiejie的开源移植的

自己搞命令行确实很花时间,也是一边做产品一边把自己的命令行需求一步步完善,主要是考虑单片机资源方面花了比较多心思,已经比较考虑极端资源的情况。

命令行对调试来说还是很有用,对模块进行单元测试和完整性测试死一个基础功能,再加上自己写一个python的串口工具,可以很方面的去收集和分析数据。

以下是对命令行的一些思考:

        升级下载
        设备通信(鱼)
        打印信息(熊)
        单个字符控制命令
                容易干扰
                命令数量很多后,不方便记忆
        字符串控制命令
                给每个命令取个名字,便于记忆
                调试改变参数,避免不了修改,编译,下载,查看
        命令名称+参数命令
                参数自由化
        MCU十进制与十六进制平分天下
                没有十六进制参数是没有色彩的
                添加十六进制命令参数
                命令名称 [H]参数(十六进制) ...(回车)
        熊和鱼
                对于只有一个串口资源的mcu只拿来调试,谁都不同意
                创造登录口令进而复用串口
                        设备运行时串口是处理设备通信任务
                        需要调试监控时,登录调试模式

        局部与全局关闭编译
                局部
                        添加模块命令只有2个函数,一个是初始化注册函数,一个是命令行函数
                        要模块这2个函数添加预编译,而预编译DBG_CMD_EN定义在命令行.h文件中
                        模块屏蔽*include "dbg_cmd.h",则关闭相应模块命令行编译代码
                全局
                        要在命令行.h文件中屏蔽命令行DBG_CMD_EN定义,则关闭整个工程命令编译

出0入135汤圆

发表于 2021-10-19 08:20:07 来自手机 | 显示全部楼层
我准备移植过去用一下试试,我觉得最需要解决的是传入不同个数的参数问题,我对楼主思考的通信和调试两用的想法不能再赞同了,有时候资源太有限,复用是个很好的主意,感谢无私分享

出0入0汤圆

 楼主| 发表于 2021-10-19 08:49:27 | 显示全部楼层
yelong98 发表于 2021-10-19 08:20
我准备移植过去用一下试试,我觉得最需要解决的是传入不同个数的参数问题,我对楼主思考的通信和调试两用的 ...

谢谢认可,希望您在使用过程中有什么疑问或者建议提出来一起探讨。

出0入0汤圆

发表于 2021-10-19 10:45:40 | 显示全部楼层
596142041 发表于 2021-10-9 09:59
一直在用letter-shell,下载试试

标记一下,回头试试

出0入0汤圆

 楼主| 发表于 2021-11-20 08:44:49 | 显示全部楼层
github更新:https://github.com/OWON-LILIPUT/ ... 09d98ecd?diff=split

定义函数地址类型 CMD_FUNC_T
比如MSP430单片机,编译可用选择地址大小,导致函数地址可设置为2字节与4字节,定义可以避免多处改动.

出0入0汤圆

 楼主| 发表于 2021-11-20 08:46:00 | 显示全部楼层
github更新:https://github.com/OWON-LILIPUT/ ... 5002f0e3b71c9c77a63

更正PRN_ERR函数打印问题!

出0入0汤圆

 楼主| 发表于 2021-11-20 08:46:38 | 显示全部楼层

github更新:https://github.com/OWON-LILIPUT/ ... bf1024565e99a04741d

dbg_cmd.c
1 添加浮动型参数输入字符长度可配置,实现大于6位数或小于0.0000001浮动值输入.
2 添加字符输入方式,当字符参数无空格字符时,无需字符前后添加"",提高输入字符串效率.
  仅当字符串参数中有空格字符,输入时前后需加""处理.

myprint.c
1 添加用户可灵活配置全局或局部等级信息打印详情或简洁模式
  其中详细打印在输出打印信息时,额外打印文件路径,所在行,函数名,打印等级值

出0入0汤圆

 楼主| 发表于 2021-11-20 08:48:25 | 显示全部楼层
github更新: https://github.com/OWON-LILIPUT/ ... 674d429bcec2b92a5c6

去掉初始化时关闭JATG,避免下载到mcu导致jatg及swd接口失效!
失效处理:将程序引导到升级模式,避免运行用户程序,然后重新下载!

出0入0汤圆

发表于 2021-11-20 10:55:13 | 显示全部楼层
用RThread吧

出0入0汤圆

 楼主| 发表于 2021-11-20 14:23:12 | 显示全部楼层

这个命令行主要用于资源少的单片机,如果资源大的可以考虑用RThread或是Linux,这些生态也更丰富。

出125入16汤圆

发表于 2021-11-20 14:25:43 | 显示全部楼层
命令行交互调试,mark

出0入0汤圆

发表于 2021-11-21 12:33:53 | 显示全部楼层
好像没看懂怎么用
if (dbg_cmd_exec("SetPortVal", "11", "<0,1> <0~0xFF>")) {
“11”表示什么
如果SetPortVal是2个以上的参数,在哪里定义,是否需要定义

根据需求定义命令各种类型参数个数(下列为默认个数值)
#define PARAM_1BYTE_NUM 3 // "1" 1byte
#define PARAM_2BYTE_NUM 3 // "2" 2byte
#define PARAM_4BYTE_NUM 1 // "4" 4byte
#define PARAM_FOLAT_NUM 1 // "f" float
#define PARAM_STRING_NUM 2 // "s" string
这些define是定义一条命令的参数中,最大只能有3个1字节的参数?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2021-11-21 20:16:21 | 显示全部楼层
letter-shell非常好用,楼主这个消耗更少,不过懒得换了b( ̄▽ ̄)d 

出0入0汤圆

 楼主| 发表于 2021-11-22 14:08:48 | 显示全部楼层
qwerttt 发表于 2021-11-21 12:33
好像没看懂怎么用
if (dbg_cmd_exec("SetPortVal", "11", " ")) {
“11”表示什么

问题:dbg_cmd_exec("SetPortVal", "11", " ")
其中"11"代表该命令参数的顺序,个数
就是命令字符串后面会有2个参数,并且第一个参数是1字节类型,第一个也是1字节参数.

问题:这些define是定义一条命令的参数中,最大只能有3个1字节的参数?
不同类型字节定义个数不是决定参数长度,但会决定该种类型参数的个数
比如1定义3个 2字节定义3个 那么命令最长的参数个数为6个(3个1字节和3个2字节参数)如
111222   121212  112212等组合,这时命令接收长度就可以需要加长了

出0入0汤圆

 楼主| 发表于 2021-11-29 09:17:58 | 显示全部楼层
本帖最后由 llpbhy 于 2021-11-29 09:20 编辑

github更新: https://github.com/OWON-LILIPUT/ ... fb5d06744a2de6fadad

更正详细等级打印时,打印变量不输出问题.
添加my_print_string函数,并调整函数组织.
添加打印数据大于缓存长度时,提示str len > print buf size信息

附:如果大家在使用过程中有需要问题,或者新的功能需求请提出一起讨论,使得这个占用资源极少的单片机命令行工具,更加提升大家的调试效率。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 15:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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