发布时间:2012-12-28 19:18:40
nandflash没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。nandflash主要以page(页)为单位进行读写,以block(块)为单位进行擦除。每一页中又分为main区和spare区,main区用于正常数据的存储,spare区用于存储一些附加信息,如块好坏的标记、块的逻辑地址、页内数据的ECC校验和等。 在这里,我们使用的nandflash为K9F2G08U0A,它是8位的nandflash。K9F2G08U0A的一页为(2K+64)字节(加......【阅读全文】
发布时间:2012-12-28 19:07:07
本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。作者:fireaxe_hq@hotmail.com 博客:fireaxe.blog.chinaunix.net一、底层接口封装 假如要为图中设备编写驱动,首先要做什么? 我认为应该是对各个器件进行抽象,也就是把可能的各种操作封装成接口并把需要的数据封装成结构体。这样作有两个好处,一是可以不再考虑器件的实现细节,直接调用接口就可完成各种操作;而是通过对接口的测试,可以较早的完成对器件的验证。 以上图为例,包含......【阅读全文】
发布时间:2012-12-28 16:22:04
说到C语言函数可变参数,我们最先想到的可能就是printf、scanf、printk了。在Linux-2.6.24.7内核源码里,printk函数原型如下: asmlinkage int printk(const char *fmt, ...) asmlinkage表示通过堆栈传递参数。gcc编译器在汇编过程中调用c语言函数时传递参数有两种方法:一种是通过堆栈,另一种是通过寄存器。缺省时采用寄存器,假如你要在你的汇编过程中调用c语言函数,并且想通过堆栈传递参数......【阅读全文】
发布时间:2012-12-28 13:14:11
Linux对中文的支持不是很好,也不像Windows样,会对文件名,文件内容做字符集的自动转换。例如,将Windows下的文件复制到Linux下,会出现一堆的乱码,这时,就要用到linux的一些字符集转换工具来处理。1. 批量文件名字符集转换工具 -- convmv下载链接:http://download.chinaunix.net/download/0002000/1760.shtmlconvmv是一个更改文件名编码方式的工具,它甚而可以进行目录下文件名的批量转换。例如,将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的,使用命令如下:$./convmv -f gbk -......【阅读全文】
发布时间:2012-12-26 15:13:51
在我看来,FFmpeg 绝对是一个很酷的应用。那么,它究竟有什么用呢?简单地讲,FFmpeg 相当于一个屏幕录像机。你可以使用它将屏幕上的操作过程录制下来,然后再将其播放给别人看。我们可以利用它制作教学影片、产品演示等等。以下是补丁、编译、使用步骤: 1.下载源码包wget http://linuxtoy.org/src/ffmpeg-0.4.9-p20051216.tar.bz2 2.解压tar xvjf ffmpeg-0.4.9-p20051216.tar.bz2 3.转到解压的目录cd ffmpeg-0.4.9-p20051216 4.下载补丁文件wget htt......【阅读全文】