随笔分类 - LinuxKernel
linux初始化宏__init, __exit
摘要:我们在内核中经常遇到初始化函数是这样定义的:static int __init init_func(); ,与普通函数相比,定义中多了__init。那么,__init是什么意思呢?还有与其匹配的__exit呢? __init* macro __init定义在:include/linux/init.h
阅读全文
linux内核initcall
摘要:include/linux/init.h /arch/arm/kernel/vmlinux.lds
阅读全文
Linux内核空间内存申请函数kmalloc、kzalloc、vmalloc
摘要:我们都知道在用户空间动态申请内存用的函数是 malloc(),这个函数在各种操作系统上的使用是一致的,对应的用户空间内存释放函数是 free()。 注意:动态申请的内存使用完后必须要释放,否则会造成内存泄漏,如果内存泄漏发生在内核空间,则会造成系统崩溃。 那么,在内核空间中如何申请内存呢?一般我们会
阅读全文
Linux电源管理-Linux regulator framework概述
摘要:前言 1. 什么是regulator? regulator翻译为"调节器",分为voltage regulator(电压调节器)和current(电流调节器)。一般电源管理芯片(Power Management IC)中会包含一个甚至多个regulator。 2. regulator有什么作用? 通
阅读全文
内核错误值
摘要:rk3288内核错误值列表,定义在路径include/uapi/asm-generic/errno-base.h #define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */
阅读全文
module_param和module_param_array用法
摘要:如何向模块传递参数? Linux kernel 提供了一个简单的框架。利用module_param和module_param_arra来实现。 1. module_param(name, type, perm); name 既是用户看到的参数名,又是模块内接受参数的变量; type 表示参数的数据类
阅读全文
浙公网安备 33010602011771号