![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动
文章平均质量分 83
zgolee
我要站在什么位置,才能触及阳光、感受幸福呢?
展开
-
arm处理器异常处理-swi
<br />ARM处理器共有7中运行模式:<br /> 用户模式(usr) -- 正常程序执行模式<br /> |-- |-- 快速中断模式(fiq) -- 用于高速数据传输和通道处理<br /> 特 | 异 | 外部中断模式(irq)原创 2010-10-05 17:22:00 · 10702 阅读 · 4 评论 -
MTD系列 - linux中yaffs2文件系统挂载
<br />/*<br />题记:<br /> 上一篇文章《android平台上linux启动时init进程解析init.rc文件分析.txt》中跟踪了nand分区上的yaffs2文件系统在系统初始化时最上层的表现,调用到libc库函数mount()为止。对于我关心的几个分区可以将其罗列一下:<br /> mount(“/dev/block/mtdblock4”, “/system”, “yaffs2”, 0 , NULL);<br /> mount(“/dev/bl原创 2010-11-13 22:51:00 · 9749 阅读 · 0 评论 -
MTD系列 - MTD User modules -- Raw block
<br />前言:<br /> 本来最初的目的只是为了研究内核中nand的驱动,但好奇心太强,忍不住往上层追溯,然后再往下层跟踪。这个过程中,<br /> 特别是在block层,yaffs文件系统和用户空间中相关的分析,其实仅仅只是找到了他们之间的关键联系点而已,没有深<br /> 入详细分析。<br /> <br /> * linux2.6.29<br /> * pxa935<br /> * Hynix NAND 512MB 1.8V 16-bit<br /> * 李枝果/原创 2010-11-13 23:00:00 · 3721 阅读 · 0 评论 -
MTD系列 - 关于linux MTD的一些理解
<br /><!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 680460288 22 0 262145 0;}原创 2010-11-13 22:56:00 · 23553 阅读 · 3 评论 -
MTD系列 - android平台上linux启动时init进程解析init.rc文件分析
<br />题记:<br /> 前段时间,分析linux中的nand驱动,不知不觉就搞到来MTD层,到了MTD层之后还行往上,却发现往上很难继续,<br />功夫不复有心人呐,终于有些思路,发现MTD设备存在很多用户,什么char,block,ftl,nftl,jffs,yaffs等比较多,<br />但是并不是所有的用户都经过了MTD的块设备层,比如jffs和yaffs文件系统就时直接建立在MTD的原始设备层之上的。<br />好奇心强了就会没完没了,想跟踪一下yaffs2文件系统的挂载过程,心有点大了,原创 2010-11-11 17:22:00 · 8142 阅读 · 0 评论 -
MTD系列 - pxa3xx_nand_probe()函数解析
<br />/*<br />nand 设备先于nand 驱动注册,所以,在nand driver注册的时候会按照名字去匹配<br />paltform bus上注册的所有设备,(一个driver可以管理多个devices,但一个device只能被<br />一个driver管理),匹配ok后,会执行nand driver的probe函数,这里就是pxa3xx_nand_probe()<br />*/<br />// 该函数传入参数是&pxa3xx_device_nand<br />s原创 2010-11-13 23:05:00 · 3192 阅读 · 0 评论 -
rootfs初始化调用层次关系
<br />本文相对简单得罗列出函数调用层次<br /> <br />start_kernel()<br />--> vfs_caches_init_early()<br /> --> dcache_init_early()<br /> // 创建目录项hash表,并将hash表每个入口指针均置成NULL<br /> --> inode_init_early()<br /> // 创建文件节点hash表,并将ha原创 2010-10-17 13:38:00 · 1933 阅读 · 0 评论 -
rootfs_initialize.c
<br />/*<br />** arm、linux2.6.29<br />** 该文件不是内核中的文件,只是为了方便分析单独从 linux2.6 ramfs机制解析 中提取出来<br />** 主要分析的是start_kernel()函数中的vfs_caches_init_early()和vfs_caches_init(num_physpages)<br />** 他们实现了rootfs的初始化<br />*/<br />asmlinkage void __init start_k原创 2010-10-17 13:32:00 · 1617 阅读 · 2 评论 -
linux2.6内核initrd机制解析
<br />题记<br /> 很久之前就分析过这部分内容,但是那个时候不够深入,姑且知道这么个东西存在,到底怎么用,来龙去脉咋回事就不知道了。前段时间工作上遇到了一个initrd的问题,没办法只能再去研究研究,还好,有点眉目,索性整理了一下。<br /> 网络上流传着很多关于ramdisk、initrd的各种版本的分析,我的这篇源于对他们的理解,非常感谢那些前辈的无私奉献,要不然我们这些晚辈学起东西来该是多么艰难呀。在这里需要特别声明的是如果文中有引用了您的思想而没有给出参考文献,请您原原创 2010-10-17 13:26:00 · 5225 阅读 · 1 评论 -
系统调用-进程创建函数基本用法1
<br />* 本文的系统调用的分析基于ARM体系结构<br />* CrossTool:gcc-3.4.5,libc库:glibc-2.3.6<br />* 本文的内容均来自arm交叉编译工具链目录下的相关头文件<br /><br />linux中,进程和线程对内核而言都被看作任务,平等参与调度。本文深入追踪讨论几种创建任务的用户态函数:<br />fork、vfork、clone、pthread_create,通过这几个函数分析,了解arm体系结构下系统调用的方法,<br />最终目原创 2010-10-07 21:25:00 · 3107 阅读 · 0 评论 -
系统调用-进程创建函数glibc部分2
<br />* 本文的系统调用的分析基于ARM体系结构<br />* CrossTool:gcc-3.4.5,libc库:glibc-2.3.6<br />* 本文的内容来自glibc源代码<br /><br />上一篇文章中讲述了用户进程如何使用fork、vfork、clone、pthread_create函数,本文将基于glibc-2.3.6源码来跟踪<br />这些系统调用是怎么使调用用户进程从用户态切换到内核态的。<br /><br />系统调用是操作系统提供的服务,用户程序通过原创 2010-10-07 21:26:00 · 3181 阅读 · 0 评论 -
MTD系列 - linux内核底层nand驱动解析
<br />前言:<br /> 前几篇文章基本都没有涉及到mtd原始设备层以下的内容,其实mtd块设备层和mtd原始设备层的分界线很明显,只是通过<br /> mtd_table[]和mtd_notifiers链表来联系,具体怎么联系的请参考上一篇文章。<br /> 本文中将详细分析linux内核中nand设备注册和驱动注册,同时文中会穿插关于nand坏块管理的部分,另外在适当的地方会<br /> 讲解DMA原理和其在nand驱动程序中的应用。<br /> <br /> * OS原创 2010-11-13 23:03:00 · 2710 阅读 · 0 评论