首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于ARM的胎儿心电信号数据采集系统
来源:本站整理  作者:佚名  2009-05-07 15:20:01



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-Ⅱ基础上进行应用程序开发,显示与存储胎儿心电数据。

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

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:17,722.66000 毫秒