ucos多任务与linux进程、多线程的比较分析

版权声明:本文为博主原创文章,转载请注明链接,[email protected],欢迎交流 https://blog.csdn.net/liboxiu/article/details/81902333

从最初使用51片机,再到avr、msp430,arm7、arm9裸机,单片机的处理速度越来越快,而产品需求的日新月异,在硬件成本、功耗、体积以及开发周期等的限制下,开发人员倾向于挖掘mcu的各种潜能。实时性多任务就是其一吧。
多任务的重要性不必多说,就相当于一个人同时右手画方左手画圆,想想都觉得牛逼,我办不到,但是用片mcu编程序却可以实现。当然,对于单核的mcu来说,不存在完全的实时多任务,它的实时性只是短时间的任务间切换让任务几乎同时进行,给人的感觉是实时多任务。
ucos的多任务跟linux进程的概念类似,举个例子,mcu的任务1:gprs通信;任务2:AD采集;任务3:蓝牙通信;任务4:3D传感器、陀螺仪。。。。。等,每个任务都是一个独立的功能,这像linu下的进程。但是程序流程控制更简单,ucos任务的执行、杀死,多任务的协同,内存管理,再看看互斥量、信号、邮箱、消息队列,熟悉吧,这简直就是linux多线程。 这里只是简单说说,做个标记。
学习linux和ucos很类似,别钻进源码出不来,喜欢搞的很深的童鞋别忘了老板交给你的活哈,有时间慢慢体会。善于运用API函数,根据源码的数据结构,变量定义等风格,改变裸机那种一马平川的代码堆砌会收获较大。 对于工程开发人员,针对不同的产品和应用,工具的应用熟练到一定程度,深入理解、测试、评估一下芯片、系统的极限性能,如中断耗时,任务是否会发生死锁、是不是会发生优先级翻转等,自勉。

猜你喜欢

转载自blog.csdn.net/liboxiu/article/details/81902333
今日推荐