DOS系统下的实时多任务系统开发(RTKERNEL)
2007-07-21 03:07
274 查看
DOS系统下的实时多任务系统开发(RTKENERL)
RTOS-32, RTKernel. 用于32位x86结构,Win32/NT兼容的嵌入式系统实时多任务操作系统, 用于DOS系统的实时多任务内核. 用于x86兼容CPU的非专利保护嵌入式操作系统, RTKernel是一个功能强大的实时多任务系统,它是被设计用来提供给那些希望在DOS ...
/*串口设置和创建"线程"任务*/
#include <rtkernel.h>
#include <rtcom.h>
#include <stdio.h>
#include <rtkeybrd.h>
#include <cpumoni.h>
#include <timer.h>
#include <dos.h>
TaskHandle Com1Handle;
TaskHandle Com2Handle;
TaskHandle Com3Handle;
//TaskHandle Com4Handle;
TaskHandle Time1Handle;
TaskHandle Send1Handle;
Semaphore Com1Sema;
Semaphore Com2Sema;
Semaphore Com3Sema;
Semaphore Com4Sema;
void main()
{
RTComInit();
//---125--
TimeSB=0;
Comm2Done=1;
TimeB=0;
TimeEB=1;
times=5;
DataBe=0;
ReadPara();
//-------125end----
PortInstalled(COM1x);
SetIOBase(COM1x,0x3F8);
InitPort ( COM1x, 9600, 2, 1, 8 );//端口1初始化,与计算机通讯
EnableCOMInterrupt ( COM1x, 1024 );//设置端口中断缓冲区,存储中断向量
{
PortInstalled(COM2x);
SetIOBase(COM2x,0x2F8);
InitPort ( COM2x, 9600, 0, 2, 8 );//端口2初始化,与A/D通讯
}
/*
PortInstalled(COM3x);
SetIOBase(COM3x,0x3E8);
InitPort ( COM3x, 9600, 2, 2, 8 );
EnableCOMInterrupt ( COM3x,1024 );
*/
PortInstalled(COM4x);
SetIOBase(COM4x,0x2E8);
InitPort ( COM4x, 9600, 2, 1, 8 );
EnableCOMInterrupt ( COM4x,1024 );
Com1Sema = RTKCreateSema ( Binary, 1 );
Com2Sema = RTKCreateSema ( Binary, 1 );
Com3Sema = RTKCreateSema ( Binary, 1 );
Com4Sema = RTKCreateSema ( Binary, 1 );
Com1Handle = RTKCreateTask ( Receiver1, 8, 2*4096, "Receiver1" );
if ( !NoWeighing )
Com2Handle = RTKCreateTask ( Receiver2, 9, 2*4096, "Receiver2" );
Com3Handle = RTKCreateTask ( Receiver3, 7, 2*4096, "Receiver3" );//?优先级9-》7/8
//Com4Handle = RTKCreateTask ( Receiver4, 9, 2*4096, "Receiver4" );
while(1);
}
RTOS-32, RTKernel. 用于32位x86结构,Win32/NT兼容的嵌入式系统实时多任务操作系统, 用于DOS系统的实时多任务内核. 用于x86兼容CPU的非专利保护嵌入式操作系统, RTKernel是一个功能强大的实时多任务系统,它是被设计用来提供给那些希望在DOS ...
/*串口设置和创建"线程"任务*/
#include <rtkernel.h>
#include <rtcom.h>
#include <stdio.h>
#include <rtkeybrd.h>
#include <cpumoni.h>
#include <timer.h>
#include <dos.h>
TaskHandle Com1Handle;
TaskHandle Com2Handle;
TaskHandle Com3Handle;
//TaskHandle Com4Handle;
TaskHandle Time1Handle;
TaskHandle Send1Handle;
Semaphore Com1Sema;
Semaphore Com2Sema;
Semaphore Com3Sema;
Semaphore Com4Sema;
void main()
{
RTComInit();
//---125--
TimeSB=0;
Comm2Done=1;
TimeB=0;
TimeEB=1;
times=5;
DataBe=0;
ReadPara();
//-------125end----
PortInstalled(COM1x);
SetIOBase(COM1x,0x3F8);
InitPort ( COM1x, 9600, 2, 1, 8 );//端口1初始化,与计算机通讯
EnableCOMInterrupt ( COM1x, 1024 );//设置端口中断缓冲区,存储中断向量
{
PortInstalled(COM2x);
SetIOBase(COM2x,0x2F8);
InitPort ( COM2x, 9600, 0, 2, 8 );//端口2初始化,与A/D通讯
}
/*
PortInstalled(COM3x);
SetIOBase(COM3x,0x3E8);
InitPort ( COM3x, 9600, 2, 2, 8 );
EnableCOMInterrupt ( COM3x,1024 );
*/
PortInstalled(COM4x);
SetIOBase(COM4x,0x2E8);
InitPort ( COM4x, 9600, 2, 1, 8 );
EnableCOMInterrupt ( COM4x,1024 );
Com1Sema = RTKCreateSema ( Binary, 1 );
Com2Sema = RTKCreateSema ( Binary, 1 );
Com3Sema = RTKCreateSema ( Binary, 1 );
Com4Sema = RTKCreateSema ( Binary, 1 );
Com1Handle = RTKCreateTask ( Receiver1, 8, 2*4096, "Receiver1" );
if ( !NoWeighing )
Com2Handle = RTKCreateTask ( Receiver2, 9, 2*4096, "Receiver2" );
Com3Handle = RTKCreateTask ( Receiver3, 7, 2*4096, "Receiver3" );//?优先级9-》7/8
//Com4Handle = RTKCreateTask ( Receiver4, 9, 2*4096, "Receiver4" );
while(1);
}
相关文章推荐
- 在应用处理器上开发实时任务系统
- 在应用处理器上开发实时任务系统
- 你用着单屏多任务系统,却想打造实时预警/分析中心
- 基于dos的多任务系统实现
- web工作流管理系统开发之八 开源osworkflow之任务管理
- Labview创建NI MAX任务的方法(四川成都承接工控测控系统开发定制)
- 关注电子商务网站开发-《纯JS写的无刷新实时同步购物车系统》
- 基于DOS操作系统下空调商检系统中的设计与开发
- 关于Xenomai开发嵌入式实时系统的一些浅见
- VC++/MFC入门项目开发实战之任务管理系统
- 实时内存数据库eXtremeDB 在linux系统下的java开发环境搭建
- 利用Protothread实现实时多任务系统
- 坚持#第37天~Java开发大数据实时统计系统
- 工作流管理系统开发之十七 任务管理
- ElasticSearch + Canal 开发千万级的实时搜索系统
- 第12周项目4:学习辅助软件开发,任务2:小学生算术能力测试系统
- [课程设计]Scrum 2.0 多鱼点餐系统开发进度(第二阶段项目构思与任务规划)
- 学界| UC Berkeley提出新型分布式框架Ray:实时动态学习的开端—— AI 应用的系统需求:支持(a)异质、并行计算,(b)动态任务图,(c)高吞吐量和低延迟的调度,以及(d)透明的容错性。
- 接到老大的任务,要求开发内部进销存系统
- ElasticSearch + Canal 开发千万级的实时搜索系统