初始化 打开/drivers/mtd/nand/s3c2410.c找到nand flash驱动程序代码,找到模块初始化函数s3c_nand_init,找到platform_driver中的probe函数. 1.使能时钟 2.进行物理地址到虚拟地址转换 3.硬件纠错初始化 4.搜索nand flash 5.注册分区信息 nand flash读操作 nand flash读写函数位于通用驱动/drivers/mtd/nand/nand_base.c.nand flash的读函数位于nand_read的…
LED程序设计 1.编写内核模块 2.搭建字符驱动框架 3.实现设备方法 头文件 <linux/io.h> writel() 1.编译/安装驱动 make cp leddev.ko .../rootfs insmod leddev.ko 2.创建设备文件 mknod /dev/myled0 c 253 0 3.编译/运行应用程序 arm-linux-gcc -static ledapp.c -o ledapp cp ledapp .../rootfs ./ledadd 0 ./ledadd 1…
NandFlash读数据方式 1.页读,读出页中主数据区的所有数据,提供页地址(行地址) 2.随机读,读出页中指定的存储单元的数据,提供页地址(行地址)和页内偏移(行地址) 代码编写 1.根据NandFlash中的读时序图写出工作流程,可以通过在芯片手册中搜索operation找到相关描述 2.主要关心的是IO脚上时序的变化 3.初始化闪存分为初始化闪存控制器和闪存芯片 4.对位操作 4.1.清零 x &= ~(y<<z)   对x的z位开始的y清零 4.2.置1 x |= y<…
USB驱动模型 1.USB host controller driver(主控器驱动):为USB主控制器提供驱动程序 2.USB core(USB核心):连接USB主控制器驱动和USB设备驱动 3.USB client driver:为USB外部设备提供驱动程序 USB设备模型 device(设备)->config(配置)->interface(接口)->endpoint(端点),构成了USB设备的四个层次.一个usb driver(驱动)对应的是一个interface(接口).一个接口…
SPI Flash驱动 1.打开/drivers/mtd/devices/m25p80.c驱动文件.找到初始化m25p80_init函数,其中通过spi_register_driver来注册spi设备驱动.需要的参数是struct spi_driver指针结构. 2.匹配函数是在m25p_probe中. 3.写操作是在m25p80_write中.要写的事务通过spi_message提交给spi_master控制器,一个spi_message事务又分为很多spi_transfer操作. 4.当写入…
移植代码:通过已有的可用的代码修改到新环境下运行. 代码编写: 初始化网卡 1.选中网卡 nLAN_CS BWSCON(0x48000000) DW4:01 16bit BANKCON4(0x48000014) (0x0<<13)|(0x0<<11)|(0x7<<8)|(0x1<<6)|(0x0<<4)|(0x0<<2)|(0x0<<0) 2.初始化中断 中断源EIN7 GPFCON GPF7:10 设置触发方式(高电平触…
Nand Flash支持按页写和随机写两种方式,在下面实现的是按页写.闪存在写数据时,只能写入1,不能写入0,所以写函数必须和擦除函数一起使用,并且擦除函数是按块擦除. /******************************************************************** *名称:write_page_flash *参数: * page 页号 * buf 写缓存,2048字节 *返回: * state 成功:0 * 失败:1 *功能:按页写闪存 *******…
裸机中断: 1.中断统一入口. 2.注册中断处理程序. 3.根据中断源编号,调用中断处理程序. Linux中断 1.在entry-armv.S中的_irq_svc是中断统一入口. 2.获取产生中断源的编号(中断号). 3.根据中断号,找到irq_desc结构 4.从irq_desc描述结构中取出事先注册好的函数来运行. 驱动程序需要做什么 1.实现中断处理程序 2.注册中断处理程序 Linux中断处理程序设计 1.中断注册 request_irp函数用于注册中断. int request_irq…
LCD初始化 1.引脚初始化 2.时序初始化 VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效的行数 VFBD(vertical front porch):表示在一帧图像结束后,垂直同步信号以前的无效的行数 VSPW(vertical sync pulse width):表示垂直同步脉冲的宽度,用行数计算 HBPD(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数 HFPD(horizon…
扮演角色 相当于嵌入式设备的硬盘 NandFlash分类 1.SCL(single level cell):单层式存储 2.MLC(multi level cell):多层式存储 3.SCL在存储格上只存储一位数据,而MLC则存放两位数据 MLC与SLC对比 1.价格 由于MLC采用了更高密度的存储方式,因此同容量的MLC价格上远低于SLC 2.访问速度 SLC的访问速度一般要比MLC快3倍以上 3.使用寿命 SLC能进行10万次的擦写,MLC能进行1万次擦写 4.功耗 MLC功耗比SLC高15…