UCOS 中如何处理 机顶盒红外接收头头任务

uCOS系统平时用的多吗,太简单的直接控制就行了,复杂的有Linux等系统,周围用uCOS系统的人真的很少呢!


亲,,,,我正在学习os ,给我最大的感触就是两者开发成不真是天壤之别。对于项目来说,肯定是能用ucos实现的绝不用linux 。而且不是所有的程序都能实现ucos的功能呀。还有就是ucos是软硬件的纽带,有了它我们的开发难度还有周期都会大大缩短。。。。


亲,,,,我正在学习os ,给我最大的感触就是两者开发成不真是天壤之别。对于项目来说,肯定是能用ucos实现的绝不用linux 。而且不是所有的程序都能实现ucos的功能呀。还有就是ucos是软硬件的纽带,有了它我们的开发难度还有周期都会大大缩短。。。。 ...

亲,,,,我正在学习os ,给我最大的感触就是两者开发成不真是天壤之别。对于项目来说,肯定是能用ucos实现的绝不用linux 。而且不是所有的程序都能实现ucos的功能呀。还有就是ucos是软硬件的纽带,有了它我们的开发难度还有周期都会大大缩短。。。。 ...

ucos的功能都能用linux来实现吧?liux也是软硬件的纽带啊  他两都是操作系统,

同意楼主的观点,linux用在比较高端的cpu或者产品上还好,从成本上考虑,楼主的观点是对的

最近想搞一下ucos   有没有什么好的资料推荐啊

学习国产的 RT_Thread吧, 国内企业用的也是越来越多了


只有小组成员才能发言,

接触ucOS好几年了,在感觉到它强大的同时,也感觉到它着实有种距离感,在我们简单的单片机系统搭建的过程中,它的大部分功能是被浪费的,虽然ucOS也给出了一个总的管理文件来处理这种不同的需要,可仍然觉得这还不够。另外,在刚刚上手的时候,会有许多编程人员在理解机制之后对这种组织结构有一种很不理解的感觉,这就让我有一个疑问,对于普通的单片机编程者,在我们想要使用ucOS进行单片机程序编写的时候,它到底难在什么地方。

我觉得,可以从以下两个方面来分析

一、ucOS是一个OS,是能够被方便移植到各个平台的操作系统。

正是因为这个特性,使得我们在使用ucOS的时候,考虑的第一件事,变成了ucOS的移植。这是我很不理解的一个问题,为什么没有一个权威的机构将这些工作做好呢,我们可以从网上找到很多移植的资源,而又为什么已经有人做好了这些移植,我们还要乐此不疲的进行系统移植,正是这样一个移植的工作,把许多试着去使用ucOS的编程者拒之门外,还有一些编程者在完成移植之后就已经丧失了使用它的兴趣。

二、我们需要的是不是一个平台?

ucOS作为一个操作系统,我们看到它其实是相当于一个内核阶段的形态,而对于真正的编程者,我们更需要的是一个平台,而不是从系统内核的层面去理解里边的内容,我们只是使用你的系统,让我们的程序编写更容易,或者说是更高大上一些,而不想去理解你内部是怎么搞的,你爱有你的信号量就有,爱干嘛干嘛,跟我有什么关系...我就是想点个灯,我凭什么去移植操作系统,笑话嘛不是....所以对于使用ucOS我们可能更需要的是一个平台,而不是一个内核代码。

那么,你使用ucOS的目的是什么?畅所欲言吧...


很有同感。ucos只是一个操作系统而已,大师们为何不把所有的处理器都移植好,省的我们费心

ucos可以移植到单片机上?不是说运行需要4KRAM甚至更多吗?普通单片机哪有这种配置。

说的好,要是这个有对应的IDE,那么作为平台来讲,我就会更喜欢它

一般芯片都可以直接找现成的别人移植好的工程.直接开发.建议先使用ucos 然后再深入研究.这样会非常容易.

ucos的使用是方便程序结构设计.摆脱单一主函数的顺序流程.同时方便多人合作开发一个大的稍复杂的项目.

当然如果你只有1个led闪烁是没有必要使用ucos的.但是一般的项目几乎没有这样的.一般稍加复杂的软件功能基本都是并行设计思路.尤其是异步处理的时候os就显得很适合了.


一般芯片都可以直接找现成的别人移植好的工程.直接开发.建议先使用ucos 然后再深入研究.这样会非常容易.
ucos的使用是方便程序结构设计.摆脱单一主函数的顺序流程.同时方便多人合作开发一个大的稍复杂的项目.
当然如果你只有1个led闪烁是没有必要使用ucos的.但是一般的项目几乎没有这样的.一般稍加复杂的软件功能基本都是并 ...

真心表示赞同。。。。。。。。。。。。。。。。。。。。

我是初学者ucos  。但是为什么我要选择学习os  我只是觉得单片机的开发我们多用直接操作寄存器的方法来实现。但是对于简单点的单片机还算可以,如果你要是试用高端点的单片机,你还用寄存器开发,那就有点,,,,,,所以我们需要一个过渡=链接。就是os  如果os我们可以拿来直接用,就像楼主所说的。估计我们的应用开发周期会大大缩短。难度大大降低。。。。何乐而不为

怎么说呢,作为一个嵌入式开发人员,知其然也要知其所以然,uCOS系统的精妙之处很多,这也是我们学习的地方,能够将其吸收并运用到其他地方不是更好?

你说的系统就是平台是从一个比较高的角度去看问题的,面对一个项目我们需要的是高效稳定的完成。但是,面对一个你完全陌生的系统,除了问题调试这都可能涉及系统层面,所以我认为,这是一个学习过程的问题。

我初学UCOS的时候也是根据教程一步步移植,产品开发一段时间后回过头来看又忘记怎么移植了。所以现在都是直接使用别人移植成功的,感觉没必要把时间精力花在移植系统上,等到使用熟练了再考虑移植方法可能会更简单。

我是初学者ucos,一直不了解它虽然是任务切换另一个任务,但是程序还是一条条跑的,这个用中断来跑switch有什么区别

我不赞同,要想想,如果所以的内核都封闭起来,谁来做底层的?光靠商家自己来壮大这个内核吗,BUG出现了,用户自己都不知道在那里?商家问你问题你又不知道就是内核卡了?那家商家如何去完善?移植这个问题,芯片那么多,商家没有那么多精力去做这一块。如果你付费的估计可以,但是你敢说你用UCOS你付费过吗?

如果你认真的把UCOS内核全部都懂了的话,移植是非常简单的一件事。内核调度也不难,无非就是任务堆栈和单片机开辟堆栈换来换取。信号量,邮箱,消息队列,信号标志组这些你只要分析透一个代码就知道所有的。

我认为学习应该循序渐进,首先我可以用起来,然后慢慢的理解内核底层,再靠理解让自己用的更好,然后在深入理解,这样循序渐进。

如果完全把他当作黑匣子用,那换一个系统不就等于有要重新学一个黑匣子吗

我就是直接拿别人移植好的做入门,开始就是把ucos当成一个框架,后边项目做完就了解了ucos系统是怎么用的

只有小组成员才能发言,

想通过UCOSii来理解Linux的系统架构,故参考一些资料,简单整理了一下UCOSii和Linux的区别和联系,以此来更好的学习Linux。

1.用户和计算机的接口;
2.也是计算机硬件和其他软件的接口。
1.免费,源代码公开的分时多任务多用户操作系统 1.免费,源代码公开的实时多任务操作系统
1.是一个操作系统的核心;
2.是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
1.内核包括系统初始化、任务调度、内存管理、中断进出的前导、时钟节拍、事件处理等多部分,但其没有提供输入输出管理,文件系统,网络等服务;
2.其为抢占式内核,允许中断服务程序中断,中断结束后重新进行任务调度,即重新调用最高优先级任务。
1.内核包括进程管理,内存管理,设备管理,网络管理四部分;
2.其为非抢占式内核,实时性差。当进程运行在用户态时,可以被优先级更高的进程抢占,但当他进入核心态时,优先级再高也不能抢占它;
3.区分用户态和核心态。
1.实时任务分为软实时和硬实时;
2.硬实时对响应时间要求较高,且时间不被满足时会导致致命的错误,软实时随对响应时间有要求,但不是强制,不会给系统造成致命错误。
1.是一个基于优先级调度的抢占式的实时内核,不仅内核支持抢占,同时支持任务的抢占式调度,优先级低的任务可以被高优先级任务抢占,也可被中断服务抢占。这就保证了系统可以尽可能快的对外部事件做出响应
1.主要考虑调度的公平性和吞吐量等指标,尽管系统可以通过把实时事件赋予高优先级的方法来实时响应实时事件,但效果有限,对于响应时间要求比较高的硬实时任务,无法满足要求;
2.通过一些改进的措施,linux的实时性可以弥补,例如:增加内核可抢占性,细化系统时钟粒度,改善屏蔽中断处理,改善调度算法等。
3.其为不可抢占式调度,实时性较差
1.协调任务对计算机系统内资源(如内存、I/O设备、CPU)的争夺使用 1.完全基于任务优先级的抢占式调度。当出现具有更高优先级的任务处于就绪态时,进行任务的上下文切换,当前任务将停止运行,把cpu的控制权交给具有更高优先级的任务;
2.最多可调度64个任务,每个任务具有不同的优先级,当前运行的总是优先级最高的任务;
3.无法进行同等优先级的任务调度。最高优先级任务的确定是通过建立就绪任务表来实现的;
4.每一个任务都有独立的堆栈空间,并有一个任务控制块TCB,任务控制块中包含了任务执行中的所有信息。
1.其调度策略为优先级调度和时间片轮转调度;
2.区别于UCOSii的,时间片轮转调度可进行同等优先级任务的调度,让这些任务依次运行一段时间,从而保证系统中同等优先级任务具有平等的运行权利;
3.调度算法实现时根据每个任务的与调度相关的4个参数来进行,分别是实时进程的静态优先级,进程调度策略,用户设定的优先级和进程本轮调度剩余时间片;
4.任务调度的机制决定了其实时性的障碍
1.软件运行时对计算机内存资源的分配和使用的技术 1.其采用的是连续存储空间管理方式中的固定分区方式;
2.每个内存分区都有一个内存分区控制块。
1.其采用的是连续存储空间管理方式中的页式管理机制;
2.其使用了虚拟存储技术,每个任务从内存中获得一定数量的页面,把当前不访问的页面置换出去,为需要页面任务腾出空间,其存在不确定性,实时性较高的系统不会使用。
1.为操作系统提供时钟及定时中断 1.其使用硬件定时器产生一个周期为毫秒级的周期性中断来实现系统时钟;
2.任务是一个无限循环,并且该系统为一个抢占式内核,为了避免高优先级的任务独占内核,在低优先级任务的合适位置都必须添加延时函数,来暂停当前任务。
3.同时还可以利用定时来实现周期性中断回调函数。
1.Linux的时钟也是通过定时中断来实现的;
2.Linux系统有两个时钟,一个是实时时钟,仅在操作系统关机时,在电池供电情况下计时。另一个是系统时钟,开机时系统时钟根据实时时钟进行初始化,然后系统根据频率节拍进行周期性中断计时,系统时钟在关机下是不存在的。在关机时和实时时钟进行同步。
1.是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统 1.Linux文件系统继承了unix系统的文件系统功能特性,还采用了EXT2文件系统,EXT2功能强大,易扩充,性能上全面优化;
2.还有虚拟文件系统,使得linux可以支持多个不同的文件系统。/proc文件系统是一个伪文件系统,用户和应用程序可以通过它得到系统信息,改变内核的某些参数。
1.将操作系统移植到不同的处理器上;
2.两种系统都可以运行在多种平台上,一致性好。
2.只需要几K字节的RAM即可。 2.需要几百k字节RAM以上。
1.ucos则不具备,需要通过第三方图形界面系统来弥补,如:uc/gui,emWin. 1.Linux具有良好的用户界面,包括用户界面shell,和系统调用界面。
1.UCOSii广泛应用与工业控制中,单片机领域中,有线数字电视领域机顶盒设计中,移动通信终端领域等。 1.linux广泛应用在服务器领域,在桌面应用方面也达到了一定水平。
1.ucos还支持一些比较好的机制,如信号量,用以实现任务与任务之间,任务与中断服务程序之间的同步和互斥问题;消息队列,用以实现任务间的缓冲通信;邮箱,一种低开销的传送信息机制;
2.优先级继承协议和天花板协议,用以解决任务调度是阻塞的问题。
3.标准的ucos无输入输出管理,没有网络服务
1.linux还具有设备的独立性,将所有外部设备统一当做文件来管理。新增设备只需在内核中增加必要的设备驱动程序。这也使得linux具有较好的适应能力

以上只是做了较为简单的共性对比,没有具体说明Linux的优势及其复杂性。望大家指正交流。

我要回帖

更多关于 机顶盒红外接收头 的文章

 

随机推荐