ARM开发基础知识.docx

上传人:b****4 文档编号:12161527 上传时间:2023-04-17 格式:DOCX 页数:7 大小:36.20KB
下载 相关 举报
ARM开发基础知识.docx_第1页
第1页 / 共7页
ARM开发基础知识.docx_第2页
第2页 / 共7页
ARM开发基础知识.docx_第3页
第3页 / 共7页
ARM开发基础知识.docx_第4页
第4页 / 共7页
ARM开发基础知识.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

ARM开发基础知识.docx

《ARM开发基础知识.docx》由会员分享,可在线阅读,更多相关《ARM开发基础知识.docx(7页珍藏版)》请在冰豆网上搜索。

ARM开发基础知识.docx

ARM开发基础知识

ARM开发基础知识

ARM开发基础知识

1ARM概述

1.1ARM简介

ARM(AdvancedRISCMachines)有三种含义,它是一个公司的名称,是一类微处理器的通称,还是一种技术的名称。

ARM公司是微处理器行业的一家知名企业,设计了大量高性能、廉价、低耗能的RISC(ReducedInstructionSetComputing,精简指令集计算机处理器)芯片,并开发了相关技术和软件。

ARM处理器具有性能高、成本低和能耗低的特点,适用于嵌入式控制、消费/教育类多媒体、DSP和移动式应用等领域。

ARM公司本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。

ARM这种商业模式的强大之处在于其价格合理,它在全世界范围的合作伙伴超过100个,其中包括许多著名的半导体公司。

ARM公司专注于设计,设计的芯片内核耗电少,成本低,功能强,特有16/32位双指令集。

ARM已成为移动通信、手持计算和多媒体数字消费等嵌入式解决方案的RISC实际标准。

1.2ARM微处理器特点

采用RISC架构的ARM微处理器具有如下特点:

1、体积小、低功耗、低成本、高性能;

2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定;

1.3ARM应用领域

到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:

1、工业控制领域:

作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。

2、无线通讯领域:

目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。

3、网络应用:

随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。

此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。

4、消费类电子产品:

ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。

5、成像和安全产品:

现在流行的数码相机和打印机中绝大部分采用ARM技术。

手机中的32位SIM智能卡也采用了ARM技术。

除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来

取得更加广泛的应用。

1.4ARM内核

ARM内核当前有6个产品系列:

ARM7、ARM9、ARM9E、ARM10E、

ARM11和SecurCore,其中ARM11为最近推出的产品。

进一步的产品来自于合作伙伴,例如IntelXscale。

ARM7、ARM9、ARM9E、ARM10E是4个通用处理器系列。

每个系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。

SecurCore是专门为安全设备而设计的。

ARM7内核采用冯·诺伊曼体系结构,数据和指令使用同一条总线。

内核有一条3级流水线,执行ARMv4指令集,主频最高可达130MIPS。

ARM7系列处理器主要用于对功耗和成本要求比较苛刻的消费类产品。

其最高主频可以到达130MIPS(MIPS指每秒执行的百万条指令数)。

ARM7系列包括ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T4种类型,主要用于适应不同的市场需求。

值得注意的是ARM7没有MMU单元。

ARM7系列微处理器的主要应用领域为:

工业控制、Internet设备、网络和调制解调器设备、移动等多种多媒体和嵌入式应用。

ARM9系列于1997年问世。

由于采用了5级指令流水线,ARM9处理器能够运行在比ARM7更高的时钟频率上,改善了处理器的整体性能;存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分了数据总线和指令总线。

ARM9系列的第一个处理器是ARM920T,包含独立的数据指令Cache和MMU。

此处理器能够被用在要求有虚拟存储器支持的操作系统上。

此系列的ARM922T是ARM920T的变种,只有一半大小的数据指令Cache。

ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。

ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。

ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。

主频高达300MIPS。

ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。

ARM1136J-S发布于2003年,是针对高性能和高能效应而设计的。

主频高达800MIPS。

ARM1136J-S是第一个执行ARMv6架构指令的处理器。

它集成了一条具有独立的Load/Stroe和算术流水线的8级流水线。

ARMv6指令包含了针对媒体处理的单指令流多数据流扩展,采用特殊的设计改善视频处理能力。

SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案。

SecurCore系列处理器除了具有体积小、功耗低、代码密度高等特点外,还具有它自己特别优势,即提供了安全解决方案支持。

主要特点:

1、支持ARM指令集和Thumb指令集,以提高代码密度和系统性能;

2、采用软内核技术以提供最大限度的灵活性,可以防止外部对其进行扫描探测;

3、提供了安全特性,可以抵制攻击;

4、提供面向智能卡和低成本的存储保护单元MPU;

5、可以集成用户自己的安全特性和其他的协处理器。

2开发工具

2.1集成开发环境

ARMADS是ARM公司推出的取代ARMSDT的集成开发环境,目前版本为ARMADS1.2。

ARMADS起源于ARMSDT,对一些SDT的模块进行了增强,并替换了一些SDT的组成部分,现代集成开发环境的一些基本特征在ARMADS中都有体现,ARMADS支持所有的ARM处理器。

ARMADS可能是目前最常用的ARM集成开发环境,通过简单实惠的JTAG板可实现ARM处理器仿真调试功能。

RealViewMDK是ARM公司主推的ARM处理器集成开发环境,界面友好,功能强大,配合ARM公司的ULINK2仿真器可以进行ARM处理器的仿真调试功能。

MDK提供某些ARM处理器的外设模拟器,通过外设模拟器,可以直接在MDK下进行外设行为的模拟,方便的进行开发。

随着ARM公司和英蓓特的大力推广,MDK无疑会成为主流的ARM集成开发环境。

Multi2000是美国GreenHills软件公司开发的集成开发环境,支持C/C++、EmbededC++等编程语言的开发和调试,可运行于Windows平台和Unix平台,支持各类设备的远程调试,同时Multi2000支持众多流行的16位、32位和64位的处理器(包括DSP,并支持多处理器调试。

Multi2000包含一个软件工程所需要的所有工具。

2.2ARM仿真器

J-LINK支持IAREWARM,ADS,KEIL,WINARM,RealView等集成开发环境,支持所有ARM7/ARM9/Cortex内核芯片的仿真,通过USB接口连接PC,操作方便、连接方便、简单易学,是学习开发ARM最好最实用的开发工具。

ULINKUSB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD,使用户可在目标硬件上调试代码。

通过使用KeilμVisionIDE/调试器和ULINKUSB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。

2.3嵌入式Linux

嵌入式linux是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。

嵌入式linux既继承了Interlnet上无限的开放源代码资源,又具有嵌入式操作系统的特性。

嵌入式Linux的特点是版权费免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_Linux,HardhatLinux等嵌入式Linux支持,实时性能稳定性好安全性好。

Freescalei.MX系列使用的linux是在linux内核小组的发布的linux版本上添加了i.MX系列芯片的支持,使用方便。

2.4Bootloader

Bootloader即引导加载程序,是系统加电后运行的第一段软件代码。

PC机中的引导加载程序由BIOS(其本质就是一段固件程序和位于硬盘MBR中的OSBootloader(比如,LILO和GRUB等)一起组成。

BIOS在完成硬件检测和资源分配后,将硬盘MBR中的Bootloader读到系统的RAM中,然后将控制权交给OSBootloader。

Bootloader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。

而在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Bootloader来完成。

简单地说,Bootloader就是在操作系统内核运行之前运行的一段小程序。

通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

Bootloader有两种工作模式,正常引导模式和操作系统下载模式。

Bootloader通常提供多种方式下载操作系统镜像,如串口,TFTP,USB。

Bootloader首先将操作系统镜像下载到芯片RAM中,然后将其写入到制定的空间中。

Bootloader提供丰富的命令进行各种操作。

常见的嵌入式开发中的Bootloader有U-boot,vivi,Redboot。

Freescale提供的BSP中是Redboot。

2.5ATK

通常Bootloader是通过ARM仿真器写入到Nandflash或Norfalsh中,但freescale提供了一个特殊的工具ATK(AdvancedToolKit)来烧写Bootloader。

ATK运行在Windows机器上,通过串口连接目标板下载Bootloader,支持i.MX系列所有芯片。

这种方式不需要ARM仿真器。

2.6超级终端,Minicom,SecureCRT

这三个工具都是用来目标板与目标板进行通讯的,硬件连接方式都是串口,其中Minicom运行与linux机器。

他们通过串口将命令或文件发给目标板,并接收回显目标板的返回数据。

其中SecureCRT支持多种协议,其中有安全外壳协议SSH(SecureShell),通过SSH可以通过网络远程访问linux机器,这样可以实现多个人使用同一台linux机器进行开发。

3开发流程

3.1没有操作系统

对于开发人员,完全可以将ARM芯片当作普通MCU使用,此时开发流程与MCU开发流程一致。

采用这种开发方式时,软件系统一般没有操作系统,或者操作系统是非常小,如μCOS等,这些非常小的操作系统通常只具备简单的任务切换功能。

这种开发方式常用于没有MMU(MemoryManagementUnit)模块的ARM7系列芯片中。

没有操作系统的开发流程见图1。

图1没有操作系统时开发流程

ARM开发基础知识201001253.2有操作系统当有操作系统时(后均以linux为例),开发流程将完全不同。

对于没有操作系统的空的开发板,要进行Bootloader,操作系统和rootfs的烧写,步骤如下:

1、Bootloader下载到芯片Flash中2、使用交叉编译环境生成目标板的linux操作系统镜像和根文件系统镜像3、WindowsPC机通过串口连接目标板,运行超级终端或SecureCRT连接目标板4、启动目标板;Bootloader启动5、PC机启动TFTP6、PC输入Bootloader命令下载操作系统和Rootfs镜像。

到此,操作系统已经在目标板成功建立,重启目标板,在超级终端中可以看到启动信息。

当操作系统成功建立以后,程序的编写流程如下:

1、在装有Linux的PC机上利用文本编辑工具编写源程序2、使用gccforarm编译源程序得到目标板可执行文件3、通过超级终端或其他方式将可执行文件下载到目标板中4、通过超级终端输入命令执行可执行文件4FreescalePDK-6-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1