更多课程 选择中心

嵌入式培训
达内IT学院

400-996-5531

嵌入式中交叉调试有哪些,区别是什么?

  • 发布:嵌入式培训
  • 来源:嵌入式教程
  • 时间:2020-03-10 16:05

嵌入式系统的交叉调试有多种方法,主要可分为软件方式和硬件方式两种

(1)软件方式

软件方式调试主要是通过插入调试桩的方式来进行的。调试桩方式进行调试是通过目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。该方式的典型调试器有 Gdb 调试器。

(2)硬件调试

硬件调试器的基本原理是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。目前嵌入式系统开发中最常用到的硬件调试器是 ROMMonitor、ROMEmulator、In-CircuitEmulator 和 In-CircuitDebugger。

问题一、从各方面比较嵌入式系统与通用计算机的区别。

(1)嵌入式系统与通用型系统的最大区别就在于嵌入式系统大多工作在为特定用户群设计的系统中,因此它通常都具有低功耗、体积小、集成度高等特点,并且可以满足不用应用的特定需求。

(2)嵌入式系统的硬件和软件都必须进行高效地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能 。

(3)嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统,从事嵌入式系统开发的人才也必须是复合型人才。

(4)为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储于磁盘中。

(5)嵌入式开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备所处的环境往往是无人职守或条件恶劣的情况下,因此,其代码必须有更高的要求。

(6)嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行再次开发

问题二、ARM9有哪些优于ARM7的特性?

(1)ARM7 处理器采用的 3 级流水线设计,而 ARM9 则采用 5 级流水线设计

通过使用 5 级流水线机制,在每一个时钟周期内可以同时执行 5 条指令。这样就大大提高了处理性能。

在同样的加工工艺下,ARM9 处理器的时钟频率是 ARM7 的 1.8~2.2 倍。

(2)ARM9采用的是哈佛结构,ARM7采用的是冯诺依曼结构

冯·诺依曼结构共用数据存储空间和程序存储空间,它们共享存储器总线,这也是以往设计时常用的方式,而哈佛结构则具有分离的数据和程序空间及分离的访问总线。所以哈佛结构在指令执行时,取址和取数可以并行,因此具有更高的执行效率 。

(3)ARM9引入了高速缓存和写缓存提高了存储器的访问速度。

(4)支持MMU,MMU 是内存管理单元,它把内存以“页”为单位来进行处理。一页内存是指一个具有一定大小的连续的内存块,通常为 4096B 或 8192B。操作系统为每个正在运行的程序建立并维护一张被称为进程内存映射的表,表中记录了程序可以存取的所有内存页以及它们的实际位置。

每当程序存取一块内存时,它会把相应的虚拟地址(virtual address)传送给 MMU,而MMU 会在 PMM 中查找这块内存的实际位置,也就是物理地址(physical address),物理地址可以在内存中或磁盘上的任何位置。如果程序要存取的位置在磁盘上,就必须把包含该地址的页从磁盘上读到内存中,并且必须更新 PMM 以反映这个变化(这被称为 pagefault,即页错)。

只有拥有了 MMU 才能真正实现内存保护。例如当 A 进程的程序试图直接访问属于 B 进程的虚拟地址中的数据,那么 MMU 会产生一个异常(Exception)来阻止 A 的越界操作。这样,通过内存保护,一个进程的失败并不会影响其他进程的运行,从而增强了系统的稳定性,ARM9 也正是因此拥有了 MMU,比 ARM7 有了更强的稳定性和可靠性。

问题三、什么是交叉编译?为什么要进行交叉编译?

交叉编译就是在一个平台上生成可以在另一个平台上执行的代码 。编译的最主要的工作就在将程序转化成运行该程序的 CPU 所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的 CPU 需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译称不同的CPU 对应语言。

问题四、嵌入式开发常用的调试手段有哪几种?说出它们各自的优缺点?

嵌入式系统常用的调试手段时交叉调试,主要分为软件调试和硬件调试两种方式。软件方式调试主要是通过插入调试桩的方式来进行的。调试桩方式进行调试是通过目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。该方式的典型调试器有 Gdb 调试器。

硬件调试器的基本原理是通过仿真硬件的执行过程,让开发者在调试时可以随时了解到系统的当前执行情况。目前嵌入式系统开发中最常用到的硬件调试器是 ROMMonitor、ROMEmulator、In-CircuitEmulator 和 In-CircuitDebugger。

问题五、嵌入式硬件系统一般由哪几部分组成?核心是什么?核心由哪几部分组成?

嵌入式系统一般由嵌入式处理器、存储器和输入/输出部分组成。其中嵌入式微处理器是嵌入式硬件系统的核心,通常由三大部分组成:控制单元、算术逻辑单元和寄存器

问题六、Boot loader在嵌入式系统中主要起什么作用?

Boot Loader是在操作系统运行之前执行的一段程序,通过这段程序,初始化硬件设备,建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。

免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:arm的基础你学好了么,看这篇就够了
下一篇:嵌入式系统发展的四个阶段

裸编程怎么做?裸编程具体做法

嵌入式编程中你必须知道的小知识

嵌入式C语言编程小知识总结

有哪些工具可以让嵌入式开发事半功倍?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省