rangzh
驱动小牛
驱动小牛
  • 注册日期2005-04-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望150点
  • 贡献值0点
  • 好评度115点
  • 原创分0分
  • 专家分0分
阅读:1260回复:0

uClinux的SL811驱动问题求救

楼主#
更多 发布于:2005-04-24 11:52
编译uClinux时选了USB和SL811,驱动程序运行时发现无法从SL811的256字节空间中读取数据,即hc_sl811.c中的regTest函数总是失败。而且发现所读取的256字节数据全部是一样的,也就无法设置SL811的寄存器。

以下是详细的情况:
1. 硬件电路:硬件电路板是自己做的,是另外一个人做的,用的MPU是S3C4510B。SL811被放在了External I/O Bank1,SL811HST的nCS、A0和INTRQ连接如下:
nCS <--> nECS1
A0 <--> ADDR10
INTRQ <--> GPIO10

2. uClinux及驱动修改:我根据硬件电路主要改了以下几个地方:
asm/arch/hardware.h中DSX1改为1;
驱动中base_addr改为0x3604000(Ext I/O Bank1),data_reg_addr改为0x3604400,irq改为2,并修改了init_irq;

3. 问题现象:驱动运行到regTest时,发现从SL811数据端口读数据时并没有读到指定偏移处的数据,而是直接读取了0x3604400处的那一个字节。即若运行以下代码:
*(volatile unsigned char *)(base_addr) = offset;
data = *(volatile unsigned char *)(data_reg_addr);
则无论offset为何值,data得到的是data_reg_addr处真正的那个字节,而每有从SL811空间中offset处读取

这个问题快要把我折腾疯了。不知道是硬件问题呢还是驱动的问题。请大家救救我
游客

返回顶部