[国嵌攻略][158][SPI裸机驱动设计]】的更多相关文章

SPI控制器工作流程 SPI控制器提供2个SPI接口.每个SPI接口有两个通道,分别为TX通道和RX通道.CPU要写数据到FIFO中,先写数据到SPI_TX_DATA寄存器中,这样此寄存器中的内容就会自动移动到发送FIFO中:同理,如果CPU要从接收FIFO中读取数据,就访问寄存器SPI_RX_DATA,紧接着接收FIFO的数据就会自动移动到SPI_RX_DATA寄存器中. OK6410 SPI裸机程序分析 //SPI初始化 u8 SPI_Init(){ //SPI复位 CH_CFG0 |= B…
eeprom简介 eeprom电可擦除可编程只读存储器,是一种类似于flash的固态存储器,但是与flash相比又存在一些区别: 1.eeprom可以按位擦写,而flash只能大片擦除. 2.eeprom一般容量都不大,一般都在64kb以下. I2C初始化 在ARM内部有I2C控制器,可以对I2C器件进行访问.所以I2C初始化也就是对I2C控制器初始化. 1.如果需要,写入处理器的I2C从设备地址. 2.设置IICCON寄存器 2.1.允许中断 2.2.设置SCL周期 3.设置IICSTAT允许…
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.当写入…
SPI 子系统架构 1.SPI core核心:用于连接SPI客户驱动和SPI主控制器驱动,并且提供了对应的注册和注销的接口. 2.SPI controller driver主控制器驱动:用来驱动SPI控制器. 3.SPI protocol drvier客户驱动:用来驱动SPI设备 SPI控制器驱动分析 1.SPI控制器驱动对应的内核文件在/drivers/spi/spi_s3c24xx.c中.找到模块初始化函数s3c24xx_spi_init,从中可以看出控制器驱动是平台驱动. 2.找到初始化函…
SPI总线架构 SPI(serial peripheral interface)串行外设接口,是一种高速,全双工,同步的通信总线.采用主从模式(master slave)架构,支持多个slave,一般仅支持一个master. SPI信号线 SPI接口共有4根信号线,分别是:设备选择线(SS).时钟线(SCK).串行输出数据线(MOSI),串行输入数据线(MISO). 数据传输过程 主节点通过MOSI线输出数据,从节点在SIMO处从主节点读取数据.同时也在通过SOMI输出MSB(最高位),主节点会…
网卡初始化 1.分配描述结构,alloc_etherdev 2.获取平台资源,platform_get_resource 2.1.在s3c_dm9k_resource中有相关的资源 2.2.add地址由CS4和ADD2决定,是20000000 2.3.dat地址由CS4和ADD2决定,是20000004 2.4.中断资源是EINT7 3.虚拟地址映射,ioremap 4.读取芯片类型 5.设置操作函数集 6.读取MAC地址 7.注册网卡驱动,register_netdev 8.启动发送队列,ne…
DM9000数据发送 DM9000数据发送函数是在/drivers/net/dm9000.c中的dm9000_start_xmit函数 static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev){ //发送数据长度 board_info_t *db = netdev_priv(dev); iow(db, DM9000_TXPLL, (skb->len)>>); iow(db, DM9000_TXPLH…
LCD裸机驱动回顾 1.LCD初始化 1.1.控制器初始化 1.2.端口初始化 1.3.指明了帧缓冲 2.LCD图形显示 2.1.将图形数据写入帧缓冲 Linux帧缓冲体验 把图片转换成开发板屏对应的宽高像素和颜色深度,然后把图片放到开发板文件系统中.通过cat image.bin > /dev/fb0命令把图片写入LCD帧缓冲,这样就可以在LCD屏上看到对应的图片.这个实验说明Linux下面一样使用了帧缓冲,并且帧缓冲变成了一个设备文件. Linux帧缓冲架构 应用程序通过把图像数据写入/de…
查看USB设备的生产商ID和设备ID 示例: lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 生产商ID是1d6b,设备ID是0002 创建USB总线型字符设备 usb_register_dev   //效果同cdev创建字符设备效果相同 创建的主设备号都是180,次设备号可以设置为100 头文件 <linux/usb.h> usb.c /*********************************…
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(接口).一个接口…