linux GPMC驱动调试笔记

来源:互联网 发布:统计查询sql语句 编辑:程序博客网 时间:2024/05/03 03:56

考试周一直复习没有更博,突然发现这个月已然过去了一大半。学习这个事情还是要有连续性才能找到节奏,包括之前的JSP&Servlet的学习也耽搁了不少,远不如上个月来的充实,也是时候写一篇博客记录一下最近做项目的一些进展。


废话不多说,先来简单介绍一下GPMC。TI特有的总线但是中文资料较少,有过嵌入式驱动开发经验的人最初一定会接触GPIO,而GPMC与GPIO类似,说白了就是一种总线扩展,通过配置其寄存器来进行一系列的操作。

配置GPMC寄存器是驱动程序最先考虑的部分。首先通过查看手册找到GPMC相关寄存器的物理地址:

 

根据手册上的定义在驱动程序中进行预定义如下所示:



依然是通过查看手册得知,GPMC控制片选CS0~CS6的寄存器由CONFIG7_i配置(项目所需),由此查看CONFIG7_i32位寄存器内容定义,如下所示:



由此需要从CONFIG7_i中读出保留字进行分析(根据相关资料显示一般GPMC有八个片寻CS0-CS7,其中CS0-1是用来做FLASH的,其余的片选可根据需求来选



读出来的数据对高6位左移24位作为基地址,后四位代表size(具体编码需要查看手册),这个范围就是就是片选空间了,这个范围必然落在0x00000000~0x3FFFFFFF这1G空间(详见手册)。

对读出来的值分析再通过查原理图发现:本例中CS0做FLASH,CS6做网卡驱动,而CS1-CS5是预留的后续工作就是根据自己的需求往里面写东西了。

未完待续!


参考资料:http://blog.csdn.net/qq405180763/article/details/7616941 

0 0