区别于一般计算机中的C语言编译器,嵌入式系统中的C语言编译器要专门进行优化,以提高编译效率。的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程序长5~20%。编译质量的不同,是区别嵌入式C编译器工具的重要指标。而C编译器与汇编语言工具相比残余的5~20%效率差别,完全可以由现代微控制器的高速度、大存储器空间以及产品提前进入市场的优势来弥补。
新型的微控制器指令及SOC速度不断提高,存储器空间也相应加大,已经达到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程师采用过去一直不敢问津的C++语言创造了条件。C++语言强大的类、继承等功能更便于实现复杂的程序功能。但是C++语言为了支持复杂的语法,在代码生成效率方面不免有所下降。
C/C++/EC++引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等之间在开发上的差别正在逐渐消除,软件工程中的很多经验、方法乃至库函数可以移植到嵌入式系统。在嵌入式开发中采用语言,还使得硬件开发和软件开发可以分工,
从事嵌入式软件开发不再必须精通系统硬件和相应用汇编语言指令集。
一种语言,JAVA的发展则具有戏剧。JAVA本来是为设备独立的嵌入式系统设计的、为了提高程序继承的语言,但是目前基于JAVA的嵌入式开发工具代码生成长度要比嵌入式C编译工具差10倍以上。因此EC++很可能将成为未来的主流工具。
3.源程序模拟器(Simulator)
源程序模拟器是在广泛使用的、人机接口完备的工作平台上,如小型机和PC,通过软件手段模拟执行为某种嵌入式处理器内核编写的源程序测试工具。简单的模拟器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员检查;的模拟器可以利用计算机的外部接口模拟出处理器的I/O电气信号。不同档次和功能模拟器工具价格差距巨大。
模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有效的源程序检验和测试工具。但值得注意的是,模拟器毕竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中断响应、定时器等方面很可能与实际处理器有相当的差别。另外它无法和ICE一样,仿真嵌入式系统在应用系统中的实际执行情况。
4.实时多任务操作系统
实时多任务操作系统(RTOS)是嵌入式应用软件的基础和开发平台。目前在中国大多数嵌入式软件开发还是基于处理器直接编写,没有采用商品化的RTOS,不能将系统软件和应用软件分开处理。RTOS是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在RTOS之上。不但如此,RTOS还是一个可靠和可信很高的实时内核,将时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API,并根据各个任务的优先级,合理地在不同任务之间分配时间。
TOS是针对不同处理器优化设计的高效率实时多任务内核,商品化的RTOS可以面对几十个系列的嵌入式处理器MPU、MCU、DSP、SOC等提供类同的API接口,这是RTOS基于设备独立的应用程序开发基础。因此基于RTOS上的C语言程序具有极大的可移植。据专家测算,RTOS上跨处理器平台的程序移植只需要修改1~5%的内容。在RTOS基础上可以编写出各种硬件驱动程序、专家库函数、行业库函数、产品库函数,和通用的应用程序一起,可以作为产品销售,促进行业内的知识产权交流,因此RTOS又是一个软件开发平台。
SIEMENS 6SC6112-4HA00 SIMODRIVE HSA-MODUL
SIEMENS 6SC6113-0HA00 SIMODRIVE HSA-MODUL
ADILOG SMS01/PCL2A0 MODUL
MITSUBISHI FR-SFJ-2-3.7K-T AC Controller Reparatur
BOSCH ZS-400 or 1070070309-205 CPU MODULE ZS400 _
Siemens 6SC6100-0GB12 or 6SC61000GB12 Power Supply
AC SERVO MOTOR HA83C-SS MITSUBISHI
SIEMENS 6SC6190-OFB00 POWER SUPPLY 6SC6190OFB00
SIEMENS 6EW1861-3BA POWER SUPPLY 6EW18613BA
FANUC A06B-6090-H223 SERVO AMPLIFIER A06B6090H223
INDRAMAT DDS02.1-W050-D AC SERVO CONTROLLER
INDRAMAT DDS02.1-W050-D AC SERVO CONTROLLER
INDRAMAT TVD1.3-08-03 POWER SUPPLY
SIEMENS 6SC6114-5DA00 SIMODRIVE
BOSCH SM17/35-TA DRIVE
BOSCH SM 5/10-TA DRIVE
YASKAWA USAFED-13CA2KE or USAFED13CA2KE AC SERVO MOTOR
BOSCH VM60 or 047888-308 DRIVE
FANUC A06B-6066-H211 SERVO AMPLIFIER A06B6066H211
BOSCH SD-B4.140.030-00.000 BÜRSTENLOSER SERVOMOTOR
FANUC A06B-6050-H202 VELOCITY CONTROL UNIT A06B6050H202
ABB 35ZE94 SPS INTERFACE
ABB 35IV90 MODULE 35 35KI90
MODICON AS-P840-000 POWER SUPPLY
1PH6103-4NG40-Z or 1PH61034NG40Z SIEMENS MOTOR
OKUMA E4809-045-106-G CRPII-C
SIEMENS 6SC6140-0FE00 SIMODRIVE 690 6SC61400FE00_
SIEMENS 6ES5950-1AB61 SIMATIC S5 6ES59501AB61
FANUC A16B-2201-0101-07A BOARD A16B2201010107A
Siemens 6RB2907-1AA01 mit C98043-A1112-L1-34 Reparatur
SIEMENS C98043-A1086-L1107 or C98043-A1086-L11 BOARD
SIEMENS C98043-A1045-L312 or C98043-A1045-L3-12 BOARD
BEIJER ELECTRONICS MAC90 BEDIENERTERMINAL 00950B
YASKAWA CIMR-G5E45P5 VARISPEED 616G5
MINOLTA CA-100 CRT COLOR ANALYSER CA100
HELDT&ROSSI SM807DC TYP 807E 7500-120 Reparatur
INDRAMAT TVM 2.2-050-220/300-W1 POWER SUPPLY TVM2.2-05
MITSUBISHI QX084B or QX084 N634A574G52 POWER SUPPLY
Fanuc A06B-6088-H222 Alpha Spindle Drive Reparatur
SIEMENS 6ES5526-3LA11 SIMATIC S5 6ES55263LA11
Fanuc Servo Amplifier A06B-6079-H108 Reparatur
INDRAMAT TDM 1.2-30-300-W0 AC SERVO CONTROLLER
BAUER BF50-04W/D11SA4-TF or BF 50 04W-D11SA4TF MOTOR
Siemens 6ES5955-3LF12 Power Supply
YASKAWA SGMG-13A2AB AC SERVO MOTOR
INDRAMAT TRK2-C11-W0/001 2 PULS-THYR.-REGELVERSTÄRKER
SIEMENS C98043-A1210-L52-05 SIMOREG C98043A1210L5205
SIEMENS 6SE7021-0EA61 SIMOVERT VC 6SE70210EA61
MITSUBISHI CNC 320L OPERATOR PANEL MIT MDT962B-1A
FANUC A05B-2051-C102 ROBOT INTERFACE PANEL
Eckelmann EI-QS 110 E Terminal
5N-2000M Fanuc Permanent Magnet DC Servo Motor_
MAGNETEK GPD503 DS317 UMRICHTER
BOSCH SF-A2.0013.030-10.050 or SF-A20013030-10050
SIEMENS 6FX1120-4B003 SINUMERIK 6FX11204B003
SIEMENS 6DM1001-0WB00-2 or 6DM10010WB002 F33 MINIREG
FANUC A20B-1000-0770-01 POWER UNIT A20B1000077001
FANUC A16B-1210-0340-03A BOARD A16B121034003A
SIEMENS 6ES5242-1AA31 IP242 6ES5-242-1AA31