我们知道,内核中使用__section设置了很多的段属性,使用段属性可以很方便的对函数调用时间分层。

比如我们之前常见的subsys_initcall,就要比module_init更早的执行,因为subsys_initcall在驱动中通常是bus和class,驱动程序调用执行需要class和bus已经创建才能执行驱动函数。

关于这点我之前的博文已经有过分析。

https://blog.csdn.net/qq_16777851/article/details/82121456

和subsys_initcall、arch_initcall、core_initcall、device_initcall等类似,内核在别的地方也是用了这样的模式。

这里我们要说的就是__setup

可以搜索一下__setup,可以发现这个宏的调用高达300次,可见这个宏的种重要性。

这个宏里面又是调用了另一个宏

#define __setup(str, fn)                     \__setup_param(str, fn, fn, 0)
</

从零开始之驱动发开、linux驱动(六十三、内核调试篇--基础知识1[earlyprintk建立过程])相关推荐

  1. 从零开始之驱动发开、linux驱动(六十四、内核调试篇--基础知识2[console的建立])

    上一节我们分析的earlay的printk知识,本节主要分析一下在内核启动后的printk的知识. 主要是通过下面函数实现的 after_dashes = parse_args("Booti ...

  2. 从零开始之驱动发开、linux驱动(六十六、内核调试篇--printk原理)

    上一节我们已经看到了console的注册,prink的基础就是console,所以本节我们主要看内核中prink的实现. /*** printk - print a kernel message* @ ...

  3. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念

    linux设备驱动归纳总结(一):内核的相关基础概念 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  4. Linux驱动 简单的Linux驱动基础知识

    Linux驱动 简单的Linux驱动基础知识 一.简述         记--Linux驱动学习笔记. Linux驱动程序初始化硬件设备,并提供硬件控制接口给更上一层的应用调用. 例如使用QT应用程序 ...

  5. Linux进程管理:进程和线程基础知识

    <Linux进程管理:进程和线程基础知识> <Linux-进程管理> <C语言进程的内存地址空间分配> <进程和线程模型> <(1)Linux进程 ...

  6. ❤️六W字《计算机基础知识》(一)(建议收藏)❤️

    计算机简介:         计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量 ...

  7. ❤️六W字《计算机基础知识》(二)(建议收藏)❤️

    上一篇: ❤️六W字<计算机基础知识>(一)❤️  51. Access是一种____数据库管理系统. A.发散型 B.集中型  C.关系型  D.逻辑型 52. 用高级程序设计语言编写的 ...

  8. 信息系统项目管理师核心考点(六十五)信息安全基础知识网络安全

    科科过为您带来软考信息系统项目管理师核心重点考点(六十五)信息安全基础知识网络安全,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识网络安全 1.拒绝服务攻击(Dos) 一种利用合理 ...

  9. 信息系统项目管理师核心考点(六十四)信息安全基础知识重要概念

    科科过为您带来软考信息系统项目管理师核心重点考点(六十四)信息安全基础知识重要概念,内含思维导图+真题 [信息系统项目管理师核心考点]信息安全基础知识重要概念 1.加密技术 ①对称加密[加密与解密的秘 ...

最新文章

  1. centos7 php配置,CentOS7 下nginx与PHP的安装与配置
  2. Swift入门篇-循环语句
  3. ii 组合总和_40. 组合总和 II – 力扣(LeetCode)
  4. paramiko在windows上的安装和使用
  5. Linux命令与shell
  6. python redis模块常用_Python基础-redis模块使用
  7. php xml解析为数组,PHP如何将XML转成数组
  8. Linux系统的目录结构 及各目录用途详解
  9. 如何在SQLite中检查表是否存在?
  10. 应用安全 - Web安全 - 文件包含攻防
  11. Java实现多元t分布函数(Multivariate t distributions)
  12. 计算机考专硕还是学硕好呢,2021计算机考研选学硕还是专硕?
  13. uniapp——ios端和android端微信分享,通过打开appStore和应用宝商店下载
  14. 大家敏捷,才是真的敏捷——记敏捷培训
  15. 查看知乎404问题解决办法
  16. k折交叉验证KFold()函数
  17. 拍乐云创始人CEO赵加雨:深耕18载,打造全景式音视频服务
  18. HTML5网页文本内容
  19. PaddlePaddle深度学习7日入门CV篇Summaries
  20. uni-app优秀插件

热门文章

  1. wrapper后台启动java程序
  2. Ubuntu12.04启动时显示“超出频率范围”的解决方法
  3. 机器人公敌过获奖没有_我机器人(机械公敌2)什么时候上映
  4. 2018团体程序设计天梯赛 软件学院选拔赛
  5. 修复ijkplayer没有正确处理sps导致的MediaCodec解码失败问题
  6. 工欲善其事,必先利其器之windows快捷键组合
  7. java静态代码检测 pmd,PMD使用与代码质量
  8. 微软库 Detour
  9. Linux测试IP是否联通(两种方法)
  10. 网络安全之伪基站的危害