随笔分类 - linux驱动及内核开发
摘要:LINUX下的tty,console与串口
阅读全文
摘要:linux中的jiffies变量 全局变量jiffies用来记录自系统启动以来产生的节拍的总数。启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值。一秒内时钟中断的次数等于Hz,所以jiffies一秒内增加的值也就是Hz。 系统运行时间以秒为单位,等于jiffies/Hz。
阅读全文
摘要:[FreeRTOS系列教程]学习FreeRTOS前的准备工作 初学者必看 [FreeRTOS]FreeRTOS,SafeRTOS和OpenRTOS的区别和联系
阅读全文
摘要:mkcramfs制作cramfs文件系统
阅读全文
摘要:cache写策略Write Through (完全写入)CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致。优点是简单,缺点是每次都要访问memory,速度比较慢。Write Back (回写) CPU更新cache时,只是把更新的cache区标记一下...
阅读全文
摘要:copy_to_user,copy_from_user,get_user,put_user函数比较copy_to_user -- Copy a block of data into user space. copy_from_user -- Copy a block of data from use...
阅读全文
摘要:TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLETASK_INTERRUPTIBLE 和TASK_UNINTERRUPTIBLE 的区别TASK_INTERRUPTIBLE是可以被信号和wake_up()唤醒的,当信号到来时,进程会被设置为可运行。而TASK_UNINT...
阅读全文
摘要:Linux Command Line 解析0 处理模型Linux kernel的启动包括很多组件的初始化和相关配置,这些配置参数一般是通过command line进行配置的。在进行后续分析之前,先来理解一下command line的处理模型:要处理的对象是一个字符串,其中包含了各种配置信息,通常各个...
阅读全文
摘要:设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定。 以一个USB设备为例,有两种情形:(1)先插上USB设备并挂到总线中,然后在安装USB驱动程序过程中从总线上遍历各个设备,看驱动程序是否与其相匹配,如果匹配就将两者邦定。这就是platform_driver_register()...
阅读全文
摘要:linux软中断与硬中断实现原理概述。 1、软中断通过open_softirq注册一个软中断处理函数,即在软中断向量表softirq_vec数组中添加新的软中断处理action函数。2、调用raised_softirq软中断触发函数,即把软中断标记为挂起状态。内核会在一些位置检查是否有挂起状态...
阅读全文
摘要:linux进程的地址空间,核心栈,用户栈,内核线程 地址空间:32位linux系统上,进程的地址空间为4G,包括1G的内核地址空间,和3G的用户地址空间。内核栈:进程控制块task_struct中保存了2个page大小的信息。为什么每一个进程都是用各自的内核栈呢?引用(http://hi.baidu...
阅读全文
摘要:需要考证考证结果:其内核栈是独立的 206 static struct task_struct *dup_task_struct(struct task_struct *orig) 207 { ...
阅读全文
摘要:Linux 进程栈和线程栈的区别 http://www.cnblogs.com/luosongchao/p/3680312.html总结:线程栈的空间开辟在所属进程的堆区,线程与其所属的进程共享进程的用户空间,所以线程栈之间可以互访。线程栈的起始地址和大小存放在pthread_attr_t 中,...
阅读全文
摘要:Linux进程管理知识整理1、进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些?TASK_RUNNING(可运行状态)TASK_INTERRUPTIBLE(可中断等待状态)TASK_UNINTERRUPTIBLE(不可中断...
阅读全文