学习ARM开发(13)
2006-02-05 12:00
253 查看
由于UBOOT大部份源程序已经修改好,目前就是修改网络部份了。由于网络设计,是采用了16位数据线的方式,还有RTL8019AS采用了9346的存储器,这样的设计都带来了很大的麻烦。因为是全新的东西,没有任何经验,也没有相应的仪器。所以开发这个RTL8019AS的网络驱动,就成为了一个很大的问题。
无论有多难,都要去面对的。要写RTL8019AS的驱动,首先的问题,就是找到S3C44B0访问RTL8019AS的寄存器,如果没有寄存器,就无法对它编程,也没有办法对它控制。那么它的寄存器地址是在那里呢?起先,我是从原理图上找到它的选片接线,是接到CPU的nGCS3上,那么它的地址肯定是从0X0600_0000开始了。接着看到我的RTL8019AS是16位的接线方式,那么它与CPU的连接方式是要从地址线1开始连接,因为S3C44B0对于8位,16位,32位的地址线输出是要求的。这样就可以算出RTL8019AS的地址是0x0600_0000再加上寄存器址左移一位,因为地址线0是不用的,只有1到5在使用。比如复位寄存器地址就是0x0600_0000+(0x1F<<1),这样就可以找到所有寄存器地址了。
地址找到了,那么我就要对它进访问。由于嵌入式的CPU是内存地址与寄存器地址是统一编址的,因此直接访问就行了。刚开始,我直接写寄存器,和读取寄器,发现数据全部都是0XFF,这显然是不对的。就当我修改为其它值,再读出来,都是0XFF,说明寄存器不响应。这时,我不知道是什么原因引起的。接着为了寻找这个问题,就找了一堆资料,结果都找不到。然后又查看硬件,又查找软件。都没有发现有什么问题,实在没有办法了。看到别人的板都没有9346这个存储器,是不是我的存储器有问题?我也搞不懂它。后来就把它拔下来,接着再试还是不行。读取寄存器,还是0XFF值。接着再查看RTL8019AS的DATASHEET,发现65脚跳线也是一个问题。我查看一下我的接线是接了一个电阻,然后再接到VDD上。我试着把这个电阻断开,让它是低电平。
后来一试,果然读写寄存器的值变了,不是0XFF了。说明这些寄存器有效了。
无论有多难,都要去面对的。要写RTL8019AS的驱动,首先的问题,就是找到S3C44B0访问RTL8019AS的寄存器,如果没有寄存器,就无法对它编程,也没有办法对它控制。那么它的寄存器地址是在那里呢?起先,我是从原理图上找到它的选片接线,是接到CPU的nGCS3上,那么它的地址肯定是从0X0600_0000开始了。接着看到我的RTL8019AS是16位的接线方式,那么它与CPU的连接方式是要从地址线1开始连接,因为S3C44B0对于8位,16位,32位的地址线输出是要求的。这样就可以算出RTL8019AS的地址是0x0600_0000再加上寄存器址左移一位,因为地址线0是不用的,只有1到5在使用。比如复位寄存器地址就是0x0600_0000+(0x1F<<1),这样就可以找到所有寄存器地址了。
地址找到了,那么我就要对它进访问。由于嵌入式的CPU是内存地址与寄存器地址是统一编址的,因此直接访问就行了。刚开始,我直接写寄存器,和读取寄器,发现数据全部都是0XFF,这显然是不对的。就当我修改为其它值,再读出来,都是0XFF,说明寄存器不响应。这时,我不知道是什么原因引起的。接着为了寻找这个问题,就找了一堆资料,结果都找不到。然后又查看硬件,又查找软件。都没有发现有什么问题,实在没有办法了。看到别人的板都没有9346这个存储器,是不是我的存储器有问题?我也搞不懂它。后来就把它拔下来,接着再试还是不行。读取寄存器,还是0XFF值。接着再查看RTL8019AS的DATASHEET,发现65脚跳线也是一个问题。我查看一下我的接线是接了一个电阻,然后再接到VDD上。我试着把这个电阻断开,让它是低电平。
后来一试,果然读写寄存器的值变了,不是0XFF了。说明这些寄存器有效了。
相关文章推荐
- 学习ARM开发(13)
- 学习ARM开发(13)
- arm 汇编 LDMFD 语句有关 分类: 嵌入式开发学习 2011-04-17 21:55 2444人阅读 评论(0) 收藏
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】在AT91RM9200上通过nfs调试linux程序
- 学习ARM开发(15)
- 学习ARM开发(16)
- 学习ARM开发(19)
- 学习ARM开发(11)
- 学习ARM开发(17)
- 学习ARM开发20-21
- [嵌入式学习资料]ARM嵌入式开发学习详解4412开发板使用手册-600余页资料
- 学习ARM开发(1)
- 学习ARM开发(3)
- 学习ARM开发(9)
- Python自动化开发学习13-堡垒机开发 推荐
- 学习ARM开发(11)
- ARM的开发,学习步骤
- TQ2440开发板学习纪实(0.1)--- GNU Freestanding(Naked)C ARM交叉开发环境创建与测试
- springmvc学习笔记(13)-springmvc注解开发之集合类型参数绑定
- springmvc学习笔记(13)-springmvc注解开发之集合类型参数绑定