请问如何对dsp的地址连续的IO端口进行连续操作?

[复制链接]
4171|7
 楼主| xinyancode 发表于 2007-9-25 22:18 | 显示全部楼层 |阅读模式
请问如何对dsp的地址连续的IO端口进行连续操作?<br /><br /><br /><br />我想多地址连续的一串IO口进行操作,有没有一种方便的方法可以通过c语言的循环进行操作?&nbsp;难道说只能是用这种<br />ioport&nbsp;unsigned&nbsp;int&nbsp;port8000<br />方式进行定义,然后操作,假如我又300个这样的端口(地址连续),难道还需要定义300个这样的端口吗?能否有一种方法可以对这样的端口进行连续操作,请指教!
wowow 发表于 2007-9-26 00:58 | 显示全部楼层

写一段汇编子程序吧

写一段汇编子程序,然后在C中调用吧。<br />你要访问的是什么设备?最好还是映射到存贮空间里来。
 楼主| xinyancode 发表于 2007-9-26 10:23 | 显示全部楼层

reply

我用的DSP是LF2407A,难道说就没有ioport的指针用法吗?我试了几种写法都不行?<br /><br />象<br />&nbsp;<br />ioport&nbsp;unsigned&nbsp;int&nbsp;*p;<br /><br />编译都通不过去?<br /><br /><br />难道说必须用汇编写吗?2407中就不支持ioport的指针用法吗?<br /><br /><br />多谢指教!
david4383 发表于 2007-9-26 10:48 | 显示全部楼层

这个可能不行,

我用的是5402,一开始也是映射到IO区,可是不能够连续寻址,最后没有办法只能是映射到DATA区了.不会用汇编,不知道汇编能不能间接的寻址.
 楼主| xinyancode 发表于 2007-9-26 11:37 | 显示全部楼层

rewply

但是在论坛上有很多地方都有ioport的指针用法的讨论,应该有一种写法可以支持对io地址的连续操作!<br /><br /><br />继续关注,请多家指点!非常感谢!
 楼主| xinyancode 发表于 2007-9-27 14:43 | 显示全部楼层

reply

大家有没有实现过对io空间的地址连续操作的呀?用循环,端口用指针,<br /><br />如&nbsp;*(unsigned&nbsp;int&nbsp;ioport&nbsp;*)io_pointer<br /><br />这种形式的写法可以吗?<br /><br /><br />&nbsp;
wowow 发表于 2007-10-1 15:03 | 显示全部楼层

这恐怕不是C语言能解决的问题了

C语言本身就没有IO指针,只有数据指针和程序指针。要想支持这种语法,除非改写C编译器了。还是考虑其它办法吧解决实际的问题吧。如果你有大量的IO要操作,可行的办法:<br />1.自己写汇编子程序,对任意IO操作,或对连续IO地址操作<br />2.更改硬件映射到数据空间<br />3.更改硬件使IO地址能自动增加。<br /><br />第一种方案程序也不复杂,后两种方案如果你板子上用了CPLD/FPGA做的地址译码改起来也很容易
 楼主| xinyancode 发表于 2007-10-1 21:33 | 显示全部楼层

reply

这个论坛真是高人多多,非常感谢!感谢对这个问题提出了建议、方法的朋友!<br /><br /><br />看来这个连续寻址IO空间的问题最方便的方法还是用汇编语言写一个子程序!然后调用这个子程序连续寻址访问IO空间。<br /><br /><br />不过对2407的汇编不熟呀,看来得重新攻克汇编语言这一关呀!<br /><br /><br />仍在继续关注这个问题的更好的解决方案。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

147

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部