ucos-ii操作系统的优异性能我就不说了,因为专家们说的太多了。非要说的话,只能是狗尾续貂。
我就说说自己对学习ucosii操作系统的一点学习心得。对我而言--非计算机专业的人刚开始接触操作系统是多么的痛苦,毕竟自己的c语言知识全靠自学得来的,况且对汇编语言几乎是一窍不通!学完51单片机以及编程后,曾对朋友吹嘘:c语言至少可以考70分(满分100),那时信心是何其饱满!如今自叹:c语言顶多能考50分(满分100)!
没办法,再难也得学啊!谁叫咱爱上这一口了呢?硬着头皮看呗。资料太多了,简直就是汗牛充栋!管他呢,一篇篇的先过一遍,管他懂不懂。通过对几乎3G内容的过滤,最终确认《嵌入式实时操作系统ucosii原理及应用---任哲》不错,篇幅适中,通俗易懂(相对其他资料而言);江湖中人都说邵贝贝老师的书不错,可是我觉得版本太老;另外,《北京航空航天大学ucosii操作系统讲义》真的不错!很对我的胃口!把它和任哲的资料结合起来学习是不错的选择!另外再结合钟常慰老师的《ucosii中文注释版》学习,也是不错的选择!再用MDK3.8编译器打开“原子”老师的有关ucosii例程配合以上资料就妥了!
学习ucosii,还先得说说自己学会移植的过程。要学习操作系统,不会移植这是一个大问题!在网上查阅了大量基于stm32的移植方法资料,可惜说的都不够详细;没办法,自己就在自己的例程基础上尝试移植,失败过好多次!后来就和原子的例程对比,不断编译尝试,终于ok了!终于在自己的工程模板上编译通过了!现在回想,多么弱智的问题,搞得这么苦?!学习就是这样,由许多这样弱智和痛苦的问题构成的。
数组,结构体,堆栈,链表,内存管理,指针函数,个个是问题!毕竟自己没有学过《数据结构》啊!关键是“堆栈,链表”学习51单片机时就没有接触过,一点点百度和上论坛求仙人指教呗。至今,还没有完全搞懂“堆栈,链表”是什么,只知道是一种数据结构用来存储数据。
读书百遍,其义自现,通过对《北航》和《任哲》的资料不断反复地学习和阅读,终于对ucosii有感觉了。ucosii的核心就是任务的创建和调度。任务控制块,事件控制块,任务就绪表,ISR,信号量,邮箱,队列等等一切皆为“任务”服务。
终于可以在别人的例程尝试加入自己的代码了;先是简单的任务调度,实验---下载--失败---成功,就这样轮回。
脑子不能闲着,要想问题!用实时操作系统有什么好处呢?很多工程不用实时操作系统不是一样好用吗?我个人认为,对于代码量和任务不大尤其是程序中延时较少的任务还是不用操作系统的好,没必要把简单的事情搞复杂了!对于任务量很大且实时性要求高的任务或要结合嵌入式图形界面GUI的项目就一定要用操作系统了。假设在代码量和任务量很大且延时和中断较多的工程中,要实时捕获采样外部信号用以实时控制执行机构,这样如果还用传统的大循环编程方式肯定就不行了,只能用操作系统!利用操作系统可以提高系统的稳定性和可靠性以及实时性。
年纪不小了,学习的路还很漫长。要学的东西实在太多!学习本该是件很享受的事情,然而生活却不享受!真的想说,自学,尤其是自学专业性很强的知识真的很辛苦好寂寞;为此,我要向那些坚持自学,寂寞并痛苦着的同仁致敬!
本文(甚至称不上“文”)只是学习心得,随笔而已。涉及到的专业知识很少!
后记:
两年多来,一直想写点关于学习心得方面的东西。最近以来,由于工作上受到的挫折太多了,一种挫败感如影随形一直折磨着我;好了,没什么大不了的,今天终于坐下来写了这些文字。
关键字:ucosii 操作系统 c语言
引用地址:
学习ucosii操作系统的一点心得
推荐阅读最新更新时间:2024-03-16 14:00
2019-2020年汽车操作系统发展现状和趋势
智能座舱和智能驾驶的发展,特斯拉的突飞猛进,让主机厂越来越重视汽车操作系统。 智能汽车的底层软件研发绝非易事,对于新兴造车者,还是传统主机厂,都需要迈过数不清的坑,经历一次又一次的发布推迟。 佐思汽研在《2019-2020 年全球与中国汽车操作系统研究报告》中对比和分析了国内外汽车操作系统相关厂商的发展现状和趋势。 报告中将广义的“汽车操作系统”分为四类: 1)基础汽车操作系统:指汽车底层操作系统,如 AliOS、QNX、Linux 等,包含所有的底层组件,如系统内核、底层驱动等,有的还包含虚拟机。 2)定制型汽车操作系统:指在基础型操作系统之上进行深度定制化开发(包括系统内核修改),最终(Tier1 和主机厂一起
[嵌入式]
风河稳居边缘计算操作系统市场第一
新闻亮点 • VDC Research的最新报告显示,风河公司依然保持边缘计算操作系统市场领先地位 • 风河在实时操作系统和商用嵌入式Linux市场继续保持全球市场第一 • 各行各业领先企业越来越关注软件定义的未来,而Wind River Studio则满足了边缘计算市场不断发展的需求。 全球领先的关键任务智能系统软件提供商风河公司继续保持其在嵌入式实时操作系统(RTOS)和商用嵌入式Linux市场第一地位,再次由最新发布的VDC Research报告所确认。此项排名的依据是风河公司推出的边缘计算操作系统平台,包括VxWorks®、Wind River Helix Virtualization Platf
[嵌入式]
简单的51单片机多任务操作系统(C51)
在网上看到这段代码,所以自己尝试了,可以跑起来,但是没有精确的定时功能,仅仅是任务的调度而已。 数组中是11,而不是12。这里写错了。。。 /* 简单的多任务操作系统 其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说, 简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家. 这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅20个机器周期, 也就是在标准51(工作于12M晶振)上20uS. 而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈,而占用了较多的内存. 作为补偿,多任务更容易安排程序逻辑,从而可以节省一些用于控制的变量. 任务槽越多,占用内存越多,但任务也越
[单片机]
互联网三巨头布局手机操作系统 抢夺未来市场
7月5日,随着阿里巴巴研发手机操作系统信息的曝光,中国互联网的三大巨头已经悉数进入手机操作系统研发领域,意欲复制其在PC互联网端的优势。 昨日,知情人士透露,阿里巴巴集团旗下子公司阿里云计算有限公司正在开发一款计划于第三季度发布的移动操作系统。而来自阿里云内部的消息称,从去年开始,阿里云开始广泛招募手机端的工程师,并低调成立“天云”项目,专门从事手机端应用等的开发,目前上述团队人数已经达到数百人。 上述知情人士向搜狐IT披露,阿里巴巴集团将把各个子公司开发的客户端以及阿里云开发的移动客户端整合到手机操作系统中,这其中包括手机旺旺、支付宝无线,也包括正在内测的输入法、浏览器等应用,而这一操作系统是基于Android进行的再开发
[手机便携]
我们用C语言写的单片机程序存在哪
首先,我们看看ram与rom的特点与区别: RAM速度比Rom快,但断电后信息就消失; ROM速度比RAM慢,但断电后信息还存在; 一般而言,RAM可以随时写入信息,ROM不可以随时写入,当然像Flash Rom之类是可以随时写入的。 综上,我们会把程序存入ROM中,这样程序就一直存在。 例如,我所用的zigbee协议栈中的代码量统计情况如下: **************************************** * *
[单片机]
ARM-bootloader-C语言环境设计
一、栈初始化 1、概念解析 1.1栈 栈是一种具有后进先出性质的数据组织方式,也就是说后存放的先取出,先存放的后取出。栈底是第一个进栈的数据所处的位置,栈顶是最后进栈数据所处的位置。 1.2满栈和空栈 根据SP指针指向的位置,栈可以分为满栈和空栈。 1、满栈:当堆栈指针SP总是指向最后压入堆栈的数据 2、空栈:当堆栈指针SP总是指向下一个将要放入数据的空位置 ARM采用的是满栈 1.3、升/降栈 1、升栈:随着数据的入栈,SP指针从低地址- 高地址移动 2、降栈:随着数据的入栈,SP指针从高地址- 低地址移动 ARM采用的是降栈。有时候我们会说ARM采用的是满降栈。 1.4、栈帧
[单片机]
单片机C语言延时需注意的问题
标准的C语言中没有空语句。但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果。这在汇编语言中很容易实现,写几个nop就行了。 在keil C51中,直接调用库函数: #include // 声明了void _nop_(void); _nop_(); // 产生一条NOP指令 作用:对于延时很短的,要求在us级的,采用 _nop_ 函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。 在选择C51中循环语句时,要注意以下几个问题 第一、定义的C51中循环变量,尽量采用无符号字
[单片机]
嵌入式操作系统的通用硬件抽象层设计
摘要 基于嵌入式操作系统硬件抽象层理论,设计一种用于嵌入式操作系统内核开发的通用硬件抽象层平台。通用硬件抽象层能够为嵌入式操作系统内核的设计开发屏蔽硬件平台的特性,提供统一的硬件相关的服务接口,可以使嵌入式操作系统内核的设计开发不依赖于特定的硬件平台,同时开发的嵌入式操作系统内核具有更强的可移植性。
关键词 嵌入式操作系统 通用硬件抽象层(HAL) BSP V开发模式
引言
为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将底层与硬件相关的部分单独设计成硬件抽象层美国微软公司提出了将操作系统底层与硬件相关的部分单独设计成硬件抽象层HAL(Hardware Abstraction Layer)的思想。硬件抽象层
[嵌入式]