什么是主机,目标机

开发

开发模式:

本机开发本机开发也就是在目标机(在嵌入式系统中通常把嵌入式系统或设备简称为目标机)中直接

进行操作系统移植及应用程序的开发。在这种方式下进行开发,首先就得在目标机中安装操作

系统,并且具有良好的人机开发界面。

交叉开发意思就是在一台主机(在嵌入式系统中通常把通用PC称为主机)上进行操作系统的裁剪,以

及编写应用程序,在主机上应用交叉编译环境编译内核及应用程序,然后把目标代码下载到目

标机上运行。这就需要在主机上安装、配置交叉编译环境(交叉开发工具链),使其能够编译

成在目标机上运行的目标代码。

模拟开发建立在交叉开发环境基础之上。除了主机和目标机以外,还得提供一个在主机上模拟目标机

的环境,使得开发好的内核和程序直接在这个环境下运行以验证其正确性,这就不需要每次的

修改都下载到目标机中,待程序正确后再下载到目标机上运行。这样就可以达到在没有目标机

的情况下调试软件的目的。比较著名的模拟开发环境有SkyEye,它能够模拟如ARM等处理器

的开发环境。模拟硬件环境是一件比较复杂的工程,所以多数商业嵌入式系统的开发采用的是

交叉开发模式。

开发方式:

Crash and Burn

1. 在宿主机上编写代码

2. 在宿主机上编译应用程序,生成可执行程序

3. 固化(Burn)到目标机的存储器(EPROM/FLASH等)中

4. 启动运行,若正确则转到7

5. 不正确则在宿主机上改写代码,纠正错误

6. 返回2重复操作

7. 固化成功,结束

ROM Monitor

ROM Monitor是固化在目标机上的一段程序,用来监视目标机上被调试程序的运行,与HOST端的程序一起完成对目标机上的应用程序的调试。此时宿主机上要有一个和ROM Monitor相配的交叉调试器。该调试方法中目标机复位后首先执行的就是ROM Monitor

1. 在宿主机上编写代码

2. 在宿主机上试用调试模式交叉编译应用程序,生成可执行程序

3. 将代码下载到目标机上的RAM空间

4. 用户试用调试器进行交叉调试

5. 如果正确转8

6. 不正确则在调试器帮助下定位错我

7. 修改错误,重复2~7

8. 将程序固化到目标机上,结束

ROM Emulator:

ROM Emulator 替代目标机上的ROM芯片

不完全的调试方法

ICE(In-Circuit Emulator 常用的开发方法):

替代目标机上的CPU设备

厂家提供的开发板

价格昂贵,不利于团队开发

所仿CPU有限

OCD(On Chip Debugging)

OCD CPU芯片提供的一种调试功能

存在各种实现方式、标准不统一:

1. BDM(Backgroud Debugging Mode)

2. JTAG(Joint Test Access Group)

3. OnCE(On Chip Emulation)

Simulator

软件仿真器。在宿主机上虚拟目标机。

仿真内容:

仿真处理器

仿真外设

仿真环境

适用范围:对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序。

你可能感兴趣的:(目标)