新闻中心

EEPW首页>电源与新能源>设计应用> μC/OSⅡ的分布式应急电源控制系统设计

μC/OSⅡ的分布式应急电源控制系统设计

作者: 时间:2008-11-28 来源:网络 收藏

  4 软件设计 

  μC/OS-II是一个实时操作系统的内核,它的大部分源代码都是使用ANSI C写的,有很强的移植性。它的内核功能丰富,具有可裁减性,用户可根据自身需要来配置编译条件,将实时内核裁剪到满足自己功能的最小状态。 

  在本系统中,有针对的编写了uC/OS- II移植程序及硬件电路的驱动程序。应用程序从函数main()开始,main()内容如下: 

void main(void){ 
SysInit ();/*系统初始化*/ 
OSInit();/*初始化u C/OS- II */ 
OSTaskCreate(TaskStart, ( void*)0, (void*)TaskStk[0][0],5);/*建立起始任务*/ 
OSStart();/*开始多任务调度*/ 
} 

  其中,SysInit()对系统的初始化工作主要包括:建立相关参数和变量,设置各种中断,以及对各器件进行初始化,OSInit()用于对uC/Os- II操作系统进行初始化。起始任务TaskStart ()是一个建立其它任务的任务。接着,建立邮箱用于任务间的通信,再接下来,用OSTaskCreate()函数建立不同功能的任务:SCI通信任务SCIComm_Task()、LCD液晶屏刷新任务LCD_Fresh_Task()、脉宽计算任务PW_Calculate_Task()、逆变器输出电压采集任务Vo_Sample_Task()、键盘扫描任务Key_Scan_Task()、时钟更新任务Time_Fresh_Task()、市电电压采集以及监测任务Vi_Sample_Task()。任务优先级的确定原则是工作频率越高,任务的优先级越高。任务之间的通信是通过发送或接受消息、信号或数据队列来实现的。 

  另外,uC/OS- II在F2407上的移植和配置的方法如下: 

  (1)在OS_ CPU.H中定义相关的宏,声明能够识别的数据类型和堆栈增长方向。OS_ CPU C.C中定义以下6个函数:OSTaskStklnit ( ) 、OSTaskCreateHook()、OSTaskSwHOok()、OSTW_lefook()、OSTaskStatHook()、OST3meT5ckHook()。实际上真正需要定义的只有OSTaskStklnit(),其余5个只需声明,不一定要有实际内容,这5个函数都是需要由用户定义的接口函数。 



评论


相关推荐

技术专区

关闭