
嵌入式
文章平均质量分 71
菜菜的阿庄
这个作者很懒,什么都没留下…
展开
-
linux 内核模块学习总结
文章目录一、简介二、一个简单的内核模块代码三、模块内常用符号说明四、内核模块加载1、模块加载函数2、模块加载3、查看设备上当前模块的信息4、查看模块依赖五、内核模块卸载1、模块卸载函数2、模块卸载六、模块参数七、导出符号八、编译一、简介linux内核架构庞大功能众多,包含非常多的组件。并不是所有功能都是用户需要的,也不可能稍微修改一些功能就重新全编linux内核。当前linux使用模块(module)的机制解决这个问题1、module可以单独编译2、module可以在内核启动后动态加载或卸载原创 2022-04-24 11:01:10 · 1559 阅读 · 0 评论 -
查看内核模块依赖关系和动态库依赖关系
背景最近在项目中加载内核模块和动态库时,都遇到加载失败情况。后发现都是依赖关系问题,在此记录此类问题的解决方法。查看内核模块依赖关系使用insmod加载内核模块时,报以下错误:/ # insmod a.koinsmod: ERROR: could not insert module ./a.ko: Unknown symbol in module环境缺少模块依赖,使用modinfo查看依赖:/ # modinfo ./a.infofilename: /home/admin/./原创 2022-01-06 17:32:03 · 2544 阅读 · 0 评论 -
rdmsr获取Intel CPU温度
最近调试intel 的x86 CPU单板,获取CPU温度遇到一些问题,在此记录下。问题描述原方案原方案从 /sys/class/hwmon/下读取CPU温度,该目录下有hwmon0、hwmon1、hwmon2三个文件,其中hwmon2目录下有记录CPU温度的文件temp_input,从该文件能直接读取CPU温度。但是后来发现temp_input文件有时在hwmon1下,有时在hwmon2下,不同环境位置不一样,无法统一。也不想再用直接读文件获取温度的方法,查看CPU手册找到了读寄存器获取温度的方法,原创 2022-01-06 11:38:03 · 4195 阅读 · 2 评论 -
中断模式和polling模式 && 硬件中断和软件中断
文章目录一、中断 VS polling中断polling对比一、中断 VS polling中断中断是一种硬件机制,设备通知CPU处理器中断CPU当前正在运行的任务,来处理中断任务。中断可能发生在任何时间,所以当CPU通过中断线收到中断信号时,会立即停止当前处理的任务,转而调用中断设备的中断相应程序来处理中断。pollingpolling即轮询模式,是一种软件协议。在轮询过程中,CPU周期性的依次询问每一个设备,是否有业务需要处理。每个设备有一个指令就绪bit位,这个bit位标识了设备是否需要处原创 2022-03-31 15:08:17 · 12089 阅读 · 0 评论 -
S.M.A.R.T. 参数(smartctl)计算硬盘精确健康值
参考:Acronis Drive Monitor: Disk Health Calculation文章目录1、背景2、smartctl -a /dev/sda3、计算健康值3.1 关键参数3.1.1 公式说明3.2.2 计算举例3.2 其它参数4、附录表1 关键属性的阈值和权重表21、背景需要监控硬盘精确的健康值。我们知道smartctl工具可以实现对硬盘的健康检测,但是并没有给出具体的健康值信息。例如,smartctl -H /dev/sda命令可以检测硬盘:~# smartctl -H /d原创 2022-02-28 11:14:11 · 4070 阅读 · 2 评论