![](https://img-blog.csdnimg.cn/697024d3ee354b669c7d05ebc5459ae1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux内核
文章平均质量分 84
以实战为线索,讲解Linux内核知识
嵌入式Linux充电站
芯片原厂驱动工程师,
始终觉得“讲出来,才是学到的”,
学习、沉淀、分享,才能有所获!
展开
-
Linux启动速度优化方法总结
要对Linux系统启动速度进行优化,首先要知道如何统计系统启动的时间。下面介绍几种统计内核启动耗时的方法,以及对内核启动速度优化的几个方法。原创 2023-09-16 16:37:16 · 1964 阅读 · 0 评论 -
编译Linux内核一定要知道的几个小Tips
反汇编对大多数人来说可能用不上,一般在内核移植、启动分析时比较有用,但由于工作需要,我通常都会把反汇编加上。显示自己对内核代码的修改时也会把这些临时文件显示出来,而且提交还必须一个文件一个文件地指定,相当麻烦。Linux内核编译过程会产生很多的文件,包括目标文件、临时文件等等,只有在第一次编译内核的才使用,第一次编译过后,将这句注释,后面都通过。Linux默认是做本地编译,也就是编译位本机使用的内核。在嵌入式开发中,经常需要交叉编译,要做交叉编译的话,需要在。这样在编译Linux内核时,原创 2023-04-05 21:46:28 · 423 阅读 · 0 评论 -
Linux内核中常用的C语言技巧
Linux内核采用的是GCC编译器,GCC编译器除了支持ANSI C,还支持GNU C。在Linux内核中,许多地方都使用了GNU C语言的扩展特性,如typeof、__attribute__、__aligned、__builtin_等,这些都是GNU C语言的特性。原创 2022-12-28 23:34:24 · 354 阅读 · 0 评论 -
Linux内核死锁检测工具——Lockdep
Linux内核在2006年引入了死锁调试模块`lockdep`,`lockdep`会跟踪每个锁的自身状态和各个锁之间的依赖关系,经过一系列的验证规则来确保锁之间依赖关系是正确。原创 2022-12-25 13:58:04 · 2082 阅读 · 0 评论 -
Linux内核基础篇——常用调试技巧汇总
Linux内核调试常用技巧汇总:printk、动态输出、BUG()和BUG_ON()、dump_stack()分析函数调用关系、devmem直接读写寄存器原创 2022-12-24 19:26:45 · 1390 阅读 · 0 评论 -
Linux内核基础篇——动态输出调试
上篇说到printk调试,但printk是全局的,只能设置输出等级。而动态输出**可以动态选择打开某个内核子系统的输出,可以有选择性地打开某些模块的输出。要使用动态输出,必须在配置内核时打开`CONFIG_DYNAMIC_DEBUG`宏。内核代码里使用大量`pr_debug()/dev_dbg()`函数来输出信息,这些就使用了动态输出。原创 2022-12-18 23:10:51 · 388 阅读 · 0 评论 -
Linux内核基础篇——printk调试
很多内核开发者喜欢的调试工具是printk,在Linux内核中,使用printk()函数来打印信息,它与C库的printf()函数类似。printk()与printf()的一个重要区别是:**printk()提供输出等级**。内核会根据这个等级来判断是否在终端或者串口中输出。原创 2022-12-14 00:04:36 · 1487 阅读 · 0 评论 -
Linux内核基础篇——initcall
写过Linux驱动的人都知道`module_init`宏,因为它声明了一个驱动的入口函数。除了`module_init`宏,你会发现在Linux内核中有许多的驱动并没有使用`module_init`宏来声明入口函数,而是看到了许多诸如以下的声明:原创 2022-12-12 22:12:45 · 746 阅读 · 0 评论