摘要:
最近花时间研究了一下 MMC 卡驱动程序,开始在网上找了很多关于 MMC 卡驱动的分析文章,但大都是在描述各个层,这对于初学者来讲帮助并不大,所以我就打算把自己的理解写下来,希望对大家有用。个人觉得理解 LINUX 内核当中 MMC/SD 卡驱动程序构架是学习 MMC 卡驱动程序的重点,只有理解了它 阅读全文
摘要:
理解 嵌入式系统编程,要求程序员能够利用C语言访问固定的内存地址。 既然是个地址,那么按照C语言的语法规则,这个表示地址的量应该是指针类型。 所以,知道要访问的内存地址后,比如0x57000040(这儿的addr就是内存地址0x57000040) 第一步,把它强制转换为指针类型: 注: volati 阅读全文
摘要:
背景(C&C++中) 一、inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。 表达式形式的宏定义一例:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2)) 取代这种形式的原因如下 阅读全文
摘要:
为了学习SD/SDIO协议,看了一下linux中初始化SD卡的流程,结合代码更容易SD初始化是怎么做的。 下面图截自:"SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10" SD卡在sd模式下的初 阅读全文
摘要:
转自:http://www.cnblogs.com/fengeryi/p/3472728.html mmc_sd_init_card剩下的关于UHS-I的分支结构。 uhs-I的初始化流程图如图: 红线标出的部分是已经做了的事,与上一篇那个流程图是一致的,之后就是if分支中做的事。 if分支中的函数 阅读全文
摘要:
1.4.1 Linux块设备驱动程序原理(1) 顾名思义,块设备驱动程序就是支持以块的方式进行读写的设备。块设备和字符设备最大的区别在于读写数据的基本单元不同。块设备读写数据的基本单元为块,例如磁盘通常为一个sector,而字符设备的基本单元为字节。从实现角度来看,字符设备的实现比较简单,内核例程和 阅读全文
摘要:
SDIO接口是在SD接口基础上发展起来的,SDIO接口兼容SD接口。SDIO协议又在SD卡协议之上添加了CMD52(一般用来访问寄存器)和CMD53(字节和块传输)命令。SDIO和SD卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速I/O能力。目前根据SDIO协议... 阅读全文
摘要:
面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库,很多linux应用程序开发人员和linux设备驱动开发人员即兴奋,又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能,烦躁的是适应新软件的特性、搭建新环境是一项非常繁琐的事情。本文想从以下3个方面探讨一下“面对不断升级 阅读全文
摘要:
好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。 但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。 1. strcpy strcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy 常规的实现代码如下: 阅读全文
摘要:
方法1 每次开始的时候输入 bash 虽然只能保存一次,但是简便。方法2用 vi ~/.bash_profile 编辑这个文件,有时会提示这个文件不存在,直接选edit。在文件加上 export PS1='[\u@\h \W]\$’在ssh中vi的保存先按ESC,然后:wq! 保存退出。最后执... 阅读全文