1、动态控制log打印的级别echonprocsyskernelprintk 可以控制log输出级别。level小于的log会输出到console口。注意:级的log不会输出。 通过catprockmsg可以查看所有编译时允许输出的log,比如consoleloglevel设置为4,此时在console口上只有03level的log输出,但通过catprockmsg可以查看更多level的log。 2、prdebug的使用 在没有开启DEBUG宏时,代码中prdebug不会输出,包括prockmsg。在驱动开发过程中,可以在c文件的最开头,即所有include前定义DEBUG宏来开启prdebug的输出。 prdebug的loglevel是7,所以procsyskernelprintk中的consoleloglevel需要设置为7以上,相应的log才会输出到console口。 3、xxxonce的使用 在一个循环体中,如果只想循环的第一个运行有输出,其后的运行不要输出,那么就可以xxxonce的输出log。离开循环体后,xxxonce的内部标识会复原。for(i0,i16;i){prerronce(testprerronce:d,i);}prerronce(testprerronceend) 上述代码输出的log是testprerronce:0testprerronceend 4、原始数据的打印 通过printhexdump或者printhexdumpxxx函数可以实现原始数据以hex格式输出。