uC/OS-II在LPC21XX平台移植小结及API介绍
82 浏览量
更新于2024-09-01
收藏 120KB PDF 举报
LPC21XX移植UCOS-II小结
嵌入式操作系统是指在嵌入式系统中运行的操作系统,旨在满足嵌入式系统的特殊需求。uC/OS-II是其中一种流行的嵌入式操作系统,广泛应用于各种嵌入式系统中。今天,我们将讨论如何将uC/OS-II移植到LPC21XX平台上,并总结一些重要的uC/OS-II API。
**uC/OS-II移植到LPC21XX平台**
在uC/OS-II的帮助手册中,作者强调了不能在OSInit()或者OSStart()函数内调用Timer初始化程序,因为这可能会破坏系统的可靠性。因此,我们需要找到一种折中的办法来解决这个问题。一个解决方案是在优先级最高的程序内调用Timer初始化程序,这样可以保证当OSStart()函数调用系统内部函数OSStartHighRdy()开始多任务后,首先执行的就是Timer初始化程序。另一个解决方案是专门开一个优先级最高的任务,只做一件事情,就是执行Timer初始化,然后通过调用OSTaskSuspend()函数将自己挂起来,永远不再执行。
**uC/OS-II API简介**
uC/OS-II提供了大量的API供程序员使用,这些API主要分为五类:
* 任务类:包括OSTaskCreate()、OSTaskSuspend()、OSTaskResume()等函数。
* 消息类:包括OSMessageCreate()、OSMessageSend()、OSMessageReceive()等函数。
* 同步类:包括OSEventCreate()、OSEventWait()、OSEventSignal()等函数。
* 时间类:包括OSTimeDly()、OSTimeout()、OSTimeGet()等函数。
* 临界区与事件类:包括OSMutexCreate()、OSMutexPend()、OSMutexPost()等函数。
**OSTaskCreate函数**
OSTaskCreate函数是uC/OS-II中最重要的函数之一,该函数用于创建一个新的任务。该函数需要四个参数:任务的入口地址、任务的参数、任务堆栈的首地址和任务的优先级。调用该函数后,系统会首先从TCB空闲列表内申请一个空的TCB指针,然后将会根据用户给出参数初始化任务堆栈,并在内部的任务就绪表内标记该任务为就绪状态。最后返回,这样一个任务就创建成功了。
**OSTaskSuspend函数**
OSTaskSuspend函数是一个简单的函数,用于将指定的任务挂起。如果挂起的是当前任务的话,那么还会引发系统执行任务切换先导函数OSShed来进行一次任务切换。该函数只有一个参数,就是指定任务的优先级。为什么是优先级呢?事实上,在系统内部,优先级除了表示一个任务执行的先后次序外,还起着分别每一个任务的作用,换句话说,优先级也就是任务的ID。
2011-03-05 上传
2009-09-04 上传
2009-11-26 上传
2008-08-24 上传
2011-08-24 上传
点击了解资源详情
点击了解资源详情
weixin_38699613
- 粉丝: 2
- 资源: 923
最新资源
- IEEE 14总线系统Simulink模型开发指南与案例研究
- STLinkV2.J16.S4固件更新与应用指南
- Java并发处理的实用示例分析
- Linux下简化部署与日志查看的Shell脚本工具
- Maven增量编译技术详解及应用示例
- MyEclipse 2021.5.24a最新版本发布
- Indore探索前端代码库使用指南与开发环境搭建
- 电子技术基础数字部分PPT课件第六版康华光
- MySQL 8.0.25版本可视化安装包详细介绍
- 易语言实现主流搜索引擎快速集成
- 使用asyncio-sse包装器实现服务器事件推送简易指南
- Java高级开发工程师面试要点总结
- R语言项目ClearningData-Proj1的数据处理
- VFP成本费用计算系统源码及论文全面解析
- Qt5与C++打造书籍管理系统教程
- React 应用入门:开发、测试及生产部署教程