![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux/内核
文章平均质量分 63
hhcs
硬件协议、驱动、内核
展开
-
linux kernel ptr dump
kernel ptr debug原创 2024-07-12 19:23:41 · 804 阅读 · 0 评论 -
drm 和 sysfs
drm sysfs原创 2024-05-13 22:56:00 · 249 阅读 · 0 评论 -
drm gpu scheduler
gpu scheduler原创 2023-06-19 23:33:59 · 653 阅读 · 0 评论 -
node mask
因此,`BITS_TO_LONGS(nr)` 宏先将参数 `nr` 与 `BITS_PER_LONG` 相除,然后将商加 1,以确保可以容纳所有的 `nbits` 位。其中,`BIT_WORD` 和 `BIT_MASK` 宏分别用于求取 `bits` 数组中下标和该下标中对应的位掩码,`BITS_TO_LONGS()` 宏用于求取 `bits` 数组中元素的数量,等于表达式 `(MAX_NUMNODES + BITS_PER_LONG - 1) / BITS_PER_LONG`。原创 2023-05-17 19:33:37 · 614 阅读 · 0 评论 -
linux regmap and regmap_config
i2c,regmap原创 2023-02-22 00:10:46 · 860 阅读 · 0 评论 -
Device tree如何注册到sysfs
设备树和sysfs关联原创 2022-12-12 12:40:08 · 154 阅读 · 0 评论 -
dtb如何转换到platform_device
设备树深度解读原创 2022-12-12 12:33:37 · 428 阅读 · 0 评论 -
wait_queue如何使用
等待队列原创 2022-12-09 17:18:37 · 1081 阅读 · 0 评论 -
linux字符驱动模板
第一种,字符驱动,比较常用。第二种,就是一个接口。原创 2022-11-25 17:10:33 · 198 阅读 · 0 评论 -
kobject 与sysfs属性文件读写
kobject,kset原创 2022-11-25 12:23:11 · 325 阅读 · 0 评论 -
linux bus_register过程
bus init and register原创 2022-11-25 11:43:24 · 471 阅读 · 0 评论 -
linux 模型属性attribute
属性定义和分解原创 2022-11-21 23:23:05 · 1551 阅读 · 0 评论 -
Sysfs 和kobject
sysfs kobject转载 2022-11-17 10:55:54 · 340 阅读 · 0 评论 -
linux list for list_head
linux list原创 2022-11-16 20:37:53 · 103 阅读 · 0 评论 -
linux进程概念
一:Linux进程的四大要素1:一段供进程执行的程序,该程序可以被多个进程执行。2:独立的内核堆栈。3:进程控制快(task_struct:有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。同时,这个结构还记录着进程所占用的各项资源。4:独立的存储空间:即拥有专有的用户空间,除了前面的内核空间还有用户空间。线程:只有前三条,没有第四条。进程和线程的转载 2014-08-17 22:19:23 · 591 阅读 · 0 评论 -
Linux中的SUID SGID详解
如果你对SUID、SGID仍有迷惑可以好好参考一下!Copyright by kevintz.由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参转载 2014-08-10 22:24:17 · 732 阅读 · 0 评论 -
Linux中的HZ tick jiffies
Linux核心几个重要跟时间有关的名词或变数,底下将介绍HZ、tick与jiffies。(1)HZ Linux核心每隔固定周期会发出timer interrupt (IRQ 0),HZ是用来定义每一秒有几次timer interrupts。举例来说,HZ为1000,代表每秒有1000次timer interrupts。 HZ可在编译核心时设定,具体查询设定方法可参见上篇文章《li转载 2013-11-20 15:20:32 · 869 阅读 · 0 评论 -
Linux中调用 system的返回值
先写一个被调用的函数#include #include #include #include int main(){printf("Return 10./n");return 10;}==================================编译后生成一个"rt"的可执行文件运行结果========================转载 2013-11-20 15:33:32 · 980 阅读 · 0 评论 -
Linux时间子系统之一:clock source(时钟源)
clock source用于为linux内核提供一个时间基线,如果你用linux的date命令获取当前时间,内核会读取当前的clock source,转换并返回合适的时间单位给用户空间。在硬件层,它通常实现为一个由固定时钟频率驱动的计数器,计数器只能单调地增加,直到溢出为止。时钟源是内核计时的基础,系统启动时,内核通过硬件RTC获得当前时间,在这以后,在大多数情况下,内核通过选定的时钟源更新实时时转载 2013-11-20 08:44:46 · 939 阅读 · 0 评论 -
Linux下select函数的使用
一.Select 函数详细介绍 Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发 生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。转载 2013-11-20 16:02:06 · 775 阅读 · 0 评论 -
“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别
今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想转载 2013-11-20 08:43:53 · 1084 阅读 · 0 评论 -
嵌入式Linux系统实现3G网卡拨号
文章来源于http://blog.chinaunix.net/uid-9525959-id-3998519.html嵌入式Linux系统实现3G网卡拨号本文介绍在嵌入式Linux中,实现3G联网的基本方法。包括驱动配置,和联网的过程。也对在PC上实现3G的过程进行了介绍。硬件:3g usb模块(华为ce189的3g网卡)+一张sim卡(电信cdma2000)软件系统转载 2013-11-22 14:37:33 · 1612 阅读 · 0 评论 -
EMMC
什么是eMMCeMMC全称为embeded MultiMedia Card。eMMC为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机和移动嵌入式产品为主。eMMC是一种嵌入式非易失性存储器系统,由闪存和闪存控制器两部组成。eMMC的一个明显优势是在封装中集成了一个闪存控制器,它采用JEDEC标准BGA封装,并采用统一闪存接口管理闪存。 [eMMC的结构]eMMC 结构由一个嵌入式存储解决方转载 2013-11-13 14:46:30 · 2268 阅读 · 0 评论 -
module_init 和 late_initcall 区别 调整Linux内核启动中的驱动初始化顺序
在init.h 中有如下定义 #define pure_initcall(fn) __define_initcall("0",fn,1)#define core_initcall(fn) __define_initcall("1",fn,1)#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)转载 2013-11-13 14:26:06 · 5106 阅读 · 0 评论 -
《Linux命令行与shell脚本编程大全》讲解太好了
不用买书了,作者对这本书进行了详细的笔记。1-7 http://blog.csdn.net/su1216/article/category/1285549/28-27 http://blog.csdn.net/su1216/article/category/1285549转载 2013-12-12 21:53:50 · 807 阅读 · 0 评论 -
linux dma映射讲解
在《深入理解Linux内核》中的第545页介绍了DMA的相关操作。说道DMA,那就不得不提到Cache(高速缓存)的问题。书中引用了如下一段例子来描述了Cache一致性问题:“假设设备驱动程序把一些数据填充到内存缓冲区中,然后立刻命令硬件设备利用DMA传送方式读取该数据。如果DMA访问这些物理RAM内存单元,而相应的硬件高速缓存行的内容还没有写入RAM中,那么硬件设备所读取的至就是内存缓冲区中原创 2013-12-12 21:57:29 · 2484 阅读 · 1 评论 -
device_register()和platform_device_register()的区别
首先看device和platform_device区别由struct platform_device {const char * name; //NOTE:此处设备的命名应和相应驱动程序命名一致u32 id; //以实现driver bindingstruct device dev;u32 num_resources;struct resource *转载 2013-12-12 22:24:32 · 1586 阅读 · 0 评论 -
linux内核PID管理
PID即进程描述符在linux kernel中的分配和管理比较复杂。 本文分析了其相关数据结构以及函数。 (代码基于v3.0.3)和PID相关的数据结构有[cpp] view plaincopystruct pid { atomic_t count; unsigned int level; struct hli转载 2014-08-03 22:24:51 · 615 阅读 · 0 评论