bsdlog其实一直蛮好用的,因为更早前我曾用uprint来打印信息,后来我发现用uprint打印的东西有时候次序是乱的,比如:
uprintf("hello world 0\n");
...
uprintf("hello world 1\n");
...
uprintf("hello world 2\n");
...
uprintf("hello world 3\n");
...
结果的输出很可能变成:
hello world 0
...
hello world 2
...
hello world 3
...
hello world 1
也许跟它使用的buffer有关系吧,懒得追究了,从此改成bsdlog,不爽的输出次序问题再没出现过。但是最近发现在一个timer的call back函数中使用bsdlog将不再有效,不再有效的意思是它不会输出任何信息。那个timer的call back函数按照文档的说法应该是在interrupt context中了,我想起此前在做IP Filter的时候也遇到过类似的问题,到现在我也没找到原因。貌似网上有关bsdlog在interrupt context下的使用限制文档极少,有价值的我几乎没有看到。另外:在中断关闭(spin_lock_irq...)的临界区中bsdlog也无法有效输出
阅读(3041) | 评论(0) | 转发(0) |