摘要:
AT24C08的驱动在Linux内核中已经提供,在/drivers/misc/eeprom/at24.c文件中。在对应的probe函数中有一个创建/sys/.../eeprom文件的函数,应用程序通过调用/sys/.../eeprom设备文件来对设备进行读写操作。 移植AT24C08驱动 1.修改内 阅读全文
摘要:
用户态驱动模型 用户态驱动模型首先是一个应用程序,其次是在这个用户程序中通过内核调用来驱动设备。 IIC通用驱动代码 IIC通用驱动程序的代码在/drivers/i2c/i2c-dev.c中。一次读操作或者一次写操作就是一条消息。 EEPROM用户态驱动 IIC通用设备对应/dev/i2c-0设备文 阅读全文
摘要:
IIC子系统架构 device driver层: 1.device driver,由用户开发。 2.i2c-dev由内核实现,但是需要配合应用模式驱动才能使用。 i2c core层: 1.总线驱动,也叫控制器驱动。实现对i2c控制器的操作方法。 2.i2c核心。关联设备驱动和总线驱动,提供设备的注册 阅读全文
摘要:
eeprom简介 eeprom电可擦除可编程只读存储器,是一种类似于flash的固态存储器,但是与flash相比又存在一些区别: 1.eeprom可以按位擦写,而flash只能大片擦除。 2.eeprom一般容量都不大,一般都在64kb以下。 I2C初始化 在ARM内部有I2C控制器,可以对I2C器 阅读全文
摘要:
IIC电气特性 I2C(inter intergrated circuit)总线是由philps公司开发的两线式串行总线,用于连接微控制器及其外围设备。 I2C总线只有两根双向信号线: SDA:serial date line 数据线 SCL:serial clock line 时钟线 总线寻址 I 阅读全文
摘要:
初始化 打开/drivers/mtd/nand/s3c2410.c找到nand flash驱动程序代码,找到模块初始化函数s3c_nand_init,找到platform_driver中的probe函数。 1.使能时钟 2.进行物理地址到虚拟地址转换 3.硬件纠错初始化 4.搜索nand flash 阅读全文
摘要:
bootloader环境搭建 1.解压bootloader tar zxvf uboot_mini2440.tar.gz 2.清除bootloader cd uboot_mini2440 make distclean 3.配置bootloader make mini2440_config 4.设置启 阅读全文
摘要:
嵌入式系统自启动 MTD技术通过把Nand FLash划分成bootloader分区,Linux kernel分区和file system分区来达到自启动的效果。 配置和编译内核 1.配置Linux内核支持MTD分区 make meunconfig ARCH=arm device drivers 阅读全文
摘要:
MTD设备概述 Flash在嵌入式系统中是必不可少的,它是bootloader、Linux内核和文件系统的最佳载体。在Linux内核中引入了MTD子系统为NOR Flash和Nand FLash设备提供了统一的接口,从而使得Flash驱动的设计大为简化。 MTD使用体验 把系统烧写到Nand F 阅读全文
摘要:
头文件 #include <linux/blkdev.h> #include <linux/bio.h> blkdev.c Makefile 阅读全文