嵌入式系统 - 工具与外设



编译器和汇编器

编译器

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

交叉编译器

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

反编译器

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

语言转换器

将用不同高级语言编写的程序进行转换的程序通常称为语言转换器、源到源转换器或语言转换器。

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

  • 预处理
  • 语法分析
  • 语义分析(语法制导翻译)
  • 代码生成
  • 代码优化

汇编器

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

嵌入式系统中的调试工具

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

  • 模拟器
  • 微控制器入门套件
  • 仿真器

模拟器

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

模拟器的功能

模拟器执行以下功能:

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

  • 在每次单步执行时,监视带有标签和符号参数的源代码部分的详细信息。

  • 提供目标系统的 RAM 和模拟端口在每次单步执行时的状态。

  • 监视系统响应并确定吞吐量。

  • 提供程序计数器内容与处理器寄存器输出的跟踪。

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

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

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

  • 提供断点和跟踪,它们共同构成了重要的测试和调试工具。

  • 促进内部外设和延迟的同步。

微控制器入门套件

微控制器入门套件包括:

  • 硬件板(评估板)
  • 在线编程器
  • 一些软件工具,如编译器、汇编器、链接器等。
  • 有时,IDE 和编译器的代码大小受限的评估版本。

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

仿真器

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

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

嵌入式系统中的外设

嵌入式系统通过其外设与外部世界通信,例如:

  • 串行通信接口(SCI),如 RS-232、RS-422、RS-485 等。
  • 同步串行通信接口,如 I2C、SPI、SSC 和 ESSI
  • 通用串行总线(USB)
  • 多媒体卡(SD 卡、Compact Flash 等)
  • 网络,如以太网、LonWorks 等。
  • 现场总线,如 CAN 总线、LIN 总线、PROFIBUS 等。
  • 定时器,如 PLL(s)、捕获/比较和时间处理单元。
  • 离散 I/O,也称为通用输入/输出 (GPIO)
  • 模数/数模转换器 (ADC/DAC)
  • 调试,如 JTAG、ISP、ICSP、BDM 端口、BITP 和 DP9 端口

选择微控制器的标准

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

  • 速度 - 微控制器可以支持的最高速度是多少?

  • 封装 - 是 40 引脚 DIP(双列直插封装)还是 QFP(四边扁平封装)?这在最终产品的空间、组装和原型设计方面很重要。

  • 功耗 - 对于电池供电的产品,这是一个重要的标准。

  • 芯片上的RAM 和 ROM 容量

  • 芯片上的I/O 引脚和定时器数量

  • 单位成本 - 这对于使用微控制器的产品的最终成本很重要。

此外,请确保您拥有微控制器可用的工具,例如编译器、调试器和汇编器。最重要的是,您应该从可靠的来源购买微控制器。

广告