linux中断响应延迟时间

zhoujiawen 2010-10-25 11:17:21
这两天调试模拟PS2控制器接收PC键盘,误码率很高,

键盘发送的clock周期为高40us低40us,
采用下降沿中断,但是调试发现,在linux调用中断服务函数时,已经过了38us,只剩下2us读data口线,误码率肯定会比较高,有没有什么机制提升linux的中断响应时间,
//注册中断
if (request_irq(LPC22XX_GPIO_VECTOR,
lpc24xx_ps2_interrupt, IRQF_DISABLED, "Keyboard",
NULL)) {
printk(KERN_ERR "Keyboard Init: Unable to get IRQ.\n");
return -EBUSY;
}
static irqreturn_t lpc24xx_ps2_interrupt(int irq, void *dev_id)
{
int i=0;
unsigned char dt=0;
//if (!CLCKSTATUS()) {
//if (!CLCKSTATUS()) {
if (DATASTATUS()) dt=0x80;
else dt=0;
TEST(); //测试,IO口取反,到此处时,已经过了38us,下降沿中断,只能接收低40us
//(KeyData.App.State) ? (SendDataToDevice(dt)) : (DealKeyData(dt));

//}
//}
IO2_INT_CLR = PS2_CLCK; /* ÇåÁãP0.12ÖÐ¶Ï */
return IRQ_HANDLED;
}

arch中的中断初始化
set_irq_handler(irq, handle_level_irq);
if(irq >= LPC22xx_INTERRUPT_EINT0 && irq <= LPC22xx_INTERRUPT_EINT3)
set_irq_flags(irq, IRQF_VALID | IRQF_PROBE | IRQF_NOAUTOEN);
else
set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);

用了handle_level_irq这个,我发现kernel中,还有handle_edge_irq,handle_fastio_irq等几种
有啥区别啊
...全文
1077 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoujiawen 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhoujiawen 的回复:]
这两天调试模拟PS2控制器接收PC键盘,误码率很高,

键盘发送的clock周期为高40us低40us,
采用下降沿中断,但是调试发现,在linux调用中断服务函数时,已经过了38us,只剩下2us读data口线,误码率肯定会比较高,有没有什么机制提升linux的中断响应时间,
//注册中断
if (request_irq(LPC22XX_GPIO_VECTOR,
lpc24xx_p……
[/Quote]

键盘发送clock信号给linux,周期是高低40us的clock,linux驱动设置成下降沿中断,
在内核调用驱动函数中的中断服务函数入口处取反测试口线,通过示波器跟踪,已经越过
clock信号下降沿38us

程序中没有算时间啊,clock是PS2设备发的,40us周期是示波器量出来的
pottichu 2010-10-25
  • 打赏
  • 举报
回复
示波器量到的电平变化的时间才算准的。 程序算出来是不准的,
或者你通过控制某个 io 口的变化来查看时间也是不对的。

所以问题并不在于中断的响应时间。
内容概要:本文围绕一类网络化异构多智能体系统的分布式一致性问题展开研究,重点探讨在存在未知干扰的情况下,如何通过指数预定义时间控制策略实现系统的快速稳定一致。研究结合Matlab编程与Simulink仿真工具,构建了完整的多智能体动力学模型,并设计了具备强鲁棒性的分布式控制协议,能够在有限时间内克服外部干扰与系统异构性带来的挑战,确保各智能体状态达成一致。文中详细展示了控制器的设计流程、稳定性理论分析以及仿真实验结果,验证了所提方法的有效性与优越性。; 适合人群:具备一定自动控制理论基础和Matlab/Simulink仿真能力的研究生、科研人员及从事多智能体系统、协同控制相关工作的工程技术人员。; 使用场景及目标:① 深入理解多智能体系统中分布式一致性控制的核心原理与实现方法;② 掌握在未知干扰环境下设计高精度、快响应控制律的技术路径;③ 借助提供的代码与模型开展进一步的算法改进与科研复现工作; 阅读建议:建议读者结合文中理论推导与配套的Matlab代码、Simulink模型同步学习,重点关注控制协议的设计逻辑与仿真参数设置,动手运行并调试程序以加深对算法性能的理解,同时可将其作为科研项目或学位论文的技术参考。
内容概要:本文研究了一种基于粒子群算法(PSO)融合动态窗口法(DWA)的无人机三维动态避障路径规划方法,旨在提升无人机在复杂动态环境中的自主导航能力。通过将PSO的全局搜索优势与DWA的局部实时避障能力相结合,构建了一种高效的混合路径规划框架,并在Matlab平台上实现了算法仿真。该方法能够有效处理三维空间中移动障碍物的干扰,实现从起点到目标点的安全、平滑且最优的飞行路径规划,同时兼顾路径长度、安全性与能耗等多目标优化指标。; 适合人群:具备一定算法基础和Matlab编程能力,从事无人机控制、智能优化算法或机器人路径规划相关研究的硕士、博士研究生及科研人员。; 使用场景及目标:①应用于复杂城市环境、灾害救援、野外巡检等存在动态障碍物的实际无人机飞行任务中,实现安全高效的自主导航;②为智能交通系统、自动驾驶等领域提供路径规划算法设计与优化的技术参考;③促进PSO与DWA等智能算法在工程实践中的深度融合与创新应用。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注PSO与DWA的融合机制、适应度函数设计及动态环境建模方式,并可通过调整参数或引入新约束进行二次开发与性能优化。

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧