嵌入式 Linux 下关闭串口控制台输出

Posted on 2014-08-16 13:23 CrHackOS 阅读(20608) 评论(1)  编辑 收藏 引用 所属分类: 技术随笔
  最近在玩新唐的 N32926。这颗芯片最大的优势就是把 DDR 内存和 ARM9 的芯片做在一起了,提供非 BGA 的芯片封装(QFP128)。比起三星之类的硬件可以简单不少,性价比也不错。缺点就是,可能是封装管脚太少的缘故,很多功能都是复用的,导致管脚资源紧张。例如,以太网接口和8位以上的 LCD 屏接口是冲突的。以太网切换到第二端口上又和一个串口冲突。本来芯片上就只有两个串口。这就造成,所有的串口设备必须要挂在同一个串口上,用一个模拟开关芯片去切换。可恶的是,Linux 内核和控制台也会时不时的输出东西。但是又不想彻底关掉它们,到时候还能看看调试信息。所以就去找了一下如何临时关闭控制台输出的方法。
  临时关闭控制台输出(打开控制台输出即是把 tty0 重新设置为默认终端输出):
1 int fd;
2 
3 fd = open("/dev/tty1", O_RDONLY);
4 if (fd >= 0) {
5     ioctl(fd, TIOCCONS);
6     close(fd);
7 }
  临时关闭内核信息输出:echo 0 > /proc/sys/kernel/printk;重新打开内核信息输出:echo 7 > /proc/sys/kernel/printk。
  这样,要用串口设备的时候,就先临时关闭,然后开关切换,搞完之后再切回来,最后打开输出。好在使用的串口设备都是被动的,可以临时用一下的,不用一直挂在上面,不然就麻烦了。

Feedback

# re: 嵌入式 Linux 下关闭串口控制台输出  回复  更多评论   

2015-05-24 00:12 by yurenchen
果然挺蛋疼的

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理