代码改变世界

SD卡 驱动层测速

2013-06-26 11:59 by 至上, 670 阅读, 0 推荐, 收藏, 编辑
摘要:init_timer(&timer1); timer1.function = test_time; timer1.data = 0; timer1.expires = jiffies + msecs_to_jiffies(1); add_timer(&timer1); sd_test(mmc); printk("count = %d \n",count);sd_test()函数写在probe函数中,但要等待sd初始化完毕才行,需要在上电时就插入SD卡,而不要等待系统起来之后。另外,如果mmc_rescan函数使用的工作队列实现的,那么它与probe就属于两. 阅读全文

SD卡 UBOOT环境

2013-03-27 16:54 by 至上, 1603 阅读, 1 推荐, 收藏, 编辑
摘要:static __inline__ void sdio_init( void ){ int resp; int temp; int no_resp; int resp_vld; int ccs; int i; __arch_putl(0x0,0x91004010); /*stop clock*/ __arch_putl(0x80202000,0x9100402c); /*updata c... 阅读全文

SD卡 内置DMA的使用

2013-03-27 16:50 by 至上, 1578 阅读, 0 推荐, 收藏, 编辑
摘要: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... 阅读全文

__mmc_claim_host

2013-03-15 10:41 by 至上, 2204 阅读, 0 推荐, 收藏, 编辑
摘要: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... 阅读全文

android视频播放与调试

2013-01-07 19:25 by 至上, 1290 阅读, 0 推荐, 收藏, 编辑
摘要:1.public class MainActivity extends Activity { protected static final String TAG = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.activity_m... 阅读全文

SD卡读写流程

2012-12-28 15:34 by 至上, 17014 阅读, 0 推荐, 收藏, 编辑
摘要:本文主要介绍从用户层读sd卡和写sd卡中间执行的过程。有对内核普遍性的介绍,和sd卡驱动个性的描述,强调把内核与驱动分开来看。同时提出内核需要驱动提供的参数,数据。一 SD卡使用流程框图说简单点:就是完成SD卡与内存之间的数据交互。但是涉及到了设备管理与文件管理。用户操作就是用户进程的read/write系统调用,应该说是 fread/fwrite,表示读某个文件,再不是读sd卡这个设备文件,也就是说你不需要在sd驱动中实现read/write函数,因为用不到啊。系 统调用后进入fat文件系统中的read/write,如果你问我为什么会进入fat中,因为sd卡上的文件组织使用的是fat32文件 阅读全文

初学TCP/IP(IRIS工具的使用)

2012-12-11 10:13 by 至上, 2994 阅读, 0 推荐, 收藏, 编辑
摘要:IRIS是个抓包工具,通过分析抓到的包分析TCP/IP协议,使学习不再枯燥。1搭建网络环境192.168.1.61(服务器端,安装FTP) 192.168.1.106(客户端,安装IRIS抓包工具) 通过从服务器端下载文件,分析网络协议。(1)安装FTP先下载iis v5 for xp,如果不是xp的,版本可能不一样。控制面板->添加或删除程序->添加/删除windows组件->选中Internet信息服务IIS(进入下一步之前,点击详细信息,勾上FTP服务)->点击下一步,点击确定,把刚下载的IIS解压后路径填入,就ok了。安装完IIS,会在控制面板->管理工具 阅读全文

linux内存管理

2012-10-12 16:01 by 至上, 23707 阅读, 4 推荐, 收藏, 编辑
摘要:一 为什么需要使用虚拟内存 大家都知道,进程需要使用的代码和数据都放在内存中,比放在外存中要快很多。问题是内存空间太小了,不能满足进程的需求,而且现在都是多进程,情况更加糟糕。所以提出了虚拟内存,使得每个进程用于3G的独立用户内存空间和共享的1G内核内存空间。(每个进程都有自己的页表,才使得3G用户空间的独立)这样进程运行的速度必然很快了。而且虚拟内存机制还解决了内存碎片和内存不连续的问题。为什么可以在有限的物理内存上达到这样的效果呢?二 虚拟内存的实现机制 首先呢,提一个概念,交换空间(swap space),这个大家应该不陌生,在重装系统的时候,会让你选择磁盘分区,就比如说一个硬盘分几个部 阅读全文

sd卡与FAT32文件系统

2012-09-06 10:52 by 至上, 9283 阅读, 0 推荐, 收藏, 编辑
摘要:先把sd卡格式化,然后新建几个文件放在里面,用于分析,sd卡中文件的存储方式。使用工具winhex,打开磁盘sd卡。先分析一下sd卡的第一个扇区,其中的内容为DBR(DOS BOOT RECORD c操作系统引导记录区)DBR中BPB部分才是这一区域的核心部分,对于FAT32的实现意义很大。每个红线部分是一个字段,要知道是什么意思,对照表看看就可以啦:上面的长度是只占的字节数,现在就对照分析一下,每个扇区字节数是00 02,属于小端存数,读得时候为0x02 00,也就是512字节。没簇的扇区数是0x08,就是包含8个扇区,大小为4kB。保留扇区数目为26 00,就是0x0026,保留38个扇区 阅读全文

linux系统调用与文件系统

2012-08-27 14:42 by 至上, 841 阅读, 0 推荐, 收藏, 编辑
摘要:写这篇博客呢,分析下字符设备与块设备open read的相同点和不同点。 大家都知道在linux系统中设备都是按照文件来管理的,用户需要操作也是使用操作文件的思想。这里的文件是普通文件,就是存储在块设备中的普通文件(.c .txt),所以他们的第一个不同点就是,对于块设备没有read或者write的操作,原因是你需要操作的知识块设备中的一个文件,比如说sd卡中存放了n多的文件,你一次只会操作一个文件,所以你应该读你想要的文件而不是整个块设备,所以在块设备驱动中没有read函数实现,你需要使用的read函数都在块设备文件系统中实现了,比如ext2,fat32等。虽然最终向块设备发送命令是由驱动完 阅读全文