Gor*_*ski 4 c++ linux windows embedded interrupt
我有这个奇怪的问题.我想知道是否有可能在C/C++中创建一个可以在Linux或Windows上运行的程序,并将中断处理程序挂钩到设置为特定时间段的系统计时器(例如,每秒2000次),我想要这个中断具有最高优先级,这意味着它必须每半毫秒执行一次,并且执行它时不得中断.
我们用Borland Turbo C 3.1完成了MS-DOS.我们有一个在ISA插槽上运行的接口卡(我们自己的).每半毫秒,我们的程序就会通过界面读取控制工业过程的电子状态.在过去的15年里,这对我们有用,但是我们的主板已经没有ISA插槽了,所以我们正在寻找新的解决方案.
我们还有基于PIC单片机的解决方案,但我们的视野将通过通用处理器扩大.
我的猜测是有一些用于嵌入式应用程序的自定义Linux内核,所以我正在寻找一些我们可以开始试验的资源.
是的,您可以在MS-DOS中执行此操作,因为它不是多用户或多任务操作系统.然而,同样的事情会不会在Windows,因为它的工作是一个MULT用户,多任务操作系统.它也不是实时的,这意味着无法保证您的任务将在您要求执行时完全执行.所有事情都是先发制人的,这意味着任何数量的其他流程和任务(用户模式或系统级)都可以有效地将您的流程"颠覆"到优先级列表中并迫使其等待执行,直到其他任务完成或者他们自己被打断,让你的过程有机会跑一会儿.
我不知道Linux,但我想大多数主要的发行版都是用类似于Windows编写的.
您需要找到一个实时的单用户操作系统来执行此操作.Unix衍生产品可能是开始寻找的最佳位置,但我不会是能够推荐它的人.
或者,您可以继续使用MS-DOS(或替代品,如FreeDOS的),但切换到不同的接口技术,是可在较新的主板.没有理由更新适合您的内容,特别是如果更新对您的目标产生反作用.
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |