您尚未登录。

楼主 #1 2018-06-26 19:28:14

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

arm linux的串行终端重映射

我的系统有两个串口,
系统启动时用串口1作为控制台终端,串口0作为和其它系统通信使用。 

如何在系统启动后,通过app修改,使串口0作为控制终端?

tty = open("/dev/ttyO0", O_RDONLY | O_WRONLY);
ioctl(tty, TIOCCONS);
close(tty);

我通过ioctl操作后,串口0能输出app的打印信息,但是没有命令提示符。串口0不能完成系统的控制。

离线

楼主 #3 2018-06-27 11:00:08

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: arm linux的串行终端重映射

网上搜索了一圈,没有找到想要的答案。

既然串口0能打印app的输出,证明标准输入输出已经切换过来了,估计只要自己在这个基础上实现一个简单的shell就行了。
实在找不到别的办法,也只能尝试这个方法了。不知道谁有好的思路?

离线

楼主 #8 2018-06-27 12:28:56

tom
会员
注册时间: 2018-03-14
已发帖子: 128
积分: 127.5

Re: arm linux的串行终端重映射

我已经初步解决了这个问题,没有找到更简单的思路,还是采用上面提到的,自己实现一个简易的shell。

简易的shell,可以参考csdn的这篇帖子。
https://blog.csdn.net/qq_37964547/article/details/79703953

不过,要做到真正实用,要考虑很多方面的问题,比如 字符删除、 快捷键、自动补全、历史命令、甚至环境变量等问题,
如果这样,那就超出本帖要讨论的范畴了。

最近编辑记录 tom (2018-06-27 12:31:31)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn