自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 基于raw os 的事件触发系统

Raw os的事件触发系统有以下特点: 1 基于UML的状态机理念设计,实现了有限状态机(fsm)以及层次状态机(HSM)。 2 实现了活动对象(ACTIVE OBJECT)的特性,一个活动对象包含了一个消息队列以及一个状态机。活动对象是具有优先级的,这样任务的实时性能够得到保证。消息队列的设计能够保证即时信号不丢失。 3活动对象(ACTIVE OBJECT)一共有64个优

2013-06-17 11:46:00 3973 2

原创 关于国内实时操作系统的接口标准统一

目前国内的实时操作系统正在如春天般的万物发展趋势一样,充满蓬勃生机。但是多数情况下,各自为战,开发的软件大家得不到有效的共享。有的时候某位作者开发出来了协议栈,但是其他作者却无法使用,或者要使用带来了很大的难度。 协议栈的移植究其根本从3方面考虑来移植。 1  完成协议栈底层驱动的接口。 2  对编译器的移植。 3  对操作系统的接口移植。  对于驱动接

2013-06-03 13:51:14 2898

原创 rtos之消息系统

消息系统是任务与任务之间通讯的最重要的手段。首先第一个问题是,为什么需要消息系统?对于任务与任务之间全局变量是共享的,是不是可以通过维护全局变量来实现任务之间的通讯呢? 任务和任务之间的地址空间是可见的,通过全局变量去通讯的话,也是无可厚非的。关键问题是通过全局变量的通讯很复杂,根本无法去维护,必须有一个手段把最底层的全局变量这些逻辑封装起来。这样就产生了消息机制。在操作系统中最常见的消息机制

2013-02-20 12:04:48 1905

原创 纪念亡狗阿犬

一条狗的命有多长,根据我的经验可以有15年左右,因为有这样一条狗陪伴了我15年,它的名字叫阿犬,是一只黑白相间的哈巴狗。常言道人生苦短,其实狗命更短。自从孩提时代,貌似幼儿园开始就开始养狗,养的狗多是那些体型很大的狗,称之为草狗,现在想想应该是肉狗。多是迷失在路边,给了点吃的,就一路跟随到家,在一起了。此种路狗本性不行,有了家还游荡在外,往往一个月不到又消失了,过了几个月看到路边又出现了这条狗

2013-02-09 18:37:57 1864 2

原创 中断上下半部原理以及实践

中断一般可以分成上半部以及下半部,所谓中断上半部cpu通常是关中断的,这个时候主要是从硬件那里接收一些数据,然后触发中断下半部。一出中断后,根据相应的中断下半部的优先级去执行相应的中断下半部。中断下半部主要用于数据的处理,这个时候中断往往是打开的。为什么要有中断上下半部的原因主要有两点:1 如果中断函数内处理的事情非常多的话,因为这个时候cpu 是关中断的,这样会无法及时相应其它的中断,对实时

2013-02-07 12:07:37 1350

原创 中断上下半部原理以及实践

中断一般可以分成上半部以及下半部,所谓中断上半部cpu通常是关中断的,这个时候主要是从硬件那里接收一些数据,然后触发中断下半部。一出中断后,根据相应的中断下半部的优先级去执行相应的中断下半部。中断下半部主要用于数据的处理,这个时候中断往往是打开的。为什么要有中断上下半部的原因主要有两点:1 如果中断函数内处理的事情非常多的话,因为这个时候cpu 是关中断的,这样会无法及时相应其它的中断,对实时

2013-02-06 18:21:17 1592

原创 raw os支持的内存分配种类

内存管理往往是一个复杂的过程,raw os 目前支持5种内存分配方法,分别是block,byte,page,malloc,slab。以下会讲解这5种基本原理以及适用场合。这5种里面只有block和slab 是没有内存碎片的,其余的都会有一定的内存碎片。这5种里面只有block和byte能用于中断内内存分配,推荐使用中断内采用block内存分配。 block内存分配顾名思义是一块块的分配内存

2013-02-03 21:32:48 1657 2

原创 raw os究竟可以多小?可以多快?

由于raw os 针对市场是目前中低端的cpu,所谓的中低端cpu 一般以arm 9 划分,arm9 级别的或者类似速度的cpu 为中端cpu, 以上的比如arm 11为高端cpu, 以下的为低端cpu,比如cortex-m0,cortex-m3,cortex-m4等等。 rawos的市场既然已经决定在中低端cpu, raw os 力争做到世界上所有实时操作系统之中的体积最小以及速度最快者。基

2013-02-03 10:33:04 4020

原创 实时操作系统主流调度方法RMS

操作系统的调度方法有很多种,这里主要介绍主流的调度算法,像EDF这种调度算法就不表述了。目前几乎所有的商业实时操作系统的调度理论都基于RMS理论.以下是基于RMS的一些假设理论:1 各个任务之间没有资源共享,没有忙等,没有mutex, 也没有semaphore.2 每个任务的最后期限是周期性的。3 基于优先级抢占的,即高优先级任务一旦就绪的话,会立马抢占低优先级任务。4 任务优

2013-02-02 12:35:03 7641 2

原创 临界区问题的产生一

临界区问题是嵌入式软件编程一个不得不面对的关键性问题。特别对于底层驱动,代码在内存中只有一份,上层的多任务或者多进程,都会对同一个驱动去访问,这样不可避免的遇到了任务之间打架的问题,处理好这个问题是区分一个菜鸟和老鸟的根本性关键之一。接下来谈谈临界区产生的原因:假设有以下代码:int x; void process_data(){ x++; }假如在一个

2013-02-01 11:03:39 2613

原创 前后台系统的优缺点

前后台系统的架构用一句话来形容的话,就是一个大的循环,加上中断,就形成了一个整的体系。具体的流程图如下:可以看到图里面处理了模块功能3 之后又返回处理模块功能1.一般的单片机系统大多是采用了此种模式编程,优点是简洁,明了,新手的上手速度很快,特别是专注用来做一件事情的时候,一个while循环基本是无敌的。比如实现一个i2c slave ,完全可以用一个while 来模拟实现

2013-01-31 14:07:14 6488 1

原创 raw os基于vc++ 的仿真模拟环境二

基于VC仿真的操作系统以及协议栈的模拟好处是很多的,众所周知在VC 上仿真应用程序是相当容易的,debug 等更是支持的非常的完美,而且有广大的用户群体,所以基于VC 的仿真是一个很切实际的事情。 VC 的版本选择最终考虑了vs 2010 或者更高的环境,比如vs 2012, 这样做的好处是跨平台。Winxp 和win 7 等都兼容。 操作系统是一个纯软件的结合体,如果要让一个操作

2013-01-30 17:30:33 1878 1

原创 关于开源火种

近来发现陆陆续续有个人以及公司技术人员在开始尝试用raw os 做项目,虽然刚起步但是非常难能可贵。希望更多的个人或者公司大胆的使用raw os, 有以下好处: 1 一个高效的实时操作系统2 免费的技术服务。一切使用raw os 做项目或者产品的公司技术人员,本人免费帮助设计软件架构,只限于网上在线支持或者联合调试。软件架构包括系统的移植,内核的裁剪,任务的划分,优先级的确定,

2013-01-29 20:19:14 1549 1

原创 raw os 存在的理由

很多人一直会问一个问题,世界上有这么多的RTOS存在,有开源的也有收费的。为什么还需要写一个RTOS, 2012年之前我也不断问自己这个问题。我是这样认为的世界上的确有很多RTOS,但是目前国内的RTOS并不多,能在国际上有影响力的更少。如果说能够承上启下,融合众多世界上众多RTOS 的优势,加以创新糅合,或许可以创造一个全新的RTOS. 一个实时系统的推出,需要有以下几点考虑因素。

2013-01-29 15:22:18 2800 4

原创 系统最大关中断时间为0us的原理

raw os 采用了特殊的机制, 可以降低整个系统的最大关中断时间无限接近0us.其主要实现原理是原先系统关中断的地方改为关抢占,这样就可以把系统最大中断时间降为最低了。 读者可以看到RAW_CRITICAL_ENTER()的实现有两种实现方式,第一种是传统的关中断形式:#define  RAW_CRITICAL_ENTER()                     RAW_CP

2013-01-28 17:49:28 2349

原创 raw os 之状态机编程

状态机编程的历史很可能久于传统的操作系统, 传统的一个大while 循环模式普遍用到了状态机模式编程, 状态机一般是基于fsm 的有限状态机,或者更先进点的是hsm 分层的状态机。具体的fsm 以及hsm 状态机的概念读者自行参考有关概念学习,这里不再表述。推荐看Practical UML Statecharts in c/c++这本书。raw os的状态机理念,很大部分参考了它,和著名的面向

2013-01-27 16:48:43 1959 2

原创 raw os基于VC环境的模拟

raw os 的整套环境都是能在vs 2010 或者更高的版本上模拟的,不选择BC编译器的原因是,这个编译器太老了,是基于16位的编译器,在x86 上不太实际。还有就是有很多的bug, 厂商早已经放弃数十年,所以选择一个通用性强的编译器是明志的选择。无疑VS2010 是一个很好的模拟平台。 Vs 2010 模拟平台的好处是debug 非常方便,是一个学习的好帮手,事实上raw os 的

2013-01-26 23:03:49 1646 2

原创 关于mutex 锁

mutex的出现是为了解决优先级反转的问题,由于优先级反转对实时性影响太大,所以mutex 的稳定性直接影响了实时性。纵观目前多种实时操作系统mutex 的设计原理是多多少少有一点问题的,raw os 的mutex 模块成功弥补了其它实时系统在这方面的不足。raw os 的mutex同时支持优先级置顶和优先级继承的方式来解决优先级反转的问题。raw os 的mutex比较其它实时系统,比如

2013-01-26 19:29:34 2507

原创 关于raw os 的强实时性

rawos 由于采用了特殊的系统处理方式,可以把系统最大关中断时间降到0us.影响一个系统实时性最客观的参数是其系统的最大关中断时间。 在2440 板子上空跑一个实时操作系统的话,vxworks 的官方系统最大关中断时间为6us 以上, ucos 的话可以达到20us以上。但是raw os 是0.8us.所以其实时性毫无疑问是超越这些系统的。 中断的处理对于实时性的提高也是

2013-01-26 16:05:48 2090

原创 raw os 的操作系统特性

Raw-OS 操作系统特性内核最大关中断时间无限接近0us, s3c2440系统最大关中断时间实测0.8us。支持idle任务级别的事件驱动,基于状态机机制(fsm+hsm),所有idle 级别的事件任务共享一个栈!支持轻量级线程protothread。支持普通任务级别的状态机和事件驱动机制。支持tasklet以及workqueue,轻松降低系统最大

2013-01-26 12:09:00 1435 2

原创 关于高效实时操作系统原理以及实践的书

高效实时操作系统原理以及实践 大致具体的书的内容:(初定义,会不定时修改)1 raw os基于vc++ 的仿真模拟环境Vc 仿真有什么好处?运行一些具体的实例。(lwip 协议栈, ucgui) 2 RTOS 原理前后台系统的优点以及缺点。为什么需要RTOS?什么是实时性?评价一个实时系统的主要参数是什么?临界区问题的产生,以及解决方法。优先级反转问

2013-01-26 11:15:20 2371 7

原创 Raw os一周年心路

2012 年的1月15号终于鼓起勇气来写实时操作系统,这样的想法曾经在10年前刚接触RTOS的时候就有一种冲动。只是现实不断地把朦胧和冲动给埋没了。很多次冲动写的时候,总有一个疑问闪现,世界上有这么多的RTOS,有开源的也有收费的,写他有何意义?这个问题不断地责问自己,自己实在是找不出任何理由去驳斥它。时间飞快,转眼到了2012年,似乎软件上所有该学的全都学了,人生再无追求。这个时候冲动再

2013-01-26 10:58:05 2155 9

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除