摘要:
SD卡是个块设备,与字符设备的不同在于访问次序可以随机。其实,这样说吧,sd卡中存放了大量的文件,有普通文件,可执行文件,sd卡上用的文件系统。所以sd卡的驱动也就会有很大的不同,比如说没有read(),write(),但是有读写的命令,通常读写函数都注册到内核空间,用户经过系统调用就可以用,但对于sd卡,则不行,必须先通过具体的文件系统,再通过驱动中的命令实现。这样说吧,sd卡驱动的核心是请求队列,对于sd卡本身最重要的却不是驱动,而是其文件系统。为什么呢?因为文件系统决定了sd卡中文件的存储方式,文件的存储信息,以及文件的操作方法。你所写的文件要保存到sd卡中,还有你要查找文件在sd卡中. 阅读全文
阅读排行榜
__mmc_claim_host
2013-03-15 10:41 by 至上, 2310 阅读, 收藏,
摘要:
int __mmc_claim_host(struct mmc_host *host, atomic_t *abort){ DECLARE_WAITQUEUE(wait, current); //初始化一个等待节点 unsigned long flags; int stop; might_sleep(); add_wait_queue(&host->wq, &wait); //当前进程进入等待队列 spin_lock_irqsave(&host->lock, flags); while (1) { set_current_st... 阅读全文
ZygoteInit源码解读
2012-04-06 22:33 by 至上, 2304 阅读, 收藏,
摘要:
由app_main.cpp文件中调用ZygoteInit.java 进行创建第一个虚拟机。init.rc中可以设置与其相关的参数:servicezygote/system/bin/app_process-Xzygote 告诉操作系统 Zygote加入到系统服务中 -Xzygote,该参数将作为虚拟机启动时所需要的参数,是在AndroidRuntime.cpp类的startVm()函数中调用JNI_CreateJavaVM()时被使用的/system/bin--zygote--start-system-server --开头的都是参数 比如--start-system-server指的是Zyg. 阅读全文
SD卡中的completion实现
2012-08-21 16:17 by 至上, 1765 阅读, 收藏,
摘要:
Linux系统提供了一种比信号量更好的同步机制,即completion,它用于一个执行单元等待另一个执行单元执行完某事。 Linux系统中与completion相关的操作主要有以下4种: (1) 定义completion struct completion my_completion; (2) 初始化completion init_completion(&my_completion); 对my_completion的定义和初始化可以通过如下快捷方式实现 DECLEARE_COMPLETION(my_co... 阅读全文
SD卡 内置DMA的使用
2013-03-27 16:50 by 至上, 1636 阅读, 收藏,
摘要:
static inline void sepmmc_dma(int real_num,struct sepmmc_host *host){ struct sepmmc_dma_descriptor *descriptor[real_num]; dma_addr_t bus_addr; dma_addr_t DESCRIPTOR_BASE[real_num]; int seg_len; int temp=0; mmc_debug("[%s] into \n",__func__); addr_minus =(unsigned int *)k... 阅读全文
浙公网安备 33010602011771号