首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变串行驱动程序的中断优先级,使其比以太网中断的优先级更高?

如何改变串行驱动程序的中断优先级,使其比以太网中断的优先级更高?
EN

Stack Overflow用户
提问于 2013-01-11 20:09:27
回答 1查看 1.5K关注 0票数 1

我运行的串口在460800波特rate.The数据是连续发送的。串行驱动数据传递给用户空间应用程序,用户空间应用程序使用套接字将数据发送给网络应用程序。有时,我会看到串行驱动程序HW溢出,因为运行ISR或其他中断需要太长时间(我只有以太网、串行和gp_timer中断)。另外,我认为在某些情况下,以太网和串行中断都处于中断队列(我的假设),并且以太网驱动程序中断比串行驱动中断优先,同时串行驱动程序HWFIFO溢出。

当我禁用数据传输到网络应用程序时,用户空间中的所有数据都收到了良好的效果。这让我相信是以太网驱动程序导致了这个问题。

我想改变串行中断的优先级,以便在以太网驱动程序中断之前提供服务。你认为改变优先级能解决问题吗?

我在Linux2.6.32 ARMV7上。

EN

回答 1

Stack Overflow用户

发布于 2013-01-13 17:52:50

我不确定哪个版本的补丁会更好地尝试,我会说先应用2.6.33版本,如果应用补丁没有问题,那么就使用它,如果它们不应用,那么尝试2.6.31补丁。

这些补丁的缺点是它使linux具有可抢占性,所以您必须小心,因为您永远不知道什么时候会被替换掉。这意味着使用互斥锁来保护线程之间共享的数据。如果你明白自己在做什么,这不是什么大问题。

它在windows上工作的原因是运气好,如果您在windows上运行测试,然后沉重地加载系统,它还能工作吗?我怀疑。在设计得当的实时系统中,无论系统负载如何,它都能正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14285873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档