关于Ucosii的移植与API函数接口简介

本文详细介绍了如何移植Ucosii操作系统,包括初始化、任务创建、任务切换、任务同步与信息交换、软件定时器的使用以及内存管理和临界区的处理。通过示例代码,讲解了信号量、互斥信号量、消息邮箱、消息队列和事件标志组的API函数,以及任务调度和中断处理的注意事项。
摘要由CSDN通过智能技术生成

1. 移植ucos操作系统所包含的工程文件以及针对每个CPU所裁剪的工程文件。

2. OSInit();//初始化操作系统

3. OS_CPU_SysTickInit(168000000/OS_TICKS_PER_SEC);//初始化系统时钟,一秒钟多少个时间节拍

4. OSTaskCreate(LED1_Task,0,&LED1_TASK_STK[99] ,LED1_TASK_PRIO);//创建任务(任务函数,传参数(一般为void*0),任务堆栈,优先级( 使 0 1 23 , 以 及 OS_LOWEST_PRIO-3, OS_LOWEST_PRIO-2,OS_LOWEST_PRIO-1, OS_LOWEST_PRIO。这些优先级uC/OS 系统保留,其余的56 个优先级提供给应用程序。))

创建任务函数返回值可判断任务是否创建成功:

OS_ERR_NONE: 创建成功。

OS_ERR_PRIO_EXIST: 所请求的优先级已经存在。

OS_ERR_PRIO_INVALIDprio OS_LOWEST_PRIO 高。

OS_ERR_NO_MORE_TCB: μC/ OS-II并没有任何更多的 OS_TCBs分配。

OS_ERR_TASK_CREATE_ISR:试图从ISR 创建任务,不允许。

在初始化任务堆栈时,堆栈的结构必须与CPU中断后寄存器入栈的顺序结构相同 

ARM的CPU一般是递减的栈,对堆栈数组取地址时一般取尾地址。空间大小最少17*4

扩展函数:INT8U OSTaskCreateExt(void (*task)(void *pd),

void *pdata,

OS_STK *ptos,

INT8U prio,<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值