勇哥注:
这些是官方带的demo程序,我整理了一下感兴趣的一些,做一些说明。
说明内容也是官方的,这里仅翻译一下。
BaseFunctions
目的:
这个简单的示例展示了基础模块(Base Module)中一些常用函数的使用。
你可以查询你正在使用的驱动程序的名称和版本。
你还可以向错误处理系统中添加自己的错误代码。
InterruptCallBack
目的:
此示例代码演示了中断例程的编程,该例程将在内核级别(环0)执行。这意味着,在操作系统内核的上下文中执行。
此机制将比应用级别上的中断例程快得多,因为所有应用程序和大多数内核活动都具有较低的优先级。
另一方面,如果在内核级别上执行,您的中断例程必须处理一些限制。不允许使用诸如将测量值保存到硬盘或可视化等应用程序功能。
此示例展示了为PCI设备或IRQ(中断请求)安装中断处理程序的方法。在选择中断源类型后,将显示所有已安装的PCI设备,以便您可以选择其中一个,或者系统会要求您选择一个IRQ。之后,中断例程将被安装在所选源上。在激活三次后,将触发一个事件以通知应用程序退出并卸载内核。
注意!
使用PCI中断时要小心!大多数PCI组件不会发送中断请求。您自己的PCI卡需要得到正确的确认,否则在系统接收到第一个中断后,系统将会冻结!因此,请将此示例用作模板。如果您没有合适的PCI设备,请使用任何设备的中断模拟,这样键盘就可以通过按<Enter>键来模拟“中断”。
注意!
请仅使用来自ISA硬件或内部芯片组组件的中断,特别是不要使用PCI总线上硬件的中断号!否则,系统可能会冻结或崩溃,因为PCI中断必须由内核级别的软件例程正确响应。如果您不知道合适的中断号,请使用“0”作为中断号,这样键盘就可以通过按<Enter>键来模拟“中断”。
RealTimeCallBack
目的:
此示例代码演示了定时器例程的编程,该例程将在实时上下文的内核级别(环0)上执行。
此机制具有最高的精度,因为所有其他系统活动都被抢占。实时机制在系统中具有最高优先级。
另一方面,如果在内核级别上执行,您的定时器例程必须处理一些限制。不允许使用诸如将测量值保存到硬盘或可视化它们之类的应用程序功能。
定时器的周期是可编程的,频率最高可达1 MHz。
系统将要求您设置一个定时器周期,该周期在10到1000微秒之间,定时器例程将大约运行2秒钟。在此期间,我们将停止并重新启动定时器。这仅在使用C/C++和Delphi时可行。
TaskBasics
目的:
本示例展示了任务模块的基本功能。
我们创建了三个具有不同优先级的任务,它们相互恢复和挂起。
每个任务都会将一些字符放入数据管道中。
最后,显示数据管道的内容以展示单个任务的执行顺序。

