【总结】shell 的相关问题---踩过的坑

置顶 精华 2019-9-25 09:54 [复制链接] 12 2374

本帖最后由 yangjie 于 2019-9-25 10:04 编辑
: n, V/ ]1 Y* @! ]0 |  ?) H5 _* a4 e- _# x  }) h6 E; O- r
论坛上有很多帖子在说shell在使用上的问题,如不能输入命令、死机等。这里做个总结,基本都是大家踩过的坑,欢迎各位留言补充:( r5 d5 g3 {5 n! A3 h& m. R' k

- K- t9 G1 y6 T) `8 O" X0 g1 Y

. o2 \6 [0 C5 @# ]1、首先要区分 finsh与msh,两种情况下需要输入的命令不一样,具体看 finsh文档【传统命令行模式】【C 语言解释器模式4 R5 s$ E5 l; r( p% Z
https://www.rt-thread.org/document/site/programming-manual/finsh/finsh/#_11 y! U+ G" w+ u1 X8 G5 f1 C; w
0 S2 B- h* h+ m
  @, `( |# K1 y6 T7 b6 ~% C
2、无法输入命令:
7 Q) c9 U$ d! b可能终端软件里面开启了硬件流控(RTS,CTS选项是不是误打开了)( |7 G' K. Z( D8 b  G
nano中可能没开启 RT_USING_DEVICE宏) E7 B1 \$ ]+ C, G% r+ h. h
nano中可能没开启RT_USING_FINSH宏
. G  T3 T; F1 j内存不够问题(一般出现no memory之类的提示)
* ]  p% W4 I  H, L1 ?8 e
. Q/ g) l. a  \$ J

% ?7 Q6 q- S% ^4 [3、可能使用shell创建了线程,线程中做了死循环导致shell不能使用" G( g2 t& V  K$ f# q, d" A1 A
4、可能存在比shell线程优先级高的线程 进入了死循环,导致shell不能使用7 R$ @# z" L/ Q: N  R4 `& |! w, U
5、如果shell使用了uart1,其他应用也使用了uart1,产生冲突。  q1 }9 ^6 P2 y7 t
6、一键下载电路与串口终端冲突问题:& `% O+ d; g, ?
野火、正点原子一键下载电路和终端工具冲突,在使用终端工具如:PuTTy、XShell 时,会出现系统不能启动的问题,推荐使用串口调试助手如:sscom
4 Q8 B( F5 `. T) n- V6 p; P- o
0 \) F" `  L; R

! `4 N0 c' Z! y1 b) A7、console name与注册的设备名不匹配
1 `7 w7 `0 Q' Z: v* X! M# [# M8、console name与注册的设备名已匹配,但设备没有初始化(常见于:增加一个串口外设作为shell,只修改了Kconfig并使用env进行了配置,但是并未在cube中配置相应的串口外设,造成外设没有初始化)0 j6 q5 R9 e1 W

- L0 [4 X- ~" O. f6 N  [/ e
* Z5 o( J: S+ K9 v0 j. ?- o7 n
" s  z$ s- v- v9 V
使用道具 举报 显示全部楼层 回复
最新评论 | 正序浏览
显示全部楼层 |楼层直达:
发表于 2019-9-25 09:58:14 | 显示全部楼层
9、使用 nano 添加shell时,如果没有开启 FINSH_USING_SYMTAB 宏,则不能使用 tab 键调出系统命令
+ D" ?2 n' N. E, p. P
使用道具 举报 回复
发表于 2019-9-25 10:21:18 | 显示全部楼层
yangjie 发表于 2019-9-25 09:584 D2 S8 @7 a8 l: q+ d0 ^1 h
9、使用 nano 添加shell时,如果没有开启 FINSH_USING_SYMTAB 宏,则不能使用 tab 键调出系统命令- b( V8 r% l! P2 W1 D( o! k" c% x
...

( ~6 R. k  S: y4 }8 M我试过一种情况是定义了一个1k大小的数组,串口就打不出msh>出来,这种情况怎么解决?
使用道具 举报 回复
发表于 2019-10-26 14:51:34 | 显示全部楼层
yizhitiantian 发表于 2019-9-25 10:21
- f8 p% L! Y0 w9 R4 U* y我试过一种情况是定义了一个1k大小的数组,串口就打不出msh>出来,这种情况怎么解决? ...
( Y+ {0 G1 k1 X& c& f2 z, y: X
详细描述问题,这个不会有问题的
使用道具 举报 回复
发表于 2019-12-20 21:39:23 | 显示全部楼层
最近在调试finsh,,,没调出来,,,可以请教楼主吗我调试的问题帖子. P5 g( X8 u: x. Q# Y
使用道具 举报 回复
发表于 2020-1-20 09:29:05 | 显示全部楼层
10. 初始化了一个定时器,该定时器设置了100ms触发一次,里面是在定时在读一个adc值,而读取adc值需要程序就地等待转换结果读取数据,而定时器的优先级高于串口中断优先级,然后程序就等在那里,导致串口数据收发有丢包的情况
! |: r- V" `$ d9 h* r) M解决方法,开一个线程读取adc值 或者 将硬件定时器 改为 软件定时器触发
使用道具 举报 回复
发表于 2020-1-20 09:31:28 | 显示全部楼层
11. 打印串口的设备。485转USB 设备坏了,导致数据输出有明显的延时
使用道具 举报 回复
发表于 2020-1-20 09:32:34 | 显示全部楼层
另外 楼主  这个 帖子 可以看下嘛  https://www.rt-thread.org/qa/thread-11796-1-1.html
使用道具 举报 回复
发表于 2020-3-4 08:57:20 | 显示全部楼层
请教楼主,看一下这个帖子  shell 卡死在getchar
使用道具 举报 回复
发表于 2020-4-21 17:34:17 | 显示全部楼层
本帖最后由 jiladahe1997 于 2020-4-21 17:40 编辑 : m" G7 @# d1 m4 B# ~4 P
% {9 [( U$ W5 \) o0 S. L
12.使用 keil pack installer 移植rt-thread,移植后必须手动添加 __CC_ARM 宏,否则默认不会启用FINSH。
批注 2020-04-21 172921.png

源码

源码
使用道具 举报 回复
发表于 2020-4-22 13:39:45 | 显示全部楼层
jiladahe1997 发表于 2020-4-21 17:34  y; l4 P- S- ~
12.使用 keil 的 pack installer 移植rt-thread,移植后必须手动添加 __CC_ARM 宏,否则默认不会启用FINSH ...
& c, Z+ A  ^' f* O) m- O! v
__CC_ARM是编译器自带宏
使用道具 举报 回复
发表于 2020-5-9 16:45:17 | 显示全部楼层
本帖最后由 jiladahe1997 于 2020-5-9 16:48 编辑 : I- G9 {$ e( ^4 m
yangjie 发表于 2020-4-22 13:39! r2 g5 L7 H8 E; r7 `9 ]6 K% H
__CC_ARM是编译器自带宏
- R' o0 X) S7 E. f9 b0 a
不好意思,抱歉,是我自己搞错了,可以麻烦把我在10L的回帖删了吗(我这里无法重新编辑)? 以免误导他人。
使用道具 举报 回复
发表于 2020-5-9 16:52:03 | 显示全部楼层
jiladahe1997 发表于 2020-5-9 16:45  J- ]" B, X) r* G/ p6 U
不好意思,抱歉,是我自己搞错了,可以麻烦把我在10L的回帖删了吗(我这里无法重新编辑)? 以免误导他人 ...

$ R7 u- y) Q8 Q' ?不用担心,没有关系的~
使用道具 举报 回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  1. 5 主题
  2. 2677 帖子
  3. 2677 积分

Ta的主页 发消息

Archiver|手机版|小黑屋|RT-Thread开发者社区 ( 沪ICP备13014002号-1

有害信息举报电话:021-31165890 手机:18930558079

© 2006-2019 上海睿赛德电子科技有限公司

Powered by RT-Thread

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