为嵌入式系统开发人员建立虚拟的ARM平台

合集下载

基于ARM的嵌入式系统平台的构建

基于ARM的嵌入式系统平台的构建
关 键 词 : 入 式 系统 : iu ; 嵌 L n x ARM ; o t o d r B o L a e
引 言
件包 。 费 等 优 点 , 为 引 领 嵌 入 式 领域 的砥 柱 力 量 , 已成 21 安 装共 享 软 件 包 .. 2 打 开终端,在命令行 中通过命令 具有相当大的市场潜力和商业价值 。但是嵌入 a v VM wa e o l一 . . — 9 2 . r r T ns 6 0 2 5 8 4 t . a 式 处 理 器 种类 繁 多 ,要 做女 iu 嵌 入 式 系 统 tr XZ f rLn x 图 1硬 件 系统 结 构 框 架 图 得 到 广 泛 的应 用 ,就 必 须 把 Ln x嵌 入 式 系 统 iu 解 软件包进行安装 。 a . 将 软 件 包 拷 贝 到 一 定 义 文 件 移植到相应的各种处理器平 台上,特别是运 用 见程 序 1 ) 到当前 主流平台上, 并应用于实际的产品l 去。 夹 。 ( 1 I A M平 台是 当前应用广泛 的处理 器体系结构 R b .进 入 #d /o /ad c hme n y文 件 夹 d 之r 是 L u 嵌入 式系统移植 的 一 一, ix n 个审点 目 并解压此软什。( 见程序 2 ) 标 。但各种嵌入式 系统 的相关的新的产 l不断 i 7 l 解压完毕厉 d ny目录下会出现 ad 涌现 ,势必引起人们对嵌人式 系统越来越多 的 个 v w f—ol ds i m ae t s ir o — tb的文什夹 。 (I 进 人 # d v . 关 注 构建 了一个 In x ¨ 嵌入式操作系统 , i 将它 c mw r—o l ds i ae t0s i r — tb 接键人命令 嵌 入到 AR M平台 的内核 系统中 ,在此荩础 L 文件央并 安装软件 : 对开发各种应用程序和 _解嵌入式 系统有 了更 {/m ae is lt ,存执行过程 中会 r }v w r—nt1d . a. 深 的研 究 和 学 习 。 出 现很 多 町供 选 择 的项 , 般 是 小 月 … _ j 图 2 B oL a e o to d r的启 动 过 程 图 给 选 择 的 , 以 一 回 车 即 可 。另 可 直 1 系统 硬 件 r A M (da c IC R A vne R S Mahn) 司 作 为 外 文 件 夹 晕 面 有 一 I — ir¨n t i f ; ho t dr1i { ls ’ rp U‰ " n1 日 Z + ̄8Z4 t , ( ie公 ' N f “ q ‘te,# i埘 徽 n s 5 r g l g pl … h r dr m l c o l c u o1 Z t h 个典型的 I 汁公司 , P设 主要依靠转 让i 汁来 S L文 件 , 个 文 件 是 介 绍 {o ot ̄i l 0St 0 eoml● p ’ ^rc1 ¥ 6. . ¥9B ̄4. tr 口 , 0_e,d^柚 q/ ! j = q AL 这成各种各具特 色的芯片 的生产 。 并 提 示 如何 安 装 次 软 件 包 的 文 程序 1 A M 处理 器 就是 其 代 表产 品 ,之所 以选定 件 ,如果 足 对 安 装 不 太 懂 可 以 [ o t ̄l ca h t Ov t] cd /h , an y/;i R ro o ] os c o ̄ d d s 1 c 20 pa 一0 6 V a eo s 60 258 4tt  ̄ r T ol 一 . — 9 2 . a vfp — 2O a -z s t d l_ . t t g AR M处理器为设 计对象 , 是因为 1/2位嵌入 用 v 编 辑 器 打 开 学 习 一 下 。 63 j 一 1 j v耵 war t ㈣ ool — stri di h zhc on一 . j 0 2. 式 RS [C处 理器 内核 , 以其体 积小 , 低功耗 , 低 ( 程 序 3 ) ; u i 9 l— {0 r} g by p2 f vs ftp d一1 2 0 [ o ] a  ̄t a y a z f Ma To 一. 2 92. r z r t o l s dn ] r x wr ol 6 .  ̄ 4t o S c h d #t v Y e s 0 一 8 a E I 成 木 高性能 , 多系列 , 数据传输 和处理速度怏 安装 成 功之 后 终 端会 显 程序 2 的特 点 而 成 为各 种 数 字 移 动 通 讯终 端 以及 各 种 示 : I。 一 te VMw r [ t 1 1 0 t a d c a e t o s d s r b ; s E 一 h ac m 0 Ⅲ h s d n y] j r — o l — i t l / l bn d c ec F LS i o t I E t is a l t l b 一  ̄t 1e i I 1 H t ]棚 a 网络产品的首选 目标” 系统硬件平台主要足 { 1 m。( 程序 4 见 ) [ ̄ t l c J o t r r ~ o l — i l i ] .v'a e i s a 1 p r o O o a h s v  ̄a e t ) S d s r b # / t r — n t l . l u 嵌入式处理 器 、I S S R M、 太 网接 L 、 F, H、D A A j 经 过 验 证 安装 此 软 件 包 在 程序 3 U B接 口 、 A T接 口 、T G 接 口 、O 接 口 、 图彤 界面 F就会 报 错 , 只有 在 S UR JA 1 / I 电源 、 I C、 复位开关等组成。系统硬件结构 图如 宁 符 界 而 下 可 以完 整 的安 装 。 图 1所 示 。 213共 享 文竹 夹 . 2 嵌入 式 Ln x开发 环 境 的 构 建 iu 软件 包 安 装 好 以后 ,需 曩 由 于 开 发 板 上 的 嵌 入 式 系 统 的 资 源 足 很 在 Wid w F建 立 一 个 共 享 no s 程序 4 有 限 ,因 此 如 果直 接 在 嵌入 式 硬 件 平 台 上 编写 史件 夹 以 便 在 Lmx下 可 以访 【 oot loca h t /] c us /loc l/:i il r  ̄ l os d r a s in mes ncl tb exe ̄ n hin re . 软件代码基本是不 可能的事 。f H是采用在 P 问 .选 择 菜 单虚 拟 机 的 设 置选 b etc ga i ude 1 1ib ma s sha src c [ o t l c l o t o a ] m d r a m l r 0  ̄ o a h s l c 1 k i r : s n c es i c n lude 11 1 b ibex m sbi ec n s har e Br c 机 L 写 程 序 ,然 后 通 过编 译 生成 能 在 目标 编 项 .在 弹 f 虚 拟 机 设 置 对 话 ㈣ bi et B的 [o t oa h t o a ] c r/ r o @l c l os l c 1 d a m ' 台上运行的二进制代码 ,最后 下载到 日标板 E 框 中选 择 O t,s pi 属性 页 , 中 [ ot oc lh st rm] P , l/ gfs sha e/Ⅲ li u gee 4. 2 gz . < n 在 I o @l a o a 叫 th / r n x~ 一 3 t 『 o t I c l o5 r o 4 o h t a 1 I # s 特 定 位 置 上 运 行 。通 常 采用 宿 主 机 ¨ 】 板模 选 择 Str o t s 设 置 怀 l c F hc 米 ad r l” __ 、 q l 0 hu ^一 式, 图 2 示。 如 所 目标 板 分 别 通 过 半 口和I 太 网 享 文件 火 ,然 后 选 定 “ n be 。 [ o ̄ cl s a ] a z f r—i x c一 3 . z 以 E a l” r tl a ot r  ̄tr x ml u— c4 . t _ o o h m v a n g 2 g 接 口 L宿 主 机 P j c连 接 , 两 个接 『是用 于终 端 然 后 佴 狄 进 入 / n ,此 时 你 会 这 1 mt 程序 5 tto lr l' c / / n o s下 的 工 具 包 复 制 到 开 发的 必须 通 道 。 发 现 F录 下多 了 一 h 的 文 件 夹,在 这 个 文 /s l a am。 将 Widw j 个 件夹下就是 Ln �

arm嵌入式开发板

arm嵌入式开发板

ARM嵌入式开发板介绍ARM嵌入式开发板是一种用于开发嵌入式系统的硬件平台。

它采用ARM架构的处理器作为核心,具有较高的性能和低功耗特性,被广泛应用于物联网、智能家居、工业自动化等领域。

本文将介绍ARM嵌入式开发板的概述、特点以及常见的应用案例。

概述ARM嵌入式开发板是一种集成了ARM处理器、存储器、各种接口和外围设备的单板计算机。

它通常采用模块化设计,可以根据需求进行扩展和定制。

ARM是一种低功耗且高效的处理器架构,广泛应用于移动设备、嵌入式系统和物联网等领域。

特点1. 强大的性能ARM嵌入式开发板采用ARM处理器,具有较高的运算能力和浮点计算性能。

它们通常采用多核心设计,可以同时运行多个任务,提高系统的并发处理能力。

2. 低功耗ARM架构的处理器采用了先进的微处理器设计技术,使得其功耗较低。

这对于嵌入式系统来说非常重要,因为嵌入式设备通常需要长时间运行,并且需要保持低功耗以延长电池寿命。

3. 丰富的接口和外围设备ARM嵌入式开发板通常集成了丰富的接口和外围设备,如GPIO、UART、SPI、I2C、USB等。

这些接口和设备可以方便地连接外部传感器、执行器、通信模块等,实现与外部环境的数据交互和控制。

4. 开放的软件生态系统由于ARM架构的广泛应用和开放的生态系统,开发者可以很容易地获取开源的操作系统(如Linux),以及丰富的开发工具和软件库。

这样可以大大加快开发周期,提高开发效率。

应用案例1. 物联网设备随着物联网的快速发展,ARM嵌入式开发板被广泛应用于物联网设备中。

它们可以集成各种传感器,如温度传感器、湿度传感器、光照传感器等,通过物联网协议与云端进行数据通信和控制。

2. 智能家居ARM嵌入式开发板也被广泛应用于智能家居领域。

通过连接各种传感器、执行器和家电设备,可以实现智能家居的自动化控制,提高生活便利性和能源利用效率。

3. 工业自动化ARM嵌入式开发板在工业自动化领域也有广泛应用。

arm嵌入式系统中面向对象的模块编程方法

arm嵌入式系统中面向对象的模块编程方法

arm嵌入式系统中面向对象的模块编程方法在arm嵌入式系统中,面向对象的模块编程方法是一种高效而灵活的编程方式。

它可以帮助开发人员构建可重用、可维护的软件模块,同时提高代码的可读性和可理解性。

本文将介绍arm嵌入式系统中面向对象的模块编程方法的基本概念、特点和实践指导。

面向对象的模块编程方法的基本概念是将软件系统划分为多个相互关联且独立的模块,每个模块都有自己的数据和操作。

模块之间通过定义接口和交互方式来实现通信和协作,从而实现整个系统的功能。

面向对象的模块编程方法的特点之一是封装。

封装是指将数据和操作封装在一个模块内部,对外部只暴露必要的接口。

通过封装,可以隐藏内部实现细节,提供简单、清晰的接口,减少模块之间的耦合度,提高模块的可复用性。

另一个特点是继承和多态。

继承是指模块可以从其他模块中继承数据和操作,从而扩展和重用现有的模块。

多态是指通过接口统一地访问不同类型的模块,从而实现代码的灵活性和可扩展性。

实践中,arm嵌入式系统中的面向对象的模块编程方法可以按照以下步骤进行:1. 根据系统需求和功能划分,将软件系统划分为多个模块。

每个模块应该有明确的功能和职责,遵循单一职责原则。

2. 设计模块之间的接口和交互方式。

接口应该简单、清晰,只暴露必要的操作。

交互方式可以使用函数调用、消息传递等方式,根据具体情况选择最合适的方式。

3. 实现模块内部的数据和操作。

数据可以是变量、结构体等,操作可以是函数、方法等。

保持数据和操作的内聚性,同时注意控制数据的访问权限,避免数据不一致和错误。

4. 确定模块之间的依赖关系。

模块之间可以有依赖关系,但应避免循环依赖和过度耦合。

可以使用依赖注入、接口抽象等方式来减少依赖关系的耦合度。

5. 测试和调试模块。

在开发过程中,可以通过单元测试、集成测试等方式对模块进行测试和调试,确保其功能正确性和稳定性。

通过以上步骤,可以实现arm嵌入式系统中面向对象的模块编程方法。

这种编程方法可以提高代码的可重用性、可维护性和可扩展性,同时提高开发效率和软件质量。

嵌入式Linux系统开发教程参考答案

嵌入式Linux系统开发教程参考答案

参考答案第一章p20一、填空题。

1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能。

2、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、内核可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

3、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。

4、嵌入式处理器目前主要有ARM、MIPS、Power PC、68K等,其中arm处理器有三大特点:体积小、低功耗、的成本和高性能,16/32位双指令集,全球合作伙伴众多。

5、常见的嵌入式操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II和eCOS。

6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。

二、选择题1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备:、存储器(SDRAM、ROM等)、设备I/O接口等。

(A)A、嵌入式处理器B、嵌入式控制器C、单片机D、集成芯片2、20世纪90年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为,并作为一种软件平台逐步成为目前国际嵌入式系统的主流。

(D)A、分时多任务操作系统B、多任务操作系统C、实时操作系统D、实时多任务操作系统3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是。

(B)A、PalmB、VxWorksC、LinuxD、WinCE4、嵌入式系统设计过程中一般需要考虑的因素不包括:()A、性能B、功耗C、价格D、大小5、在嵌入式系统中比较流行的主流程序有:()A、AngelB、BlobC、Red BootD、U-BootA DB ?A三、叙述题1、举例说明身边常用的嵌入式系统。

嵌入式ARM的名词解释

嵌入式ARM的名词解释

嵌入式ARM的名词解释嵌入式系统已经成为现代科技领域中不可或缺的一部分。

它们的应用范围涵盖了从智能手机到家用电器、从汽车到医疗设备等各个领域。

而在嵌入式系统的背后,ARM架构是一项重要的技术,嵌入式ARM的名词解释将会带领你深入理解这一概念。

一、ARM(Advanced RISC Machines)架构首先,我们需要明确ARM是什么。

ARM并不是指一种特定的处理器芯片,而是一种处理器架构,也可以理解为一种设计思想。

它的特点是精简指令集(RISC)和低功耗高性能的结合。

ARM架构的优点在于处理器的核心部分,它只占用了相对较小的硅片面积,因此能够在有限的空间内提供高效能的运算。

ARM架构主要以许可形式授权给其他集成电路设计厂商进行生产。

二、嵌入式系统嵌入式系统是指嵌入了计算机系统并且用于特定功能的电子产品。

区别于一般计算机系统,嵌入式系统的规模通常较小,但功耗以及性能要求非常高。

它们被设计成将一些特定功能嵌入到其他设备中,以提供更高效的工作方式和更丰富的用户体验。

三、嵌入式ARM的应用在嵌入式系统领域,ARM架构已经成为首选的处理器架构之一。

它在各种嵌入式设备中得到广泛应用,如智能手机、平板电脑、路由器、数字相机、游戏机等等。

由于ARM处理器节能高效的特性,它能够满足嵌入式系统对功耗和性能平衡的要求。

四、SoC(System on Chip)SoC是指将所有的计算机系统功能集成到一块芯片中的解决方案。

也就是说,通过SoC,整个系统包括处理器核心、内存、输入输出接口以及其他必要的硬件部件,都被集成到一块芯片上,以实现高度的集成度和紧凑的设计。

嵌入式ARM系统通常采用SoC的形式,因为它能够在较小的尺寸和功耗限制下提供全面的计算功能。

五、ARM处理器系列ARM架构下有多个不同的处理器系列可供选择,每个系列都具有不同的特点和应用场景。

比较常见的系列有Cortex-A、Cortex-R和Cortex-M系列。

NI LabVIEW ARM嵌入式开发模块使用入门

NI LabVIEW ARM嵌入式开发模块使用入门
仿真下载调试 · ULINK2 仿真器 · 2 条 USB 串行线缆,每根不得超过 10 英尺
图 2 显示了 LM3S8962 评估板上的部分内容,而线缆和仿真器则请参照相关硬件方面的文 档。
警告:当从包装中移动板件时请小心,不要用手碰触,以防静电击穿某些零部件。
这篇手册包含系统需求,安装指令,新添加的性能,和一步步教你如何编译,运行,和调试 ARM 应用。
目录
系统需求······································································2 安装 ARM 嵌入式模块··························································2 评估 ARM 嵌入式模块··························································3 安装 MCB2300 评估板··························································3 安装 LM3S8962 评估板·························································5
你能在安装后 60 天内评估这个模块,当你在评估模式运行这个 ARM 模块时,LabVIEW 包含有下列限制:
注意:如果你评估这个模块时,却已获得许可和激活 LabVIEW 开发系统,这些限 制应用只是针对 ARM 芯片,VIs 和应用开发方面。 · 评估版本 60 天时间期限——当没被激活时,LabVIEW 在每次打开时都会提示你激 活。当你对应用编译 VI 时,你也会收到一个警告,直到你激活了 Keil uVision。评 估期限到时,你不能再打开 LabVIEW,你只有购买或激活这个模块。 · 编译空间限制——当你使用 LabVIEW 创建并编译应用时,Keil uVision 有 128KB 空 间限制。 · 评估版本 60 天的水印标记限制——所有用户 VI 在前面板上都有个评估版本的水印 标记。 安装 MCB2300 评估板 你用 JTAG 仿真模拟时,需要具备下列准备工作来使用 MCB2300 评估板: · MCB2300 板 · 带两个空闲 USB 端口的电脑:一个 USB 口给 MCB2300 板供电,另一个口执行 ULINK2 仿真下载调试 · ULINK2 仿真调试器 · 两根 USB 串行电缆,每根不超过 10 英尺 警告:当从包装中移动板件时请小心,不要用手碰触,以防静电击穿某些零部件。 图 1 展示了 MCB2300 评估板上某些零部件,更多信息可参照硬件文本内容。

arm嵌入式开发板

arm嵌入式开发板
那么,作为“发包方”的开发板用户,选择开发板的时候,实际上选择的不仅是一个硬件板子、开发板提供 的源代码等资源,而是选择一个合作伙伴,一个为用户提供软硬件服务的合作伙伴。与软件外包这种合作方式类 似,用户和供应商之间的合作更多是软件方面的合作,需要用户和供应商之间根据产品的具体需求进行充分沟通, 供应商要根据用户的需求不断地调用人员进行配合。像我们在支持客户进行产品开发的过程中,遇到的比如更改 文件系统、串口测试、64M Flash换成128M Flash等问题,大多情况都是要通过软件方式来解决的,这就形成了 嵌入式行业供应商的售后支持和客户研发的高度互动性。
半导体厂商专注于芯片的设计,对参考设计的投入一定不会像开发板的厂商一样,能够做到专注专业。国外 芯片厂商的工程师,在做参考设计的时候,习惯上会采用在本国使用比较多的外围芯片。这样,半导体厂商的参 考设计对国内厂商提供的参考价值有限。
所以,在选择开发板的时候,无论是出于最终产品的性能和功能考虑,还是为后期能够更加方便地制造生产, 用户一定要擦亮眼睛,仔细对比一下供应商提供的开发板是不是更加适合自己的产品研制和生产。
感谢观看
无论是8位、16位单片机,还是32位能够运行操作系统的嵌入式处理器,半导体厂商都有这样的参考设计。 对应的,市面上有很多向用户提供开发板的厂商。
嵌入式处理器不断推陈出新,早期摩托罗拉半导体(现飞思卡尔半导体)68K/Coldfire和PowerPC处理器的 一枝独秀已经一去不返,ARM、Coldfire、PowerPC和ADSP、MIPS、X86体系结构的嵌入式处理器百花齐放、处理 器厂商以及处理器架构厂商各显神通,半导体行业的上游企业给开发板厂商的出现和成长提供很好的契机。
arm嵌入式开发板
半导体行业分工合作的载体

qtcreator单步调试嵌入式arm程序的方法

qtcreator单步调试嵌入式arm程序的方法

qtcreator单步调试嵌入式arm程序的方法前言该方法配置步骤为:(1)安装gdb-multiarch。

(2)在qtcreator中配置gdb-multiarch。

(3)启动板子上的gdbserver。

(4)将qtcreator连接到板子上的gdbserver,启动单步调试。

1.安装gdb-multiarch使用“sudo apt-get install gdb-multiarch”命令安装gdb-multiarch。

安装完如图1所示。

图12.在qtcreator中配置gdb-multiarch在qtcreator中添加gdb-multiarch步骤如下。

在[工具]-[选项]中,在[Debuggers]页面中,添加gdb-multiarch,如图2和图3所示。

图2图3在[构建套件(kit)]页面中,添加gdb-multiarch对应的调试器,如图4所示。

图43.在板子上启动gdbserver将要调试的程序拷贝到板子上,如图5所示。

图5用如下指令,启动gdbserver。

gdbserver 172.24.119.123:8888 /tmp/only_only_test172.24.119.123是虚拟机的IP地址。

8888是选取的一个通信端口。

/tmp/only_only_test是板子上要调试的程序。

如图6所示。

图64.qtcreator连接gdbserver单步调试首先,确保虚拟机与板子能互相ping通,如图7所示。

图7然后,在虚拟机的qtcreator中,用Debug模式编译程序,如图8所示。

图8在虚拟机中的qtcreator中,点击[调试]-[开始调试]-[Attach to Running Debug Server...]。

参考图9进行设置。

图9设置中:✧本地执行档:虚拟机中待调试程序的存在位置。

✧Override server channel: IP地址为板子IP地址,端口号为gdbserver启动时指定的端口号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州大学毕业设计(翻译)题目:Virtual ARM Platform for Embedded System Developers指导教师:李正民职称:副教授学生姓名:乔旭学号:20052430222专业:计算机科学与技术院(系):信息工程学院完成时间:2009年5月20日2009年5月20日为嵌入式系统开发人员建立虚拟的ARM平台[摘要]越来越多的嵌入式系统开发人员和片上系统设计师采用microprocessor-based(基于微处理器的)设计方法,以减少推向市场的时间。

在过去的10年里,ARM处理器一直都是嵌入式系统行业的主角之一。

然而,在早期设计阶段,有许多对基于ARM处理器的嵌入式软件开发的限制。

对于那些不熟悉嵌入式软件设备的人来说,在ARM硬件平台上测试他们的软件是一项异常艰巨的工作。

为克服这些问题,我们为基于ARM的嵌入式系统开发人员设计了虚拟的ARM平台,提供更容易测试和调试的环境。

使用虚拟ARM平台的好处是:(1)减少开发成本,(2)对于初学者降低了入门的难度,以及(3)让您更轻松地测试和调试嵌入式软件。

与许多其他的纯粹以软件为导向且独立于硬件平台的ARM模拟器不同,我们的虚拟ARM平台是专门针对SYS-Lab 5000 ARM硬件平台(由Libertron公司负责设计制造)研发的,这意味着我们的平台可以尽可能地模仿在目标硬件上的嵌入式软件的各种行为。

本文旨在介绍我们的虚拟ARM平台的设计思想以及它在减少设计时间和开销方面的一些应用。

1.导言嵌入式系统是一个拥有特殊用途的计算机系统,它仅仅采用通用计算机系统一小部分的专用功能,有时还需要进行实时处理。

通常,嵌入式系统具备完整的硬件设备和机械装置,并且它已经深深渗透到现代生活的方方面面。

不仅仅是个人数字助理(PDA)、mp3、手机等电子消费产品,在电信系统,交通运输系统,医学仪器等领域里,仍然存在着许多的嵌入式系统,例如防抱死刹车系统(ABS)、GPS、电子听诊器等。

[1]微处理器是嵌入式系统非常重要的硬件结构之一。

随着个人计算机和因特网的普及,微处理器成为IT行业发展中的主要角色。

针对不同的用途,每个微处理器都有自己的特殊结构。

[2]其中,ARM微处理器采用RISC结构,被广泛应用于嵌入式系统的设计之中。

这不仅仅是因为它的高性能和廉价,而且还因为它有低功耗的特点。

ARM系列处理器在各种电子消费类产品中占有很大优势,从便携式设备(PDAs,手机,媒体播放器,掌上游戏机和计算器)到计算机外设(硬盘,桌面路由器)。

我们即将在本文中介绍的虚拟ARM平台,是一个为目标硬件设计的ARM模拟器。

与其他仅仅在软件模型上设计的虚拟ARM机不同,我们的虚拟ARM平台可以与目标嵌入式系统执行相类似的操作。

这种相类似的操作具体是指我们的虚拟ARM平台允许嵌入式系统开发人员在一个正真的H/W平台上开发和测试他们的嵌入式应用。

为执行一个特定的虚拟ARM平台,我们已经选择了SYS-Lab5000 ARM硬件平台作为我们的目标H/W平台。

正是由于特定目标的虚拟平台可以测试目标平台的细节而无需实际的目标平台,设计时间和花销被大幅的降低了。

尤其在教学领域,在无法提供充足数量的嵌入式设备时,这种针对特定目标的虚拟平台将尽可能减少学生对实际硬件的需求,同时为学生学习如何设计特定目标的嵌入式系统提供巨大帮助。

我们的虚拟ARM平台通过使用SimIt-ARM虚拟器和QT程序库的用户图形界面,完全可以建立在ARM虚拟器之上。

为了方便维护和调试,我们还扩展了特定目标的易用程度,设计了给定平台信息,提供自动进行特定平台环境设置的模拟器。

此外,我们还可以为简易操作系统模拟器运行中断句柄定时器。

本文的余下部分将介绍以下内容:在第二部分,我们讨论在虚拟ARM平台上开发嵌入式系统与实际硬件平台上的区别。

在第三部分,我们将总结一些相互关系的研究成果。

第四部分介绍我们的虚拟ARM平台是如何组织和工作的,第五部分介绍我们的研究成果,第六部分是总结。

2.虚拟ARM平台的需求2.1 S/W嵌入式系统的发展众所周知,在通用计算机平台例如PC上开发软件与在嵌入式平台上开发软件有很大的不同。

因此,通用平台软件开发人员在开发嵌入式平台软件时,可能会遇到很多困难。

因为,嵌入式系统软件开发需要将通用运行程序烧录到嵌入式平台中,并检查它的运行。

这就意味着当通用软件有相同的开发和运行环境(不同PC之间)时,软件开发环境(以PC为例)和嵌入式软件运行环境(嵌入式目标平台)不相同。

图1展示的是通常开发和测试嵌入式系统软件的步骤。

图1 嵌入式系统软件的开发与PC软件在每一步发展中仅仅需要PC不同,嵌入式软件的发展需要在实际的嵌入式系统硬件上进行。

对于那些不熟悉嵌入式软件环境的人来说,在实际的硬件平台上测试他们的软件是一件很富有挑战性的工作。

他们需要全面了解嵌入式系统,并善于使用硬件和在硬件上烧录程序。

而且,如果他们不能负担足够的嵌入式系统(通常价格昂贵),他们能在实际硬件上测试他们软件的机会将变得极为有限。

为了解决这一问题,我们设计了能够方便测试和调试基于ARM嵌入式系统开发人员的虚拟ARM平台。

2.2 虚拟ARM平台的使用虚拟ARM平台可以和实际ARM硬件平台一样地观察嵌入式软件运行的结果。

开发人员可以写程序代码,在客户机(PC)上通过虚拟ARM平台证实他们的程序。

因为它除PC外不需要其他的硬件,在开发程序时也不需要烧录的阶段。

图2展示的是在虚拟ARM平台上开发嵌入式系统程序的过程。

图2 在虚拟ARM平台上开发嵌入式应用程序的过程3.一些相互关系的工作成果近些年来,在嵌入式软件虚拟工具方面有许多研究成果,以下我们简要地对其中的部分成果进行总结。

在嵌入式系统开发中,作为最广为人知的ARM模拟器,ARMulator常被用于提供虚拟环境原型。

通过虚拟的硬件IP和端口,在ARMulator上操作系统(例如μC/OS-II)[6]可以脱离H/W平台模拟运行。

SimIt-ARM是一个设置指令的模拟器,它可以在用户层和系统层运行ARM程序。

SimIt-ARM支持两种流行的模拟形式:解释和动态编译。

但正如图3所示,SimIt-ARM不能够脱离在C运行库支持下的I/O控制代码去建立固件级的程序。

因此,对于不同的目标平台,初始化代码也是不相同的。

开发人员不能在虚拟工具和目标H/W ARM平台中使用相同的可执行程序。

图3 在两种平台下固件级代码的运行所有的这些努力都为了向开发人员提供书写源代码,建立可执行程序,并在主机PC上运行的功能。

但不幸的是,这些工具只能在特定目标处理器上模拟可执行文件。

因此它不能为整个目标硬件平台模拟运行,不能控制外围设备,同时在代码模拟上也有相当大的限制。

4.虚拟ARM平台的执行我们建议虚拟ARM平台对外围设备进行持续的控制,这是以往的ARM模拟器所不能提供的。

通过对外围设备增加控制代码,现有的ARM模拟器(例如SimIT-ARM或者SimpleScalar)可以控制外围设备,例如LED,七段数码显示器,步进电机等等。

图4展示的是虚拟ARM平台通过对外围设备的“靶样”控制,开发嵌入式系统的步骤。

图4 虚拟ARM平台对外设提供控制虚拟ARM平台由虚拟ARM模拟器,图形用户界面,输入事件句柄,定时器,和I/O设备模型组成。

如图5所示,虚拟ARM平台启动后,首先初始化图形用户界面,在屏幕上显示GUI主窗口,然后虚拟ARM模拟器开始运行,处理可执行文件的操作并向虚拟ARM平台发送结果。

当虚拟ARM平台从虚拟ARM模拟器得到模拟结果后,便同从虚拟ARM模拟器得到的可执行报告一道更新它的用户界面。

当输入事件句柄发现任何输入事件,他分析事件,当事件是中断请求时,他将中断当前执行的程序。

如果事件不是中断请求,句柄将输入事件进程发送到虚拟ARM模拟器来模拟修改后的数据操作。

图5 在虚拟 ARM平台运行程序4.1 虚拟ARM模拟器虚拟ARM模拟器不仅可以解码还可以与实际的ARM处理器一样运行给定的ARM操作,即处理从虚拟ARM平台转移的事件。

如图6所示,当虚拟ARM模拟器解码ARM命令时,要检查解码命令是否包含外围设备的控制地址。

如果不包含,虚拟ARM模拟器仅仅运行ARM命令并向虚拟ARM平台发送结果。

然而,如果包含,虚拟ARM模拟器可以执行额外的操作。

因此,虚拟ARM平台利用I/O内存映像图控制外围设备,特定平台的数据文件包含设备控制记录存取地址和相应的设备控制地址。

一个特定数据文件的平台例子如表1所示。

通过查找H/W 特定数据平台,虚拟ARM模拟器确定应该控制哪个设备,确定如何控制相应的设备。

最终,虚拟ARM模拟器通过发送设备控制符和虚拟ARM平台数据处理控制设备。

图6 在虚拟 ARM模拟器上运行程序表1 对SYS-Lab 5000 ARM H/W平台的数据抽样通过使用特定平台的数据文件,开发人员允许在虚拟ARM平台和实际H/W平台上使用相同的代码控制外围设备。

4.2 图形用户界面图形用户界面将被用于处理输入事件,程序同步,打印屏幕上的模拟结果。

如图7是我们的GUI全局结构。

图7 图形用户界面和虚拟ARM模拟器GUI看起来与实际的目标H/W平台一致。

GUI通过打印真实设备的更改显示外围设备控制结果。

同样地,在GUI中当开发人员敲击外围设备(例如键盘和转换器)使虚拟ARM平台发现外部输入。

在开发人员控制外围设备时,图8.2显示了一个执行GUI的例子,图8.1显示了一个脱离GUI的虚拟ARM平台的例子。

图8.1 脱离GUI的虚拟ARM平台LED显示图8.2 GUI下的虚拟ARM平台LED显示4.3 定时器和I/O设备我们还在虚拟ARM平台上使用定时器。

当虚拟ARM平台启动时,初始化定时器。

通过使用定时器,开发人员可以测试看门狗定时器中断,上下文开关程序和系统内核模拟器例如μC/OS-II[6]。

图9显示了定时器被用于操作系统定时器。

图9 操作系统定时器是如何在虚拟ARM平台上工作的虚拟ARM模拟器可以像使用SDRAM单元一样使用虚拟SDRAM。

通过使用作为虚拟内存的虚拟SDRAM,虚拟ARM模拟器可以通过连接I/O控制代码模拟固件级代码,使得代码的运行与实际H/W ARM平台相一致。

图10显示了在虚拟ARM平台和实际H/W ARM平台上的固件级代码均可以运行。

图10 在虚拟ARM平台和H/W平台上运行固件级代码当然,我们还可以使用LED,点阵,七段数码管,LED文本显示器,步进电机,直流电机和键盘区。

LED(如图8.2),点阵(如图11.1),七段数码管(如图11.2)都可以通过CPU时钟控制将控制数据转换为图形输出。

LED文本显示器(如图11.3)通过一步步地输入文本控制数据,可以在LED上显示给定的打印信息。

相关文档
最新文档