新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的胎儿心电信号数据采集系统

基于ARM的胎儿心电信号数据采集系统

作者:时间:2009-05-07来源:网络收藏

4.1 ;C/OS-Ⅱ在S3C44BOX上的移植

;C/OS-Ⅱ是源代码公开的嵌入式操作,是优先级的抢占式实时多任务内核,代码采用ANSIC编写,具有很强的可移植性和较好的可裁剪性。;C/OS-Ⅱ提供了实时所需的基本功能包括任务调度、任务管理、时间管理、任务间的通信与同步及内存管理等,总是执行处于就绪条件下优先级最高的任务,最多可以管理64个任务,它把连续的大块内存按分区来进行动态管理,可以有效地解决内存碎片的问题。在移植过程中只需对与处理器相关的一些代码进行修改,包括:

(1)处理器头文件OS_ CPU.H ,其中包括了用#define定义的与处理器相关的变量、宏和定义类型;

(2)在OS_CPU_A.ASM中编写4个简单的汇编语言函数:OSStartHighRdy(),OSCtxSw(),OSIntCtxSw()和OSTickISR(),分别用于启动当前就绪的优先级最高的任务、任务间的切换,从ISR中执行切换功能以及时钟节拍ISR功能;

(3)在OS_ CPU_C. C中编写任务堆栈初始化函数OSTaskStInit()和5个必须声明但不需包含代码的HOOK()函数。

4.2 应用程序设计

根据采集的特性.将系统主要任务划分如下:系统监控任务(优先级4),按键扫描任务(优先级5),LCD显示刷新任务(优先级6)、存储任务(优先级7),优先级0,1,2,3保留以供系统使用。系统初始化以后,µC/OS-Ⅱ根据优先级和就绪状态对任务进行调度和执行。初始化工作包括初始化所有数据结构、分配堆栈空间、建立任务及任务间通信的信号量、消息队列和优先级。在运行OSStart()函数后,最先运行优先级最高的系统监控任务,查询其他任务是否向其发送消息.如果没有则将监控任务挂起。此时,键盘扫描任务从就绪态切换到运行态。该任务执行完毕,如果检测到有按键操作,则向响应任务发送消息,使它们进入就绪态,同时向监控任务发送消息以示此任务工作正常,并且调用延时函数OSTimedly()使该任务进入挂起态。由于监控任务收到消息,将再次进入运行态,重新查询其他被监视任务的运行信息,没有则进入挂起态。此时其他处于就绪态中优先级相对较高的任务开始执行。当键盘延时时间到,系统内核自动将该任务转入就绪态。如果在运行过程中出现异常,监控任务将按照设定处理表对其进行相应处理.使系统顺利运行。

5结束语

本文设计的系统在Embest S3CEV4O开发板的基础上进行改进和实验,充分利用其本身提供的硬件资源,在实时操作系统µC/OS-Ⅱ基础上进行应用程序开发,显示与存储数据。

本文作者创新点:合理有效设计胎儿心号提取电路,结合自身的优势,进行算法分离,具有良好的工程意义。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭