Embedded Systems 简明教程

Embedded Systems - Tools & Peripherals

Compilers and Assemblers

Compiler

编译器是一个计算机程序(或一组程序),它将用编程语言(源语言)编写的源代码转换为另一种计算机语言(通常是二进制格式)。转换的最常见原因是创建可执行程序。“编译器”一词主要用于将源代码从高级程序语言翻译成低级语言(例如汇编语言或机器代码)的程序。

Cross-Compiler

如果已编译的程序可以在具有与编译器编译程序时计算机不同的 CPU 或操作系统的计算机上运行,那么该编译器称为交叉编译器。

Decompiler

能够将程序从低级语言翻译成高级语言的程序称为反编译器。

Language Converter

一个能翻译用不同高级语言编写的程序的程序通常称为语言翻译器,源到源翻译器或语言转换器。

编译器可能会执行以下操作:

  1. Preprocessing

  2. Parsing

  3. Semantic Analysis (Syntax-directed translation)

  4. Code generation

  5. Code optimization

Assemblers

汇编器是一个接受基本计算机指令(称为汇编语言)并将其转换为计算机处理器可用于执行其基本操作的比特模式的程序。汇编器通过将汇编指令助记符转换成操作码,将符号名解析成存储器位置来创建目标代码。汇编语言使用助记符表示每个低级机器操作(操作码)。

Debugging Tools in an Embedded System

调试是一个有条理的过程,用于查找和减少计算机程序或电子硬件块中的错误数量,以便其按预期工作。当子系统紧密耦合时,调试很困难,因为一个子系统中的一个小改动可能会在另一个子系统中产生错误。嵌入式系统中使用的调试工具在开发时间和调试功能方面差异很大。我们将在下面讨论以下调试工具:

  1. Simulators

  2. Microcontroller starter kits

  3. Emulator

Simulators

代码通过在用于代码开发的主机计算机上模拟它来测试 MCU / 系统。模拟器尝试在软件中模拟完整微控制器的行为。

Functions of Simulators

模拟器执行以下功能:

  1. 定义处理器或处理设备系列以及针对目标系统的各种版本。

  2. 在每次执行单步时,使用标签和符号参数监控源代码部分的详细信息。

  3. 针对每个单步执行,提供目标系统的 RAM 和模拟端口的状态。

  4. 监控系统响应并确定吞吐量。

  5. 提供程序计数器内容和处理器寄存器输出的追踪。

  6. 提供当前命令的详细含义。

  7. 监控模拟器命令的详细信息,因为这些命令是从键盘中输入或从菜单中选择的。

  8. 支持条件(最多 8 或 16 或 32 个条件)和无条件断点。

  9. 提供断点和追踪,它们共同是重要的测试和调试工具。

  10. 便于同步内部外围设备和延迟。

Microcontroller Starter Kit

微控制器入门套件包括:

  1. Hardware board (Evaluation board)

  2. In-system programmer

  3. 一些软件工具,如编译器、汇编器、链接器等。

  4. 有时,一个 IDE 和一个代码大小受限的编译器评估版本。

与模拟器相比,这些套件的一大优点是它们可在实时环境中工作,从而便于验证输入/输出功能。但是,入门套件完全足够,并且是最节省成本的开发简单微控制器项目的选项。

Emulators

仿真器是一个硬件套件或软件程序,或二者兼有,它在另一个与第一个不同的计算机系统(主机)中模拟一个计算机系统(来宾)的功能,从而模拟行为与真实系统(来宾)的行为非常相似。

模拟是指电子设备中的计算机程序模拟(仿效)另一个程序或设备的能力。模拟专注于重新创建一个原始计算机环境。仿真器有能力保持与数字对象真实性的更紧密连接。仿真器帮助用户在一个平台上的任何类型的应用程序或操作系统中工作,类似于软件在其原始环境中运行的方式。

Peripheral Devices in Embedded Systems

嵌入式系统通过其外围设备与外部世界通信,如下所示:

  1. 串行通信接口(SCI),如 RS-232、RS-422、RS-485 等。

  2. 同步串行通信接口,如 I2C、SPI、SSC 和 ESSI

  3. Universal Serial Bus (USB)

  4. 多媒体卡(SD 卡、紧凑型闪存卡等)

  5. 网络,如以太网、LonWorks 等。

  6. 诸如 CAN-Bus、LIN-Bus、PROFIBUS 等现场总线。

  7. 诸如 PLL、捕获/比较和时间处理单元的集成器。

  8. 离散 I/O,也称为通用输入/输出 (GPIO)

  9. 模数/数模转换器 (ADC/DAC)

  10. 诸如 JTAG、ISP、ICSP、BDM 端口、BITP 和 DP9 端口的调试

Criteria for Choosing Microcontroller

在选择微处理器时,请确保它满足手头任务并具有成本效益。我们必须判断 8 位、16 位或 32 位微处理器能否最佳地处理任务的计算需求。此外,在选择微处理器时应牢记以下几点:

  1. Speed − 微处理器可支持的最高速度是多少?

  2. Packaging − 是 40 针 DIP(双列直插式封装)还是 QFP(四方扁平封装)?这一点在最终产品的空间、组装和样机试制方面很重要。

  3. Power Consumption − 对于电池供电产品而言,这是一项重要的标准。

  4. Amount of RAM and ROM 芯片上。

  5. Count of I/O pins and Timers 芯片上。

  6. Cost per Unit − 这一点对于使用该微处理器的产品的最终成本而言很重要。

此外,请确保您准备好该微处理器随附的工具,例如编译器、调试器和汇编器。最重要的是,您应从可靠的来源购买微处理器。