蜗牛

一起交流,共同进步
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

摘要: 最近在研究PXA300 SD卡的驱动程序,搞清楚了SD卡的初始化流程,记录如下1.在pxamci_probe()函数调用mmc_alloc_host()分配mmc_host结构,初始化了mmc_rescan延时任务2. 接着进行了mmc_host结构的一系列的初始化,MMC硬件控制器寄存器相关的初始化,中断的注册,DMA的初始化等3. 在pxamci_probe()最后调用了mmc_add_host()进行了mmc_host设备驱动模型相关的设置,执行mmc_host_start() 启动了mmc_rescan延时任务。4. 紧接着执行mmc_rescan()函数,发送相关的命令,依次扫描接到 阅读全文

posted @ 2011-01-06 12:38 路漫漫... 阅读(1713) 评论(0) 推荐(1) 编辑

摘要: 下面开始分析linux/drivers/i2c/busses/i2c-s3c2410.c,在设备与驱动匹配成功后,会执行s3c24xx_i2c_probe()函数,其源码如下:/* s3c24xx_i2c_probe called by the bus driver when a suitable device is found*/static int s3c24xx_i2c_probe(stru... 阅读全文

posted @ 2010-09-06 14:07 路漫漫... 阅读(5676) 评论(2) 推荐(4) 编辑

摘要: 内核版本:2.6.31.6首先在S3C2440平台的初始化函数中,主要是将开发平台的设备注册进了系统,也就是将device注册到了platform虚拟的总线上,并进行了一些初始化的工作,这里我们只关注I2C的部分。static void __init smdk2440_machine_init(void){ s3c24xx_fb_set_platdata(&smdk2440_fb_info... 阅读全文

posted @ 2010-09-05 15:50 路漫漫... 阅读(6695) 评论(0) 推荐(2) 编辑

摘要: 本驱动程序运行于TQ2440开发板,内核版本2.6.31.6[代码]驱动测试程序[代码]进入根文件系统dev目录,发现已经成功动分配设备,并自动创建文件节点[nick@TQ2440 /dev]# ls -l tq*crw-rw---- 1 0 0 232, 0 Jan 1 00:00 tq2440-adccrw-rw---- 1 0 0 254, 0 Jan 1 00:00 tq2440-butt... 阅读全文

posted @ 2010-03-26 14:21 路漫漫... 阅读(4446) 评论(1) 推荐(2) 编辑

摘要: CRC16效验代码,可用于对SD卡的写操作中。[代码] 阅读全文

posted @ 2009-06-17 14:19 路漫漫... 阅读(7267) 评论(4) 推荐(3) 编辑

摘要: 这几天一直在看SOPC Builder的用户手册,从中看到了很多Avalon接口的高级特性。之前一直对Avalon Memory-Mapped Bridges的作用以及用法不是很了解,今天猛然发现这确实是个好东西,可以提高系统性能的同时降低FPGA资源的利用率。那这个bridge究竟实现了这么样的一个功能呢?为什么我们要使用这个bridge,它能给我们带来哪些好处呢?如果没有添加bridge,就像... 阅读全文

posted @ 2009-05-24 14:32 路漫漫... 阅读(4213) 评论(1) 推荐(2) 编辑

摘要: 完成自定义外设的硬件设计后,就需要编写软件来测试外设的设计是否正确了。在这之前首先要弄清楚Nios II中的地址对齐,对Avalon slave来说,有两种地址对齐方式:动态地址对齐和静态地址对齐。动态地址对齐:动态地址对齐可以自动适应和Avalon master端口宽度不同的器件,而同时保持地址增长的方式是以字节为单位增长的方式。匹配不同端口宽度的master和slave时使用动态地址对齐方式可... 阅读全文

posted @ 2009-05-09 22:19 路漫漫... 阅读(3590) 评论(14) 推荐(0) 编辑

摘要: 开发环境:Quartus II 8.1 + Nios II IDE 8.1外设功能:4*4键盘自定义外设是SOPC系统灵活性的重要体现,是SOPC系统中极其重要的一种设计方法。在大量的数据需要处理时,利用自定义外设由具体的硬件来实现,可以极大程度的提高系统运行的速度,同时便于系统的模块化与集成,是SOPC系统设计的重中之重!!!在设计自定义外设之前,一定要知道外围电路的工作原理,也就是自定义的外设... 阅读全文

posted @ 2009-05-09 19:22 路漫漫... 阅读(4385) 评论(2) 推荐(1) 编辑

摘要: 硬件电路图如下:[代码] 阅读全文

posted @ 2009-05-07 18:08 路漫漫... 阅读(20036) 评论(19) 推荐(0) 编辑

摘要: 这几天一直在调试外部存储器,也积累了一些经验和教训,养成良好的习惯,将这些记录下来。我用的FLASH是AM29LV160DB-90EC,主要管教功能:A:地址线DQ:数据线DQ15/A-1:如果是字(16位)读写模式,该位作为数据最高位,如果是字节(8位)读写模式,该位作为地址最低位,在我的电路中采用字节读写模式,所以作为地址最低位。CE:片选信号OE:输出使能信号RESET:复位信号BYTE:选... 阅读全文

posted @ 2009-05-07 15:48 路漫漫... 阅读(1546) 评论(1) 推荐(1) 编辑

摘要: 最近在FPGA的平台上搭建Nios II系统时遇到很多问题,FPGA为EP1C6Q240C8,好在问题最后都解决了。 1.使用外部SDRAM 板子上的SDRAM的型号为HY57V641620HG-TH,64Mbit,时钟输入一定要加上时钟相位偏移,否则效验出错,我加上62deg或100deg都可以正常运行。最好使用PLL的E0作为SDRAM的时钟输入。 2.nios经济型能正常运行,但nios 标... 阅读全文

posted @ 2009-05-07 15:44 路漫漫... 阅读(2493) 评论(5) 推荐(1) 编辑

摘要: [代码]注意,在添加按键PIO时一定要使能中断!研究过一段时间的Nios II,感觉还是很有收获,深刻体会到了SOPC技术的灵活性,但目前速度方面是其最大的缺点,相信Nios II会慢慢流行起来.... 阅读全文

posted @ 2009-05-07 15:32 路漫漫... 阅读(2760) 评论(0) 推荐(1) 编辑

2010年1月9日

摘要: ldr r0, _startadr r0, _startldr r0, =_startnopmov pc, lr _start:nop编译的时候设置 RO 为 0x0c008000↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓͛... 阅读全文

posted @ 2010-01-09 16:05 路漫漫... 阅读(435) 评论(0) 推荐(1) 编辑

2010年1月4日

摘要: 这是在Keil MDK环境下的一个外部中断程序,习惯了用Keil,没有用过ADS,所以就用H-Jtag和MDK组合一起调试,感觉真的很方便,这段程序仅仅是一个大框架IRQ_Handler PROC EXPORT IRQ_Handler [WEAK]SUB lr,lr,#4 ;保存返回地址 STMDB sp!,{R0-R12,lr} ;保存现场LDR R0,=INTOFFSET ;判断中断源LDR ... 阅读全文

posted @ 2010-01-04 23:01 路漫漫... 阅读(2836) 评论(1) 推荐(3) 编辑

2009年12月1日

摘要: 最近有时间开始学习ARM,平台是TQ2440,下载了2.6.31的内核源码,并开始构建yaffs2文件系统,手册上写的还是很详细,可是我在往里面加Zmodem文件传输协议的命时,却出现了-/bin/sh: rz: not found的错误,自己编译的hello程序也出现同样的错误,不是权限不够,后来把系统自带的根文件系统下的库文件全复制过来,这样就可以执行了。 看来是缺少库文件的原因,可是原来的库... 阅读全文

posted @ 2009-12-01 22:58 路漫漫... 阅读(5148) 评论(0) 推荐(1) 编辑

2009年11月2日

摘要: 如何移植Uboot到自己的板子?这段是Uboot源码readme中给出的大体步骤If the system board that you have is not listed, then you will needto port U-Boot to your hardware platform. To do this, follow thesesteps:1. Add a new configur... 阅读全文

posted @ 2009-11-02 14:53 路漫漫... 阅读(971) 评论(0) 推荐(0) 编辑