打印

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

[复制链接]
3356|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinyancode|  楼主 | 2007-9-25 22:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问如何对dsp的地址连续的IO端口进行连续操作?



我想多地址连续的一串IO口进行操作,有没有一种方便的方法可以通过c语言的循环进行操作? 难道说只能是用这种
ioport unsigned int port8000
方式进行定义,然后操作,假如我又300个这样的端口(地址连续),难道还需要定义300个这样的端口吗?能否有一种方法可以对这样的端口进行连续操作,请指教!

相关帖子

沙发
wowow| | 2007-9-26 00:58 | 只看该作者

写一段汇编子程序吧

写一段汇编子程序,然后在C中调用吧。
你要访问的是什么设备?最好还是映射到存贮空间里来。

使用特权

评论回复
板凳
xinyancode|  楼主 | 2007-9-26 10:23 | 只看该作者

reply

我用的DSP是LF2407A,难道说就没有ioport的指针用法吗?我试了几种写法都不行?


 
ioport unsigned int *p;

编译都通不过去?


难道说必须用汇编写吗?2407中就不支持ioport的指针用法吗?


多谢指教!

使用特权

评论回复
地板
david4383| | 2007-9-26 10:48 | 只看该作者

这个可能不行,

我用的是5402,一开始也是映射到IO区,可是不能够连续寻址,最后没有办法只能是映射到DATA区了.不会用汇编,不知道汇编能不能间接的寻址.

使用特权

评论回复
5
xinyancode|  楼主 | 2007-9-26 11:37 | 只看该作者

rewply

但是在论坛上有很多地方都有ioport的指针用法的讨论,应该有一种写法可以支持对io地址的连续操作!


继续关注,请多家指点!非常感谢!

使用特权

评论回复
6
xinyancode|  楼主 | 2007-9-27 14:43 | 只看该作者

reply

大家有没有实现过对io空间的地址连续操作的呀?用循环,端口用指针,

如 *(unsigned int ioport *)io_pointer

这种形式的写法可以吗?


 

使用特权

评论回复
7
wowow| | 2007-10-1 15:03 | 只看该作者

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

C语言本身就没有IO指针,只有数据指针和程序指针。要想支持这种语法,除非改写C编译器了。还是考虑其它办法吧解决实际的问题吧。如果你有大量的IO要操作,可行的办法:
1.自己写汇编子程序,对任意IO操作,或对连续IO地址操作
2.更改硬件映射到数据空间
3.更改硬件使IO地址能自动增加。

第一种方案程序也不复杂,后两种方案如果你板子上用了CPLD/FPGA做的地址译码改起来也很容易

使用特权

评论回复
8
xinyancode|  楼主 | 2007-10-1 21:33 | 只看该作者

reply

这个论坛真是高人多多,非常感谢!感谢对这个问题提出了建议、方法的朋友!


看来这个连续寻址IO空间的问题最方便的方法还是用汇编语言写一个子程序!然后调用这个子程序连续寻址访问IO空间。


不过对2407的汇编不熟呀,看来得重新攻克汇编语言这一关呀!


仍在继续关注这个问题的更好的解决方案。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

147

帖子

0

粉丝