工商嵌入式系统复习.ppt
文本预览下载声明
一般的操作系统都提供时间管理的函数,最基本的就是延时函数,μC/OS-II也不例外,μC/OS-II所具有的时间管理函数见下表。 μC/OS-II具有简单的动态内存管理能力。μC/OS-II的动态内存管理函数见下表。 任务管理函数是操作与任务相关功能的函数,详见下表。 系统管理函数是一些与μC/OS-II内核或功能相关的一些函数,详见下表。 μC/OS-II的初始化函数有2个:OSInit()和OSStart(),它们不能在任何任务和中断服务程序中使用,仅在main()函数中按照一定的规范被调用,其中OSInit()函数初始化μC/OS-II内部变量,OSStart()函数启动多任务环境。 μC/OS-II把信号量等都称为事件,管理它们的就是事件管理函数。μC/OS-II V2.52具有的事件有普通信号量、互斥信号量、事件标志组、消息邮箱和消息队列,这些都是μC/OS-II用于同步与通讯的工具,本章后述的内容将会详细介绍。 系统函数概述| μC/OS-II程序设计基础 系统函数的分类 初始化 任务管理 时间管理 内存管理 根据功能分类 事件管理 函数名 功能 备注 OSStatInit() 使能任务统计功能 复位一次只能调用一次,并且必须在任务中调用,在调用时其它用户任务不能处于就绪状态 OSIntEnter() 进入中断处理 必须由中断服务程序按照规范调用,使用本公司的模版就不需要调用它们 OSIntExit() 退出中断处理 OSSchedLock() 锁调度器 必须配对使用,一般情况不需要使用。事实上,μC/OS-II不推荐使用它们 OSSchedUnlock() 解锁调度器 OS_ENTER_CRITICAL() 进入临界区 必须配对使用,一般通过禁止中断和允许中断来实现的。对于一些移植代码来说,不能嵌套调用 OS_EXIT_CRITICAL() 退出临界区 函数名 功能 函数名 功能 OSTaskChangePrio() 改变任务优先级 OSTaskSuspend() 挂起任务 OSTaskCreate() 建立任务 OSTaskResume() 恢复任务 OSTaskCreateExt() 建立任务,比OSTaskCreate()控制任务属性更多 OSTaskStkChk() 检查堆栈 OSTaskDel() 删除任务 OSTaskQuery() 获得任务信息 OSTaskDelReq() 请求删除任务,有特殊用途 系统管理 函数名 功能 备注 OSTimeDly() 以时钟节拍为单位延时 OSTimeDlyHMSM() 以钟时分秒毫秒为单位延时 OSTimeDlyResume() 恢复延时的任务 OSTimeDlyHMSM()可能需要多次才能恢复 OSTimeGet() 获得系统时间 以时钟节拍为单位 OSTimeSet() 设置系统时间 以时钟节拍为单位 OSTimeTick() 时钟节拍处理函数 由时钟节拍中断处理程序调用,用户很少使用 函数名 功能 OSMemCreate() 初始化一个堆 OSMemGet() 从指定堆中获得一个内存块 OSMemPut() 从指定堆中释放一个内存块 OSMemQuery() 查询指定堆的状态 事件的一般使用规则 | μC/OS-II程序设计基础 相似性 事件管理函数是μC/OS-II中最多的系统函数,在μC/OS-II V2.52中总共有34个,而且每种事件具有的管理函数数目不同。但是所有的事件都有类似的6个函数,它们是所有事件的基本功能,其函数名类似,使用方法也类似,详细函数见下表。 功能 信号量 互斥信号量 事件标志组 消息邮箱 消息队列 建立事件 OSSemCreate OSMutexCreate OSFlagCreate OSMboxCreate OSQCreate 删除事件 OSSemDel OSMutexDel OSFlagDel OSMboxDel OSQDel 等待事件 OSSemPend OSMutexPend OSFlagPend OSMboxPend OSQPend 发送事件 OSSemPost OSMutexPost OSFlagPost OSMboxPost OSQPost 无等待获得事件 OSSemAccept OSMutexAccept OSFlagAccept OSMboxAccept OSQAccept 查询事件状态 OSSemQuery OSMutexQuery OSFlagQuery OSMboxQuery OSQQuery 另外还有4个事件管理函数为OSMboxPostOpt()、OSQPostFront()、 OSQPostOpt()、 OSQFlush(),各函数详见后面章节。 关于μC/OS的移植 要使μC/OS
显示全部