+ -
当前位置:首页 → 问答吧 → 求教,2410 arm9开发板 io 操作

求教,2410 arm9开发板 io 操作

时间:2008-05-08

来源:互联网

#include   <stdio.h>   
  #include   <stdlib.h>   
  #include   <unistd.h>   
   #include   <sys/io.h>
   
  main()   
  {   
  unsigned   int   d;   
    iopl(3);

  printf("begin!\n");   

  d=inb(0x0032);   
  printf("d=%x\n",d);   

  printf("Succeed!\n");   
   
  }   

我刚学习,摸索中,这段程序是想试试 io的操作,因为需要用开发板采集开关量。

编译 通过, 在开发板上运行 不对,出现  ... unhandled page fault at pc=0x400ge81c, lr=0x00008448 (bad address =0x00)...
很长

这代码有什么问题,请教啊, 驱动还不是很懂,比如iopl 和inb 这2个函数也第一次用,谢谢      

作者: tao831108   发布时间: 2008-05-08

我都试了在 电脑 上虚拟机下linux可以用,但在 arm开发板上就出错,是不是 iopl和ioperm这2个函数不能在arm上用啊      

作者: tao831108   发布时间: 2008-05-09

不能用的话,用什么方法可以读 io, 比如用/dev/port,如何使用能详细讲下吗,谢谢了      

作者: tao831108   发布时间: 2008-05-09

我刚做过IO操作
首先要在arm板中加入节点
然后加入驱动文件
最后才是使用应用文件进行读写      

作者: arm0817   发布时间: 2008-11-09

在S3c2410的开发板基于arm9的开关量驱动开发简单步骤:

1. 根据你的datasheet看懂开关量的shuxing
2. 找一个标准的字符驱动 改写 留下IOCTL接口, 实现不同开关量的ioctl
3. 创建开关量的设备节点,供你的APP调用也就是 open,然后在用户空间传递不同的参数给你的内核驱动,
4. 内核驱动的ioctrl会根据不同的参数返回或是打印不同的信息。这个调通后就可以更进一步开发你复杂的开关量驱动

说白了,你要创建一个设备节点  来衔接你的用户空间和内核空间,然后就是实现你的开关量驱动。由于时间有限不能给你具体的code参考。      

作者: topeqin   发布时间: 2008-11-10