当前位置: 论文资料 >> 计算机论文 >> 计算机应用 >> 基于μC/OS的嵌入式系统应用开发研究
基于μC/OS的嵌入式系统应用开发研究

OSCtxSw()  任务级的上下文切换,它是当任务因为被阻塞而主动请求cpu调度时被执行,由于此时的任务切换都是在非异常模式下进行的,它的工作是先将当前任务的cpu现场保存到该任务堆栈中,然后获得最高优先级任务的堆栈指针,从该堆栈中恢复此任务的cpu现场,使之继续执行。

OSIntCtxSw()  中断级的任务切换,它是在时钟中断ISR(中断服务例程)中发现有高优先级任务等待的时钟信号到来,则在中断退出后直接调度就绪的高优先级任务执行。

OSTickISR() 时钟中断处理函数,它的主要任务是负责处理时钟中断,调用系统实现的OSTimeTick函数,如果有等待时钟信号的高优先级任务,则需要在中断级别上调度其执行。其他相关的两个函数是OSIntEnter()和OSIntExit(),都需要在ISR中执行。

移植完以上程序后,用户就可以结合自己的项目要求来编写自己的应用程序了,用户可以添加如打印、空等待等任务,以下给出了一个例程,通过调用OSTaskCreate ( )函数注册了三个任务,由系统根据最优调度原理进行调度。

void main (void)

{

   Initialize();                      /* Processor specific initialization */  

   OSInit();

   bufferSemaphore = OSSemCreate(BUFFER_LENGTH - 1);

   terminalSemaphore = OSSemCreate(1);

         OSTaskCreate(Task1, (void*)string1, (void*)&stacks[0][TASK_STK_SIZE - 1], 0);                                                     

   OSTaskCreate(Task2, (void*)string2, (void*)&stacks[1][TASK_STK_SIZE - 1], 1);

   OSTaskCreate(Task3, (void*)string3, (void*)&stacks[2][TASK_STK_SIZE - 1], 2);

                                                                                                                                

   OSStart();                         /*     Start.....              */

}

 

四、驱动程序的添加

由于UC/OS提供的仅仅是一个任务调度的内核,通过以上移植,要想得到一个相对完整、实时的嵌入式多任务操作系统,还必须进行相当多的扩展工作。主要有:建立文件系统、通过开发如LCD液晶显示、USB通信、键盘、串口等驱动程序从而提供应用程序调用的API函数,还有创建图形用户接口(GUI)函数等,下面主要介绍一下串口驱动程序的开发。

void Uart_Init(int mclk,int baud)     {  }

该函数主要是初始化串口,设置波特率,其中mclk是系统主时钟频率,band参数传递串口通信波特率。 

void Uart_Select(int ch)   {      }

   该函数进行串口选择,ch 传递串口号。  

char Uart_Getch(void)     {        }

该函数从串口读取字符,存放在一数组内。

void Uart_GetString(char *string)   {    }

该函数读取要发送的字符串,并一个一个字符地从串口发送。

void Uart_SendByte(int data)     {      }      

该函数通过串口发送数据,data是需要发送的字符。

void Uart_SendString(char *pt)    {     }

该函数通过串口发送字符串,pt是字符串首地址的指针。

通过以上接口函数,系统向用户提供了屏蔽底层硬件的API函数,用户可以通过调用以上函数,方便地对串口进行操作。

 

五、结束语

目前市场上基于μc/os嵌入式操作系统的产品比较多,应用领域包括工业控制、信息家电、网络设备等方面,而且基于μc/os的应用正潮起云涌,蓬勃发展。随着后PC时代的来临,嵌入式系统理论与应用研究日新月异,μc/os正是我们手中开发嵌入式系统的利器,较好的掌握这门技术可以将理论与实际应用相结合,更好地服务于我们的日常生活和生产中。

 

参考文献: 1、邵贝贝译.μC/ OS -Ⅱ源码公开的实时嵌入式操作系统[M] . 北京:中国电力出版社, 2001.

2、王田苗     嵌入式系统设计与实例开发                清华大学出版社今年10月

3、邹思轶    嵌入式Linux设计与应用                  清华大学出版社今年1月

上一页  [1] [2] 


相关文章列表:
  • 用Excel进行分步成本核算

  • 计算机软件保护之专利模式探讨

  • 计算机技术在GHH风机中的研究与应用

  • 再论“空间句法”

  • 中文全文信息检索系统中索引项技术及分词系统的实现

  • 搭建基于Linux桌面环境的影音平台

  • 架设基于Linux(2.6内核)的服务器集群

  • 关于使用多个同种VXI总线仪器的软件设计

  • 消息钩子函数入门篇

  • 探索NTFS