【方辉专栏】ARM嵌入式编译器(十二) 编译半主机模式介绍
发布时间:2022-09-08

摘要: 本文主要对Arm Compiler 6编译器半主机模式介绍。

关键字:Arm Compiler 6、编译器、 半主机模式


在开发嵌入式应用程序时,开发环境中可用的资源通常与目标硬件上的资源不同。从开发调试环境移植到目标板上运行的过程就显得尤为重要。因此在嵌入式开发时,需要对以下几点有所了解:

编译工具和目标环境。


某些C库的功能使用的是开发调试环境的资源来实现的,如果要在目标硬件上实现就要配置这些资源。

工具链不知道目标板的内存映射,因此需要您根据目标板内存布局调整内存映射。

嵌入式程序必须执行一些初始化,才能运行主程序。例如,堆栈的初始化。


本文主要对编译工具的运行环境和目标环境的关系进行一些介绍。


在主机调试环境(编译工具运行的环境)中可以提供一些Arm C库中的标准C功能,这种机制称为半主机。当半主机执行时,目标板调试会暂停。例如printf输出调试信息时,会使用主机调试环境输出到主机显示器上。在目标板恢复代码运行之前,这段的操作都称为半主机操作。调试主机在运行这些任务时,目标板是知晓的。


半主机是一种机制,它使在 ARM 目标或仿真器上运行的代码能够与主机上的输入/输出设备进行通信并使用这些设备。这些设备包括键盘输入、屏幕输出和磁盘 I/O。例如,您可以使用这种机制来运行C库中的函数[例如printf()和scanf()]时使用主机的屏幕和键盘,而不是目标板上的屏幕和键盘。


半主机由一组定义好的的软件指令实现,这些指令从程序控制中生成异常。应用程序调用适当的半主机调用,然后调试代理处理异常。调试代理提供与主机所需的通信。


半主机接口是在调试器中建立的,当您再开发环境中调试应用程序时,就会实现这一过程。如下图所示:



来源:《Arm® Compiler for Embedded User Guide Version 6.18》


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


关于九游会J9电子

九游会J9电子技术有限公司(英文名称:Emdoor Electronics Technology Co.,Ltd)是国内资深的研发工具软件提供商,公司成立于 2002 年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

20 年来,先后与 Altium、ARM、Ansys、QT、Adobe、Visu-IT、Minitab、Testplant、EPLAN、HighTec、GreenHills、PLS、Ashling、MSC Software 、Autodesk、Source Insight、TeamEDA、MicroFocus等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA 设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式 GUI 工具等等。九游会J9电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。


欢迎关注“九游会J9电子”公众号

了解更多研发工具软件知识