Ucos在main函数的启动步骤

一:系统的初始化
1:OSInit();
先把系统给初始化了
2:需要在系统滴答定时器的中断里放入Ucos的节拍函数 
一般从别的地方移植过来用就行了
//systick中断服务函数,使用OS时用到
void SysTick_Handler(void)
{
if(delay_osrunning==1) //OS开始跑了,才执行正常的调度处理
{
OS_CPU_SR cpu_sr;
OS_ENTER_CRITICAL(); /* Tell uC/OS-II that we are starting an ISR */
OSIntNesting++;
OS_EXIT_CRITICAL();
OSTimeTick(); /* Call uC/OS-II's OSTimeTick() */
OSIntExit(); /* Tell uC/OS-II that we are leaving the ISR */
}
}
3:任务的创建
有两个任务创建函数 
OSTakeCreate();
OSTakeCreateExt();
第一个是简单版   第二个是高级版 
INT8U OSTaskCreate(void (*task)(void *pd),
void *pdata,
OS_STK *ptos,
INT8U prio);
参数:任务的入口函数,一个指针(一般填空),指向任务堆栈栈顶的指针,优先级
只有 四个参数
INT8U OSTaskCreateExt(void (*task)(void *pd),
void *pdata,
OS_STK *ptos,
INT8U prio,
INT16U id,
OS_STK *pbos,
INT32U stk_size,
void *pext,
INT16U opt);
参数: 任务的入口函数 ,一个指针(一般填空), 指向任务堆栈的栈顶指针 , 优先级  ,这些和上面的一样
扩展: id: 是任务的标识,目前这个参数没有实际的用途,但保留在 OSTaskCreateExt()中供今后扩展,应用程序 中可设置 id 与优先级相同。
           pbos: 指向任务堆栈栈底的指针
           stk_size: 指定任务堆栈的大小(就是任务栈元素数量)。其单位由 OS_STK 定义:当 OS_STK 的类型定义为INT8U、 INT16U、 INT32U 的时候, stk_size 的单位为分别为字节(8 位)、字(16            位)和双字(32 位)。
           opt: 存放与任务相关的操作信息。 opt 的低 8 位由 uC/OS 保留,用户不能使用。用户可以使用 opt 的高 8 位。每一种操作由 opt 中的一位或几位指定,当相应的位被置位时,表示选择某种               操作。当前的 uC/OS 版本支持下列操作:
任务创建时 用一个INT8U的变量来接收任务创建函数的返回值以检查任务创建的结果
4:系统开始运行             
OSStart();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值