当前位置: 技术问答>linux和unix
linux 下能直接使用inp(), outp()这些端口操作函数吗?
来源: 互联网 发布时间:2016-07-27
本文导语: 原来的程序是borland C++在dos平台下开发的, 硬件就是一块研华3355工控机 这个软件要操作很多外围设备,所以程序代码中出现了很多inp(), outp()这些函数的调用(dos下能方便的直接读写IO口,这也是当年采用dos平台的原因吧...
原来的程序是borland C++在dos平台下开发的, 硬件就是一块研华3355工控机
这个软件要操作很多外围设备,所以程序代码中出现了很多inp(), outp()这些函数的调用(dos下能方便的直接读写IO口,这也是当年采用dos平台的原因吧)但是dos的内存管理实在是可趁, 就算加载HIMEM.SYS也显得捉襟见肘
请问
1) linux 下能直接使用inp(), outp()这些端口操作函数吗?
2) 我前一段时间看了些保护模式的资料, 是不是所有保护模式下的OS都不能直接通过软件操作IO设备?
3) 如果之前的老程序从dos平台移动到linux平台,需要修改哪些? 大体指点一二即可, 从前没经历过这种夸平台的开发, 公司主要做仪器, 做软件的很少, 也都没这方面的经验
这个软件要操作很多外围设备,所以程序代码中出现了很多inp(), outp()这些函数的调用(dos下能方便的直接读写IO口,这也是当年采用dos平台的原因吧)但是dos的内存管理实在是可趁, 就算加载HIMEM.SYS也显得捉襟见肘
请问
1) linux 下能直接使用inp(), outp()这些端口操作函数吗?
2) 我前一段时间看了些保护模式的资料, 是不是所有保护模式下的OS都不能直接通过软件操作IO设备?
3) 如果之前的老程序从dos平台移动到linux平台,需要修改哪些? 大体指点一二即可, 从前没经历过这种夸平台的开发, 公司主要做仪器, 做软件的很少, 也都没这方面的经验
|
1) linux 下能直接使用inp(), outp()这些端口操作函数吗?
----------
可以,有两种方法操作IO端口
1 root权限,并且在访问前.要用ioperm 或iopl 系统调用获得对I/O空间的操作权限
linux提供的IO端口操作函数更加丰富和强大
2 自己编写驱动程序封装好对IO端口的操作,提供接口给用户程序
老程序从dos平台移动到linux平台,需要修改哪些
-------------
不好弄啊
----------
可以,有两种方法操作IO端口
1 root权限,并且在访问前.要用ioperm 或iopl 系统调用获得对I/O空间的操作权限
linux提供的IO端口操作函数更加丰富和强大
2 自己编写驱动程序封装好对IO端口的操作,提供接口给用户程序
老程序从dos平台移动到linux平台,需要修改哪些
-------------
不好弄啊
|
同是天涯沦落人,我最近都遇到此问题,期待中...