机顶盒C语言开发(ucos操作系统C语言开发)
ucos操作c语言开发
本人现就职于出口机顶盒公司,公司只做国外市场,产品主要有t2/s2 combo(t2_s2) -c -t等。机顶盒采用ucos操作系统,芯片来自于montage(上海澜起科技),相比于sunpluse ali等还处于兴起阶段。
ucos操作系统:
μc/os ii(micro-controller operating system two)是一个可以基于rom运行的、可裁剪的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,适合很多商业操作系统性能相当的实时操作系统(rtos)。为了提供最好的移植性能,μc/os ii最大程度上使用ansi c语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种cpu(包括dsp)。 μc/os ii可以简单的视为一个多任务调度器,在这个任务调度器之上完善并添加了和多任务操作系统相关的系统服务,如信号量、邮箱等。其主要特点有公开源代码,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,可固化。
μc/os-ii可以大致分成核心、任务处理、时间处理、任务同步与通信,cpu的移植等5个部分。
1) 核心部分(oscore.c) 是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都在这里。
2) 任务处理部分(ostask.c) 任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μc/os-ii是以任务为基本单位调度的,所以这部分内容也相当重要。
3) 时钟部分(ostime.c) μc/os-ii中的最小时钟单位是timetick(时钟节拍)。任务延时等操作是在这里完成的。
4) 任务同步和通信部分 为事件处理部分,包括信号量、邮箱、消息队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。
5) 与cpu的接口部分 是指μc/os-ii针对所使用的cpu的移植部分。由于μc/os-ii是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体cpu的具体内容和要求作相应的移植。这部分内容由于牵涉到sp等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实
现、任务级任务切换的底层实现、时钟节拍的产生和处理、中断的相关处理部分等内容。
目前在开发过程中有用到时钟部分 任务处理部分 通信部分底层的部分还没怎么接触。像sleep(200)就属于时钟部分延时操作,创建线程os_creat_task就属于任务处理部分,响应遥控器按键的消息就属于通信部分。
上一篇: QT实现工具箱QButtonGroup