操作系统篇:μC/OS-II
文章平均质量分 83
fovwin
Master
展开
-
C语言实现队循FIFO缓冲区-《30天自制操作系统》
本代码整理自《30天自制操作系统》P135的整理FIFO缓冲区写的很好,所以记录一下(增加了一个fifo8_free函数,用于查询剩余容量,觉得有用)。作者实现的是char类型的缓冲区,但是可以用你要传的任意结构体来替换~~~fifo8.h/*溢出标志:0-正常,-1-溢出*/#define FLAGS_OVERRUN 0x0001/* buf- 缓冲区地址转载 2012-10-30 16:51:24 · 17149 阅读 · 4 评论 -
实时操作系统概述(推荐)
一 实时操作系统概述1 操作系统概述在计算机技术发展的初期阶段,计算机系统中没有操作系统(Operating System)这个概念。应用程序开发人员都要对处理器和硬件进行彻头彻尾的控制。实际上,第一个操作系统的诞生,就是为了提供一个虚拟的硬件平台,以方便程序员开发,同时提高计算机的资源利用率。为实现这个目标,操作系统只需提供一些较为松散的函数、例程――就好象现在的软件库一样――转载 2013-09-03 22:13:24 · 21894 阅读 · 3 评论 -
从μC/OS-II到μC/OS-III的各种改进
宫辉,龚光华,黄土琛1. 清华大学工程物理系,北京 100084;2. 清华大学粒子技术与辐射成像教育部重点实验室编者按: μC/OSII对我国嵌入式实时操作系统的普及与推广起到了十分积极的作用,在嵌入式系统教学、研究以及开发应用等方面颇有影响。2011年8月,μC/OSIII的源码在Micrium网站上公开,《μC/OSIII The Real Time Kernel转载 2013-09-03 22:02:15 · 6598 阅读 · 0 评论 -
μC/OS-II实验:实验五 内存管理
实验描述:涉及的μC/OS-II系统函数:实验代码: app.c1234567891011121314151617181920212223242526272829303132333435原创 2013-08-18 20:48:30 · 3581 阅读 · 0 评论 -
μC/OS-II实验:实验一 任务的基本管理
实验描述:涉及的μC/OS-II系统函数:实验代码: app.c123456789101112131415161718192021222324252627void Task0(void* pdat原创 2013-08-18 20:48:17 · 3945 阅读 · 1 评论 -
μC/OS-II实验:实验二 优先级反转及解决方法
实验描述:占有资源的低优先级不能主动放弃CPU,不然优先级肯定反转。涉及的μC/OS-II系统函数:实验代码: app.c1234567891011121314151617181920212223242526272829原创 2013-08-18 20:48:20 · 5645 阅读 · 1 评论 -
μC/OS-II实验:实验四 消息队列
实验描述:在本实验中,设计了 6 个普通应用任务:TA0(优先级为 20)、TA1(优先级为 21)、TA2(优先级为 22)、TA3(优先级为 23)、TA4(优先级为 25)、TA5(优先级为 26),以及一个控制任务 TaskCon(优先级为 19)。uC/OS-II 中,等待消息的任务总是按照优先级的高低来决定获得消息的顺序的 等待消息的任务总是按照优先级的高低来决定获得消息的原创 2013-08-18 20:48:27 · 4422 阅读 · 0 评论 -
μC/OS-II 的任务调度算法分析
任务调度是一个操作系统最核心的部分,μC/OS-II 通过三步走来完成这个过程。1) 从就绪表中获得就绪任务的最高优先级:OSRdyTbl[],OSRdyGrp,OSMapTbl[],OSUnMapTbl[]2) 获取最高优先级就绪任务的任务控制块:OSTCBHighRdy = OSTCBPrioTbl[OSPrioHighRdy]3) 启动任务切换:OS_TASK_SW()原创 2013-08-06 20:10:18 · 5533 阅读 · 0 评论 -
μC/OS-II实验:实验三 信号量: 哲学家就餐问题
实验描述:五个哲学家任务(ph1、ph2、ph3、ph4、ph5)主要有两种过程:思考(即睡眠一段时间)和就餐。每个哲学家任务在就餐前必须申请并获得一左一右两支筷子,就餐完毕后释放这两支筷子。五个哲学家围成一圈,每两人之间有一支筷子。一共有五支筷子,在该实验中用了五个互斥信号量来代表。如下图所示:涉及的μC/OS-II系统函数:实验代码: app原创 2013-08-18 20:48:24 · 6249 阅读 · 0 评论 -
μC/OS学习资料(附Ebook)
μC/OS-各版本源码《嵌入式实时操作系统μC/OS-II》《嵌入式实时操作系统μC/OS-III》《μC/OSII2.52源码中文译注-钟常慰 》μC/OSII教程:东软UCOS-II教程第五讲实时操作系统mC/OS-Ⅱ分析-北航uCOS-II源码分析顺序μC/OS移植:原创 2013-08-18 20:48:12 · 3460 阅读 · 5 评论 -
μC/OS-II 的任务调度算法扩展之两种任务数扩充
对μC/OS-II 的任务调度算法进行改进,介绍两种对其最大任务支持数进行扩充的两种方法,在这里可以看到空间和时间的权衡,即鱼与熊掌不可兼得。原创 2013-08-06 20:10:23 · 2145 阅读 · 0 评论 -
Linux内核源码分析方法
一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多接触其他人编写的代码,尤其是水平比我们更转载 2013-04-25 22:21:20 · 1224 阅读 · 0 评论 -
进程与线程的一个简单解释
来源:阮一峰进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,转载 2013-04-25 22:18:31 · 818 阅读 · 0 评论 -
C函数之strtok使用及Win & BSD实现
这几天在学习TCP/IP Sockets in C(2nd) Practical Guide for Programmers,在学到如何确认Client和Server之间的数据传输时是一段数据的begin和end时,作者讲了两种方法:第一种:每次传固定长度的数据,当然多长你要在Client和Server之间协调好。第二种:规定begin和end的token-标记,(当然你传的数据要是出现你原创 2013-03-10 20:26:33 · 1383 阅读 · 1 评论