没有合适的资源?快使用搜索试试~ 我知道了~
ARM嵌入式开发流程和开发工具(含ADS与MultiICE简介).pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 76 浏览量
2021-11-25
09:51:06
上传
评论
收藏 460KB PDF 举报
温馨提示
试读
11页
ARM嵌入式开发流程和开发工具(含ADS与MultiICE简介).pdf
资源推荐
资源详情
资源评论
第 4 章 ARM 嵌入式开发流程和开发工具
嵌入式系统的设计可以分成三个阶段: 分析、 设计和实现。 分析阶段是确定要解决的问
题及需要完成的目标, 也常常被称为 “需求阶段 ”;设计阶段主要是解决如何在给定的约束条
件下完成用户的要求;实现阶段主要是解决如何在所选择的硬件和软件的基础上进行整个
软、硬件系统的协调实现。 在分析阶段结束后, 通常开发者面临的一个棘手的问题就是硬件
平台和软件平台的选择,因为它的好坏直接影响着实现阶段的任务完成。
通常硬件和软件的选择包括: 处理器、 硬件部件、 操作系统、 编程语言、 软件开发工具、
硬件调试工具、软件组件等。
在上述选择中,通常,处理器是最重要的,同时操作系统和编程语言也是非常关键的。
处理器的选择往往同时会限制操作系统的选择,操作系统的选择又会限制开发工具的选择。
4.1 ARM 嵌入式开发模式
嵌入式系统与一般 PC 机在开发的硬件环境上的最大差异就是它分成两个平台, 一个是
宿主机( Host),一个是目标机( Target)。这里的宿主机通常就是 PC 机,首先利用宿主机
上丰富的资源、 良好的开发环境编写和编译能够在目标机上运行的程序, 这个过程叫做交叉
编译, 然后通过串口、 并口、 网络或其它接口通过一定的传输手段将交叉编译生成的目标代
码传输并装载到目标机上。图 4-1 中就是采用并口在线仿真器与目标机和宿主机进行连接,
从而实现目标代码的运行和调试。宿主机的工作环境可以是 Windows 98,Windows XP,
Windows 2000 以及 RedHat 等操作系统, 具体选择何种操作系统是由所采用的仿真器和所开
发的软件决定, 在 ARM 的开发过程中对于不同的软件开发阶段所采用的调试手段是不同的,
宿主机的操作系统需求也就不一样。详细的描述请参考本节后面的内容。
图 4-1 所示为一个典型的目标机 /宿主机开发模式。宿主机运行 ADS 1.2 集成开发环境,
并通过在线仿真器 (Multi-ICE )对目标处理器 (Samsung 公司的基于 ARM920T 核的 S3C2410
处理器) ARM 处理器进行调试。宿主机和在线仿真器通过并口连接,在线仿真器同时连接
到目标机的 JTAG 接口。
4.2 ARM 嵌入式开发流程和开发工具
ARM 嵌入式系统的开发流程非常灵活而复杂,尤其是软件开发过程牵涉到许多不同的
开发过程,而且每个开发过程所使用的开发工具均不尽相同,因此,在深入学习 ARM 软件
开发之前, 有必要对 ARM 嵌入式开发流程和所使用的开发工具有一个初步的了解, 本节就
是要达到这样的目的,至于各个开发过程和开发工具的详细介绍请参考后续有关章节。
宿主机
ADS 1.2
在线仿真器
Multi-ICE
嵌入式系统
S3C2410
(ARM920T)
并口
JTAG接口
图 4-1 目标机 /宿主机开发模式
4.2.1 选择硬件平台
1、处理器的选择
嵌入式系统的核心部件是各种类型的嵌入式处理器。 据不完全统计, 目前全世界嵌入式
处理器的品种总量已经超过 1000 多种,流行体系结构有 30 几个系列。但与全球 PC 市场不
同的是,没有一种微处理器和微处理器公司可以主导嵌入式系统,仅以 32 位的 CPU 而言,
就有 100 种以上嵌入式微处理器。 由于嵌入式系统设计的差异性极大, 因此选择是多样化的。
ARM 是近年来在嵌入式系统有影响力的微处理器制造商, ARM 的设计非常适用于小
的电源供电系统。 Apple 在 Newton 手持计算机中使用 ARM ,另外有几款数字无线电话也在
使用 ARM 。
设计者在选择处理器时要考虑的主要因素有:
1)处理性能
一个处理器的性能取决于多个方面的因素, 如时钟频率, 内部寄存器的大小, 指令是否
对等处理所有的寄存器等。 对于许多需用处理器的嵌入式系统设计来说, 目标不是在于挑选
速度最快的处理器,而是在于选取能够完成设计目标的处理器。
比如:对于 ARM 处理器, 如果需要使用软解压实现视频, 应该尽量选用 ARM9 、Xscale
等高档处理器。而对于一般工业控制,则可以考虑 ARM7 芯片是否满足要求。
2)技术指标
当前, 许多嵌入式处理器都集成了外围设备的功能, 减少了芯片的数量, 降低了整个系
统的开发费用和技术难度。 开发人员首先考虑的是, 系统所要求的一些硬件能否方便地连接
到处理器上。其次是考虑该处理器的一些支持芯片,如 DMA 控制器,内存管理器,中断控
制器,串行设备、时钟等的配套。
各个厂家市场的 ARM 芯片都根据不同的设计目标扩展了丰富的接口, 在选择处理器时
应该考虑选择能够支持尽可能多的功能,尤其是相对设计复杂的功能。
3)功耗
嵌入式微处理器最大并且增长最快的市场是手持设备、电子记事本、 PDA、手机、 GPS
导航器、 智能家电等消费类电子产品。 这些产品对微处理器的基本要求是: 高性能、 低功耗。
4)操作系统和软件支持工具的选择
操作系统的移植和开发是嵌入式设计中的一个关键阶段。 处理器和操作系统的选择在一
定程度上互相影响, 同时又将影响其软件支持工具, 因此, 处理器的选择的同时必须充分考
虑操作系统的因素。
在 ARM 系统中,如果用户希望使用 Windows CE、Linux 等操作系统,就需要选择
ARM720T 以上带有 MMU ( Memory Management Unit )功能的 ARM 芯片, ARM720T 、
ARM920T 、 ARM922T 、 ARM946T 、Strong-ARM 都带有 MMU 功能。而 ARM7TDMI 则没
有 MMU ,不支持 Windows CE 和 Linux ,但目前有 uCLinux 以及 uC/OS-II 等不需要 MMU
支持的操作系统可运行于 ARM7TDMI 硬件平台之上。事实上, uCLinux 已经成功移植到多
种不带 MMU 的微处理器平台上,并在稳定性和其他方面都有上佳表现。
另外,如果决定采用 Linux 、Windows CE 、vxWorks 等操作系统时,在选择处理器时应
该尽量选择该操作系统已经支持的处理器,这样可以大大加快开发进度,降低难度。
选择不同的操作系统, 其软件开发过程和调试手段各不相同, 你的选择方案是否能够提
供各个开发阶段(包括 bootloader 开发、操作系统移植、驱动开发和应用开发)所需的软件
支持工具也是一个必须考虑的因素。
5)是否内置调试工具
处理器如果内置调试工具可以大大缩小调试周期,降低调试的难度。 ARM 提供 JTAG
调试接口,而且有众多的第三方厂家推出各种调试工具。
2、硬件平台的选择
选择好目标微处理器后还需要准备硬件平台。 目前国内外有许多针对各种 ARM微处理器
的开发板, 这些开发板对所支持的 ARM微处理器做了详细的硬件评估和软件支持。 在自己动
手设计硬件平台之前, 购买一块这种开发板作为测试平台, 进行学习和参考, 这样可以大大
加快开发进度。 对于一些应用, 也可以直接在这些开发板上进行, 这样可以省略硬件设计的
阶段。
如果您不打算购买开发板作为测试平台,您就需要自行设计硬件平台。在本书的第 5
章中,以目前国内 ARM9的主流芯片: Samsung公司的 S3C2410 为例,详细介绍了该处理器
的硬件架构和硬件接口扩展方法。
4.2.2 硬件驱动调试
如果硬件平台是自行设计的, 必须首先对硬件进行调试, 硬件调试成功是进行操作系统
移植和应用程序开发的一个基本前提。
这个过程通常是通过编写一些简单的测试程序直接驱动硬件以验证硬件是否正确, 这些
程序可以基于操作系统进行编程,也可以不使用操作系统,而且后一种方法来得更加简单,
调试也更方便和快捷。
这一类过程通常采用图 4-1 所示的开发模式,在运行于 Windows 的 ADS 1.2 中编写程
序并编译,然后通过 Multi-ICE 下载并调试程序。由于这个过程的编程动作依赖于硬件,采
用这种模式可以充分利用在线仿真器的强大的软件调试功能,从而加快排错过程。
4.2.3 操作系统的选择和移植
在单片机系统中, 由于受硬件资源的限制, 同时应用程序通常比较简单, 因此, 通常不
使用操作系统, 直接采用前后台程序控制方式设计软件系统。 前台运行一个死循环作为主程
序流程, 在主程序中设置中断, 当中断产生的时候, 运行后台中断服务程序, 然后返回继续
运行主程序。 这样的开发方式在 ARM 开发中同样适用, 而且对于一些小型应用完全可以采
取这种方式, 但是对于复杂应用, 如复杂的图形用户界面、 网络协议等, 采用前后台控制方
式进行设计的应用程序设计复杂,而且不便于软件模块的划分和软件升级、维护等。
在这种情况下, 操作系统的优势展露无疑。 使用操作系统能够充分发挥 ARM 微处理器
的优势。 目前绝大多数嵌入式操作系统都能够稳定运行在 ARM 微处理器上。 软件开发中必
须首先选择合适的操作系统。 下面将简单介绍几种常用的嵌入式操作系统以及它们的基本开
发流程。
1、μC/OS-II
μ C/OS-II 是一种免费公开源代码、 结构小巧、 具有可剥夺实时内核的实时操作系统。 其
内核提供任务调度与管理、 时间管理、 任务间同步与通信、 内存管理和中断服务等功能。 它
可以基于 ROM 运行( ROMable)、可裁减,具有高度移植性。
从应用的角度来看, μC/OS-II 提供了一个实时性非常好的嵌入式内核, 在工业控制、 数
据采集等领域应用广泛。但 μC/OS-II 内核不支持文件系统、网络协议等功能,而且没有提
供统一的硬件驱动程序接口和开发工具链, 在复杂应用中需要考虑内核以外功能的实现难易
程度。
μ C/OS-II 内核不支持文件系统, 不支持应用程序和驱动程序的加载, 因此,在 μ C/OS-II
开发中, 内核、 驱动程序和应用程序都是集中编译, 也就是说, μC/OS-II 编译以后的二进制
代码中即包含内核代码,也包含驱动程序和应用程序的代码。同时 μC/OS-II 没有提供统一
剩余10页未读,继续阅读
资源评论
zhangshut
- 粉丝: 0
- 资源: 3万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功