桌面操作系统的研究开发指导思想是尽可能在不改变自身的前提下具有广泛的适应。也就是说:不论应用环境怎么变化,好都不要对自身内部产生什么影响,也不要求自身做太多的变化。反过来,应用于嵌入式环境的RTOS,在研发的时候就必须立足于改变自身、开放自身,让开发可以根据硬件环境和应用环境的不同而对操作系统进行灵活的裁剪和配置,因为对于任何一个具体的嵌入式设备,它的功能是确定的,因此只要从原有操作系统中把这个特定应用所需的功能拿进来即可。
应当指出的是:如果一个操作系统平台只能依靠手工的方式去掉一些代码,这根本就不是可裁剪。所谓可裁剪是在软件工程阶段利用软件配置方法实现软件构件的“即插即用”。
可裁剪带给用户的一个直接的好处是硬件成本降低,这对于成本敏感的应用,如消费电子类设备,具有重要的现实意义。由于设备中只包含应用程序用到的那部分操作系统功能,这就使得系统变得简单、易把握,从而提高系统的可靠。
到位——实时
许多人都把实时理解为速度快。那么,速度快到什么程度才算是达到实时呢?其实,所谓实时,其核心含义在于确定,而不是单纯的速度快。也就是说,RTOS所要求的是在规定的时间内做完应该做的事情,并且操作系统的行为(执行线索)是确定的,这是写出高可靠程序的基础。如果完成同样的动作,有的时候快,有的时候慢,且执行线索千差万别,程序员无法把握,可靠就无从保证。
嵌入式系统为什么对实时要求那么高呢?因为嵌入式系统主要是对仪器设备的动作进行监测控制的,而一般的桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作。相对而言,仪器设备的动作具有严格的、机械的时序要求,而人的动作和反应在时序上并不那么严格。比如,用于控制火箭发动机的嵌入式系统,它所发出的指令不仅要速度快,而且多个发动机之间的时序要求严格,否则就会差之毫厘、谬之千里。在这样的应用环境中,非实时的普通操作系统无论如何是无法适应的。
如果我们所开发的设备并不是像航空航天器那样生命攸关或者生产控制那样的关键任务系统,而是像消费电子类那样,即使出现错误也不会造成灾难后果的设备,那么实时(严格地讲是确定)是否还具有现实意义呢?答案是肯定的!设备的高可靠可以有效地降低维护成本;软件运行效率高也会降低对的要求,从而降低硬件成本。对于消费电子产品这类价格十分敏感的产品,实时、可靠仍然是值得重视的问题。
坚如磐石――可靠
桌面操作系统与RTOS相比,另一个差别就是对于稳定、可靠方面的设计思路。一方面,桌面操作系统比较庞大、复杂,而RTOS比较小巧、简捷,而“越简单、越可靠,越复杂、故障概率越大”这又是一个常理。另一方面,更重要的是:桌面操作环境与嵌入式环境在设计思路上有一个重大的不同——桌面环境假定应用软件与操作系统相比而言可以是不可靠的,而嵌入式环境假定应用软件与操作系统一样可靠。
Vickers Flow Control Valve Model# FCG 02 1500 50 Refurb
Allen Bradley 2711-NM3 NIB EEPROM MEMORY CHIP SET
Omron G730-VOD16-B Remote Terminal
Siemens TI 505-4616
Allen Bradley ControlLogix 1756-CNB/D
Allen Bradley 2711-NM2 EEPROM Chipset New
Mitsubishi Meldas Control Board Part# MC303 Used
STI Safety Sensor Pair Part# MS4312BR and MS4312B Used
Allen Bradley Replacement Power Supply 6189-PS4 NIB
Medar Control Board Cat# 4920-A Used
Reliance Remote I/O Communications Part# 57C416 Used
Reliance Drive Analog I/O Part# 57405 Used
Fanuc Shared Ram Card Part# A16B-1211-0860/03A Used
Reliance Common Memory Module Part# 57C413A Used
Allen Bradley Co-Processor Cat# 1785-05E/A Used
Indramat Servo Card Type DAW 2 Used
Allen Bradley Resolver Part# 846-SJHN-2CG-R1-C NIB
CINCINNATI MILICRON PROCESSOR 3-700-0145A
Fanuc Servo Encoder Part# A860-0360-T201/E Used
Magnetek Drive part# GPD205-A002 200-230 V Used
Toshiba Transitor Inverter Cat# VFS9-4007PL-WN Used
Allen Bradley Size 3 Starter Cat# 509-DOD Used
ALLEN BRADLEY 2755-G1 BAR CODE LASER SCANNER
Westinghouse PLC Card NL-708 24VAC/DC Input
Allen Bradley Control Logix 1756-OB16I/A
Siemens Circuit Board Cat# 6FX1125-1AA01 Used
Reliance 1 hp 5.2 A Drive 6MDBN-4P5101 Used
Allen Bradley Redi Panel 2705-K11C1 Ser A Used
Pacific Scientific Servo controller Model SC323A01 Used
IFM Ecomat200 Power Supply Part# DN2011 NIB
Fanuc Velocity Control PArt# A06B-6050-H002 Used
Continental Hydraulics Pump Part# PVR1-8B10-RM-0-1-1
GE Contactor Part#CK95BE300 110/120VAC Used
Fanuc Circuit Board Model# A16B-1211-0060/10C Used
Fanuc Circuit Board Cat# A2B-060/03B Used
Parker Compumotor Microstep A drive Used POWERS
Medar Control Board Part# 494-8A Used
Pair of Yaskawa Input PLC PN#JAMSC-120 DDI 354 00 USED
Pair of Yaskawa Output PLC PN#JAMSC-120 DDO 354 10 USED
Barber Colman Sequence Module 80CC-11001-101-V-00 Used
Mitsubishi Meldas Board Part# MC301 Used
Allen Bradley 1745 – LP101
Allen Bradley 1745 – E151
Ircon Modline 2 Point Infrared Radiation Thermometer
Siemens PLC Interface Module Part# 6ES5512-5BC12 Used
DYNASTAT 320 SERIES IONIZING BLOWERS
CUTLER HAMMER/OPCON 8170A-6501 PHOTOELECTRIC CONTROL
Vickers Directional Valve DG4SL012AB60 Used
Square D Pressure Switch Class 9012 Type GCW1 Used
Allen Bradley DeviceNet 1792D-8BVT0D NIB w/ Seal
Allen Bradley Camera MUX Module Cat# 2803-CM USED
Emerson Positioning Control PCM-11 Used