Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1130956
  • 博文数量: 91
  • 博客积分: 10053
  • 博客等级: 上将
  • 技术积分: 1335
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-01 12:46
文章分类
文章存档

2011年(4)

2010年(22)

2009年(22)

2008年(43)

给主人留下些什么吧!~~

laigq2010-02-04 20:13

学习。。。 呵呵呵呵

回复  |  举报

config20102010-01-15 01:27

若看到,一定帮我,谢谢! FPGA有2个PIN与2440中断相连。1s都可以产生1333次中断(750us)。 中断服务子程序:产生中断后将fpga寄存器的数据读出放入内存(链表的一个元素),并由2440写FPGA寄存器清除中断,通知驱动中的读函数数据已处理完毕(这一块是用等待队列,来唤醒驱动中的读函数)。从示波器上看,完成这些用了50us. 我想让每次中断产生的数据在下次中断来前执行完毕,也就是说还有700us的时间处理。但是现在两个中断同时出现不能完成,一个中断可以完成。若将中断周期换为1ms,刚两个可以同时完成。(完成思路:读取链到的一个元素(128位)到用户层,在链表中删除这个元素,再由socket送入PC)。任意时刻链表的长度为1或者0。 出现问题的现象:链表的长度瞬时变的很长,上万。我猜就是下次中断来之前数据没读走,就造成了恶性循环,再也读不完。或者两个中断突然就剩下一个,还有个没有了(1,我估计是执行的过程中,没有清楚中断就退出,恢复不了了,可能是没有保护好,不知???) 2,从时间是看,剩下的700us怎么可能处理不完这件事情呢? 3,同时处理两个难道cpu到极限的吗? 4,cpu中断返回后,是不是没有立即去等到队列等待处去执行,过了会才过去?有没有对策。 5,我估计cpu每次从中断返回到驱动中的读函数数据这个切换过程可能耗时很多(猜),所以我尝试的方法:10次中断的数据存在一起后,再唤醒驱动中的读函数的等待队列去读。结果是一样的,还是来不及?很想不通。 6, 有没有延时中断子函数的方法?local_irq_save()?

回复  |  举报

cxg8882008-05-16 11:27

haihao ya

回复  |  举报

sanfenxiao2008-05-07 00:21

北京瑞雪技术团队有个项目请兼职,项目要求如下: 瑞雪团队又有新项目了!加入这个发展的日新月异的技术团队吧!机会多多!! 项目:solarisx86下访问pci网卡的状态寄存器,以实现网卡通信和双冗余备份功能 环境:solarisx86 (5.10版本,我是在www.sun.com上down的) 设备:rtls8139pci双网卡(这是自己开发的一块“双网卡”,就是做在一块板子上有2个网络控制芯片, 即一个板子上有两块网卡,网卡1和网卡2) 最终功能:实现网卡的正常通信功能和实现双网卡的双冗余备份功能。(同一时间只有一块网卡工作,另一块网卡在备用状态, 当其中的工作网卡故障时,切换到备份网卡工作以保证网络正常通信) 实现方法:在solarisx86下通过访问pci双网卡的配置空间,i/o空间,内存空间某个寄存器以获取网卡的链路状态。 具体一点:通过读取网卡1的配置空间得到i/o基址,然后查询某个偏移量(i/o基址+offset)以读取状态寄存器的状态。 觉得主要问题是:如何在solarisx86下读取pci网卡的i/o空间。 目前状态:双网卡硬件上已经实现,在vxworks,window,solaris下都能正常工作。 在solarisx86下用系统本身自带的rtls驱动或者网上下载的驱动都可以正常工作。 现在的问题就是怎么加这个冗余备份切换功能。 资料:8139芯片手册可以在网上下载,文档名称是p-guide(8139)和spec-8139d(130).pdf,应该可以下载到。 环境搭建:我自己的调试环境是一个旧的笔记本,我的上面的网卡正好是rtls8139的。 2块网卡都有自己独立的function id,bus id,device id和自己独立的配置空间。 要求是北京,天津地区均可, 联系方式: 手机:13552584515 QQ:846005373 E-Mail:ruixuejishu@sina.com 联系人:瑞雪技术 李金喜

回复  |  举报

superaurora2008-03-31 15:00

技术文章,很好的呀!

回复  |  举报
留言热议
请登录后留言。

登录 注册