对于使用RTX51的具体好处可以在实践中去体会,就象会用了C51,就
不想再用汇编了。用了RTX51,说不定就感到再也离不开它了。

1。RTX51是实时多任务操作系统
RTX51是一种实时操作系统既目前在IT媒体中经常看到的很时髦的RTOS。
也可以叫做实时内核。它主要解决嵌入式系统的两个重要问题:
实时性和多任务。

2。不用实时内核的系统叫前后台系统
现在大家在单片机系统中编程还是习惯于从零开始,所有要做的事和整
个系统管理都要考虑到。这种方式也叫做前后台系统。一般整个程序为
一个无限循环。在环中调用相应的函数完成相应的任务。这是后台行为。
时间苛刻的任务肯定要靠中断完成,这是前台行为。由于中断服务程序
应尽可能短,一般在事件发生时,做一些紧急处理和相应的标记后就要
退出中断服务程序,以后的事情由后台程序按照先后顺序依次完成。任
务的轻重缓急,谁先谁后的任务调度都要考虑好。对于任务多,实时性
强的系统这样的程序编起来就比较费时费力。

3。RTX51是51单片机的“Windows”
RTOS是系统中的“管家”,它替我们考虑如何进行任务间的切换,并保
证实时性,我们只集中精力去考虑如何去做每一件要做的事
。毕竟RTOS
是计算机专家的研究成果,他们考虑的问题要比我们周到。PC机需要
“管家”Windows,8051系列单片机也可以找“管家”。RTX51就是我们
单片机的一个“管家”。简单的说,RTX51就是51单片机的“Windows”。
当然Windows的实时性不好,它还算不上RTOS

4。要准备掏钱
请“管家”是要代价的,从占有系统资源方面说,“小管家”RTX51-Tiny
要占900字节的ROM和7字节DATA RAM以及3倍任务数的IDATA RAM。“大
管家”RTX51-Full当然占的系统资源就更多了。从投资来说,买带
RTX51-Tiny的Keil-C51开发系统比不带的要贵几千块钱。RTX51-Full要
单买,需2万多元。

5。使用RTX51不算难
用RTX51编程是一种新的编程思路和方法,会C51编程学习起来应该不难
简单来说就是把一些函数以任务task的形式出现,很多函数还是原来的
形式
。但要了解RTX51的工作机理和掌握它提供的系统函数。

6。非要用RTX51吗
就象单片机系统编程是用C51好还是汇编好的争论长期不休一样,用RTX51
还是不用肯定也会有争论,毕竟用RTX51要付出更大的代价。争论的原因
我想主要是没有前者,用后者也能实现目标。特别是RTX51-Tiny,只适用
于8951,8952这种没有外部存储器扩展的单片机系统,程序复杂程度冲其
量也就8K。对于PC,我想没有人会说他既不用Windows,也不要DOS,自己
都玩的转。
我的观点是只要有新东西就应该去尝试,只要你的公司不是在起步阶
段资金特别紧张,或公司处于低谷快发不出工资,作为老板就应该舍得投
资,作为员工就应积极鼓动上新东西。毕竟有个开发速度和效率是高投资
的最好回报。即使是RTX51-Tiny,用了也比不用好。
从另一个角度看,RTX51-Tiny投资最少,也最容易学,先从RTX51-Tiny入
手,然后用RTX51-Full,逐步熟悉和掌握RTOS,当你有机会开发ARM,X86,
PowerPC这样的系统时,没有RTOS可是不可能的。
我坚信古人说的一句话;“工欲善其事,必先利其器”。

【转载】纵观RTX51的更多相关文章

  1. 转载文章----初识Ildasm.exe——IL反编译的实用工具

    转载地址http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662307.html Ildasm.exe 概要:(路径:C:\Program ...

  2. (转载)可重入函数(reentrant function)

    (转载)http://blog.163.com/xu_jin_rong/blog/static/1491966220086775017178 由于cublog系统的缘故,将前段时间写的一篇blog文章 ...

  3. 【转载】Stack Overflow: The Architecture - 2016 Edition

    转载:http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi?utm_source=tuicool&utm_ ...

  4. 转载Liferay PortletPreference store()方法研究

    我们对于PortletPreference 的store()用的非常广泛,很多情况下,我们一般对其进行一些设定,然后最后调用store()存储之,类似以下代码: PortletPreferences ...

  5. Keil5创建基于RTX的STM32工程(转载+自己的体会)

    转载自:https://blog.csdn.net/u011976086/article/details/54342447#commentBox 之前使用过ucos,freertos,但是这个keil ...

  6. Fluent 时间步长【转载】

    转载自:http://blog.sina.com.cn/s/blog_4ada3be301011rjp.html 用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要 ...

  7. 【Spring】Spring AOP详解(转载)

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

  8. Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)

    作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...

  9. RTP与RTCP协议介绍(转载)

    RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...

随机推荐

  1. springMVC中如何访问WebContent中的资源文件

    一.问题: 我的工程目录如下: WebContent |-css |-js |-imgs |-META-INF |-WEB-INF |-jsp |-login.jsp 如何在login.jsp中引用i ...

  2. workerman定时器使用 php定时任务

    add int \Workerman\Lib\Timer::add(float $time_interval, callable $callback [,$args = array(), bool $ ...

  3. 【2018年12月14日】A股最便宜的股票

    新钢股份(SH600782) - 当前便宜指数:193.12 - 滚动扣非市盈率PE:2.91 - 动态市净率PB:0.96 - 动态年化股息收益率:1.75% - 新钢股份(SH600782)的历史 ...

  4. position absolute定位之所属的containing box

    http://www.w3.org/TR/CSS2/visudet.html#containing-block-details http://www.zhihu.com/question/199267 ...

  5. php单元测试断言方法

    1.assertArrayHasKey() 用法:$this->assertArrayHasKey('foo', ['bar' => 'baz']); 等同于array_key_exist ...

  6. SqlServer当前月份时间

    SqlServer当前月份时间 SELECT -DAY(getdate()+-DAY(getdate()))

  7. Go之继承的实现

    go的继承是使用匿名字段来实现的 package util //----------------Person---------------- type Person struct { Name str ...

  8. MyBatis入门程序之表关联

    一.一对一查询(ResultType比较简单,只需要指向扩展的类:ResultMap逐个匹配比较麻烦,可以配置属性autoMapping="true",还可以可以实现延迟加载) 1 ...

  9. Explaining Delegates in C# - Part 5 (Asynchronous Callback - Way 2)

    In this part of making asynchronous programming with delegates, we will talk about a different way, ...

  10. Handler基本用法

    片断一:mHandler = new Handler();mRunnable = new Runnable() { @Override public void run() { currentPosit ...