如何去掉ARM-LINUX启动时输出到串口的调试信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何去掉ARM-LINUX启动时输出到串口的调试信息相关的知识,希望对你有一定的参考价值。

启动时的内核信息都是通过printk输出的,查了下头文件kernel.h,有这样的语句
#ifdef CONFIG_PRINTK
asmlinkage int printk(const char * fmt, ...)
__attribute__ ((format (printf, 1, 2)));
#else
static inline int printk(const char *s, ...)
__attribute__ ((format (printf, 1, 2)));
static inline int printk(const char *s, ...) return 0;
#endif
在kernel/printk.c中,同样可以看到在没有定义CONFIG_PRINTK的时候其代码都是灰的。

因此,去掉CONFIG_PRINTK的定义即可。
参考技术A 关注这个问题

使用VS2012编写arm-linux上的应用程序

习惯了window上的集成开发环境,对于Linux上的C/C++开发觉得相当蛋疼。

可能大佬们会批,Linux有vim如何强大的工具,可惜真用不来,萝卜青菜吧。

刚接触Linux时,觉得应用程序的调试,相当不顺,用的是 gdb+printf ,如果能学会用gdb来调试Linux上的应用,相当有逼格;就是需要记的指令不少。

对于我这种刚入坑不深的,便琢磨着是否Linux上也有像window上的IDE,编译调试代码方便,又能支持远程调试arm板的。

百度了一把,eclipse、qt creater可以,之前做过DSP开发,用的是CCS;eclipse、ccs同一路,便选择了eclipse,省点再去熟悉一个集成开发环境的时间。

用了一段时间后,eclipse CDT的代码自动补全功能相当糟糕,只支持 \'.\'、‘->’的自动提示,用起来觉得效率不高;

干脆window上开发,然后Linux上编译。原打算用 source insight ,可惜不支持UTF-8,有插件可安装,但有一些BUG,便选择了VS。 

1.首先建立共享目录

 选择的是Samba,也可以安装vm tool,设置共享文件夹,看个人喜好。

  ps: Samba的搭建可以参照笔者的前面博客,也相当简单。

2.使用VS新建空项目

2.1 根据eclipse工程框架,新建文件筛选器

VS项目 -> 右键 -> 添加 -> 新建筛选器(F)

2.2 为新建筛选器添加目标文件

新建的筛选器 -> 右键 -> 添加 ->现有项(G)-> 选择目标文件

 

至此,就可以在window上写代码,Linux上做编译了。

以上是关于如何去掉ARM-LINUX启动时输出到串口的调试信息的主要内容,如果未能解决你的问题,请参考以下文章

linux kernel 没有输出信息 怎么调试

没有串口,你会如何输出log?

跟踪内核启动过程CONFIG_DEBUG_LL转自

STC单片机如何快速配置和部署一个带串口调试输出的工程模板

eclipse 调试非常慢

为啥一打开串口调试助手,单片机的程序就停了?