嵌入式系统原理与应用实验指导书赵明玺.新

上传人:痛*** 文档编号:64488928 上传时间:2022-03-21 格式:DOC 页数:158 大小:3.44MB
收藏 版权申诉 举报 下载
嵌入式系统原理与应用实验指导书赵明玺.新_第1页
第1页 / 共158页
嵌入式系统原理与应用实验指导书赵明玺.新_第2页
第2页 / 共158页
嵌入式系统原理与应用实验指导书赵明玺.新_第3页
第3页 / 共158页
资源描述:

《嵌入式系统原理与应用实验指导书赵明玺.新》由会员分享,可在线阅读,更多相关《嵌入式系统原理与应用实验指导书赵明玺.新(158页珍藏版)》请在装配图网上搜索。

1、 嵌入式系统原理与应用实 验 指 导 书赵明玺 编写适用专业: 电气类本科 电子类本科 通信类本科 云南民族大学电气信息工程学院2013年 01月前 言随着芯片技术和电子系统智能化,网络化,一体化的快速发展,嵌入式技术开始受到广泛的关注。嵌入式系统融合了计算机软、硬件技术,通讯技术, 半导体微电子技术。通过进行嵌入式系统设计与开发实验,使学生了解嵌入式系统的开发方法和流程,熟悉硬件平台,熟悉嵌入式Linux操作系统的基本原理和概念,能够根据实际需要定制硬件系统,软件系统(包括内核,操作系统,驱动程序和应用程序)。为了使学生更好地理解和深刻地把握上述知识和技能,本课程设置如下实验项目,在ADS和

2、Linux环境下设置演示型实验5个、验证型实验3个、综合型实验4个、设计型实验5个和研究型实验1个。其中在Vision IDE环境下基础性实验5个(演示型2个,验证型3个),在嵌入式Linux环境下基础性实验3个(演示型3个)。在此基础上,本实验课程包含了综合设计性实验10个,重点训练和培养和嵌入式LinuxD设备驱动程序和复杂应用程序的开发能力,以使学生能够深入认识ARM体系结构和Linux操作系统工作原理,ARM处理器工作原理,常见外围设备工作原理与控制方法。对于电子类学生,重点培养ARM微处理器工作原理,如何实现常见嵌入式电子系统的设计,复杂设备的驱动程序的设计,信号提取与分析等知识和技

3、能。对于通信类学生,重点培养嵌入式系统的基本设计方法,各种通信模块、协议(如串口、TCP)的实现等知识和技能。对于其他专业学生,重点培养嵌入式系统的基本设计方法,设备驱动程序,应用程序的基本设计方法等知识和技能。目 录实验 1:EMBEST EDUKIT-V嵌入式实验平台概况及操作方法5实验 2:RealView MDK集成开发环境实验10实验 3:汇编指令实验21实验 4:Thumb 汇编指令实验31实验 5:ARM 处理器工作模式实验39实验 6:基于Vision IDE 的C语言编程实验47实验 7:汇编与 C 语言相互调用实验53实验 8:嵌入式Linux概况与常见命令使用61实验 9

4、:常用Linux命令与及编辑器vi的使用69实验 10:嵌入式 Linux 开发一般步骤82实验 11:HelloWorld 运行实验85实验 12:文件操作实验90实验 13:计时器实验95实验 14:TCP 实验102实验 15:LED 控制实验116实验 16:中断控制实验131实验 17:ADC 操作实验142实验 18:串口通信实验148实验 1:EMBEST EDUKIT-V嵌入式实验平台概况及操作方法实验学时:2实验类型:演示实验要求:必修一、实验目的1、熟悉EduKit-IV嵌入式ARM 教学实验平台的软硬件资源,了解本实验平台的特点;2、熟悉实验平台主板及CPU子板的原理、功

5、能及结构;3、掌握教学实验平台的操作方法及注意事项。二、实验内容1、介绍EMBEST EDUKIT-IV嵌入式实验平台的软硬件资源;2、重点结合电路原理图描述本实验平台的硬件结构;3、重点根据硬件接口定义,讲述实验平台主板及CPU子板的原理、功能及结构;4、讲述该嵌入式实验平台的操作方法和注意事项。三、实验原理、方法和手段Embest EduKit-IV 教学实验系统硬件由核心板、主板、功能模块板以及相应的适配器、连接线组成;软件资源包含了当前主流嵌入式操作系统Linux、Windows CE 6.0下的BSP 包以及应用程序。Embest EduKit-IV 支持多核多操作系统,用户可以根据

6、学习、研究、开发的需要选择软硬件资源。本实验主要介绍基于 SAMSUNG S3C2410 处理器的Linux 2.6 嵌入式开发方法,要求用户配备的软硬件资源主要包括Embest EduKit-IV 主板、Mini2410-IV核心子板(基于SAMSUNG S3C2410)、各种功能模块板(如GPRS 模块、蓝牙模块等)以及Linux 2.6下的Bootloader、kernel、rootfs 等。实验源码包。四、实验组织运行要求采用集中授课形式介绍EMBEST EDUKIT-IV嵌入式实验平台的构成和特点,讲述该嵌入式实验平台的操作方法和注意事项。五、实验条件硬件:Embest ARM Ed

7、uKit V开发箱, PC机;软件:Windows98/XP/2000 系统,ADS集成开发环境。六、实验步骤1. 系统简介Embest EduKit-IV教学实验平台是一款功能强大的32位嵌入式ARM 实验开发平台,是深圳市英蓓特信息技术有限公司推出的更具创新意识的EduKit系列第四代嵌入式教学实验平台。 如图1-1所示:图1-1 EduKit-IV 教学实验平台实验箱外观图(1)基本组成Embest EduKit-IV 教学实验系统硬件由核心板、主板、功能模块板以及相应的适配器、连接线组成;软件资源包含了当前主流嵌入式操作系统Linux、Windows CE 6.0下的BSP 包以及应用

8、程序。Embest EduKit-IV 支持多核多操作系统,用户可以根据学习、研究、开发的需要选择软硬件资源。(2)教学系统主板硬件介绍 Embest EduKit-IV主板遵循了模块化的设计思路,提供了丰富的接口,并且具有良好的扩展性。在EduKit-IV 上设计了2组独有专利技术规范的 CPU接口槽,用于连接EduKit-IV主板与核心子板,将核心板上的信号引至主板上。这种设计使得 EduKit-IV 主板可以支持不同的 CPU 核心子板,用户按照主板接口CPU接口槽的信号定义,可以开发自已的目标核心板。2. 主板硬件设计原理说明(图1-2)图 1-2 EduKit-IV 主板系统方框图3

9、. 主板硬件结构(如图1-3所示)图 1-3 主板结构图4. Mini2410-IV 核心子板硬件介绍Embest EduKit-IV 实验系统采用了主板与核心板分离的模块化设计架构。主板与核心板之间遵循了一定的接口信号定义,按照这种定义,核心板把CPU 的控制信号输出到主板上。在这里将讲述Mini2410-IV 核心子板与主板的接口信号以及其相关的设计原理。Mini2410-IV 核心子板采用了功能强大的ARM 处理器SAMSUNG S3C2410。(1)嵌入式系统与最小系统介绍嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格需求

10、的专用计算机系统。嵌入式系统包括硬件与软件,嵌入式系统发展有过很长一段单片机的独立发展道路,大多是基于 8位单片机,实现最底层的嵌入式统应用,硬件资源不是特别丰富、软件的规模也比较小。而随着嵌入式技术的深入发展、为了能够处理更复杂的事件以及管理更丰富的资源,现在广泛地使用了 32位嵌入式处理器,并且操作系统也被应用到了嵌入式系统中。从当前应用的角度来看,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序等部分组成,用于实现对其它设备的控制、监视或管理功能。 在嵌入式系统的概念上又提出了嵌入式最小系统,嵌入式最小系统要保证在最精简的资源条件下,系统能够工作。通常,一个最

11、小系统是以处理器为控制和管理中心,具有相配接的电源电路、时钟电路、复位信号电路、系统存储单元。而作为嵌入式应用,为方便开发与调试,最小系统还应该包括系统总线扩展、调试电路(通常是JTAG电路)。 在本实验系统中,核心子板采用了处理器 SAMSUNG S3C2410,扩展了存储系统,系统总线以及调试JTAG电路,在此基础,利用处理器的硬件资源,根据需求扩展外部设备。(2)Mini2410-IV核心板原理说明 核心板硬件资源 处理器SAMSUNG S3C2410提供了各种应用接口,如LCD控制接口、SD 卡控制接口、USB 主/从控制接口、UART 控制接口等。 Mini2410-IV 核心子板利

12、用处理器 SAMSUNG S3C2410 提供的各种控制接口扩展了功能模块,这些接口信号最终通过核心板输送到主板上。比如,在核心板上通过CPU 引出LCD 控制信号,然后再输送到主板上的 LCD 连接器上。所以,在理解电路原理图时,读者应该结合主板,从整体上来把握。下面讲述核心板上的一些功能扩展电路。 核心板与主板的接口电路 EduKit-IV设计了2个符合PC104规范的接口Main_Con_A与Main_Con_B,用于连接EduKit-IV的主板和核心子板,将核心板的控制信号引至主板。5. 操作步骤(1)打开试验箱,将核心板插在扩展板上。(2)确定连线无误后打开开关。(3)不可带电插拔S

13、D卡等外接设备。七、思考题嵌入式系统的一般构成有哪些?试分析EduKit-IV嵌入式教学系统平台的特点。八、实验报告实验报告应包括实验目的,主要内容,简述实验原理,方法和手段,包括对Embest EduKit-IV 教学实验系统知识与操作环境的预习、实验过程、结果记录和心得体会等。九、其它说明实验 2:RealView MDK集成开发环境实验实验学时:2实验类型:演示实验要求:必修一、实验目的通过本实验的学习,使学生了解Embest ARM教学系统的基本构成,掌握EDK软件的使用。 二、实验内容Embest ARM教学系统包括Embest IDE集成开发环境,Embest JTAG仿真器,Fl

14、ash编程器,Embest Arm EduKit V开发箱、各种连接线、电源适配器以及实验指导书等。基本实验系统构成示意图如2-1所示:图2-1 实验系统构成示意图1、了解ULINK 2仿真器和RealView MDK 的使用;2、了解Vision IDE工程管理的方法与步骤。三、实验原理、方法和手段Vision 3 是一个基于窗口的软件开发平台,它集成了功能强大的编辑器、工程管理器以及make工具。Vision3 IDE 集成的工具包括C编译器、宏汇编器、链接/定位器和十六进制文件生成器。Vision 有编译和调试两种工作模式,两种模式下设计人员都可查看并修改源文件。Vision IDE由多

15、个窗口、对话框、菜单栏、工具栏组成。其中菜单栏和工具栏用来实现快速的操作命令;工程工作区(Project Workspace)用于文件管理、寄存器调试、函数管理、手册管理等;输出窗口(Output Window)用于显示编译信息、搜索结果以及调试命令交互灯;内存窗口(Memory Window)可以不同格式显示内存中的内容;观测窗口(Watch & Call Stack Window)用于观察、修改程序中的变量以及当前的函数调用关系;工作区(Workspace)用于文件编辑、反汇编输出和一些调试信息显示;外设对话框(Peripheral Dialogs)帮助设计者观察片内外围接口的工作状态。

16、四、实验组织运行要求根据本实验的特点、首先采用集中授课形式介绍Vision3 IDE开发环境和使用Vision3 IDE 建立工程,编译,链接,调试操作的具体过程。然后每个学生动手建立工程,完成编译,链接,调试等操作。五、实验条件硬件: Embest ARM EduKit V开发箱, PC机;软件:Windows98/XP/2000 系统,Vision3 IDE集成开发环境。六、实验步骤1. ARM 开发工具简介用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本,用户在建立自己的基于 ARM 嵌入式开发环境时,可供选择的开发工具是非常多的。目前世界上有几十多

17、家公司提供不同类别的 ARM 开发工具产品,根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式操作系统、函数库、评估板、JTAG 仿真器、在线仿真器等。有些工具是成套提供的,有些工具则需要组合使用。在本节中,我们将简要介绍几种比较流行的 ARM 开发工具,包括ARM SDT、ARM ADS、Multi 2000、RealViewMDK 等集成开发环境以及 OPENice32-A900仿真器、Multi-ICE仿真器、ULink 2仿真器等。(1) RealView MDKMDK(Microcontroller Development Kit)是Keil公司(An ARM Co

18、mpany)开发的ARM开发工具,是用来开发基于ARM核的系列微控制器的嵌入式应用程序的开发工具。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的C 编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。 Keil ARM开发工具集集成了很多有用的工具(如图2-2所示),正确的使用它们,可以有助于快速完成项目开发。图 2-2 MDK 开发工具的组件MDK 的最新版本是Vision 3,可以开发基于ARM7、ARM9、Cortex-M3的微控制器应用程序。它易学易用且功能强大。(1) ULINK

19、2仿真器 ULINK 是Keil公司提供的USB-JTAG 接口仿真器,目前最新的版本是2.0。它支持诸多芯片厂商的 8051、ARM7、ARM9、Cortex M3、Infineon C16x、Infineon XC16x、Infineon XC8xx、STMicroelectronics PSD等多个系列的处理器。ULINK 2内部实物如图1-12所示,电源由PC机的USB 接口提供。ULINK2 不仅包含了 ULINK USB-JTAG 适配器具有的所有特点,还增加了串行线调试(SWD)支持,返回时钟支持和实时代理功能。ULINK2适用与标准的Windows USB驱动等功能。 ULIN

20、K 2的主要功能: l 下载目标程序; l 检查内存和寄存器; l 片上调试,整个程序的单步执行; l 插入多个断点; l 运行实时程序; l 对FLASH存储器进行编程。 ULINK2 新特点:l 标准Windows USB 驱动支持,也就是ULINK2 即插即用; l 支持基于 ARM Cortex-M3的串行线调试; l 支持程序运行期间的存储器读写、终端仿真和串行调试输出; l 支持10/20 针连接器。2. RealView MDK 的使用(1)RealView MDK 的安装 这里主要介绍如何安装实验系统的软件平台、如何搭建和如何进行软件平台与硬件平台的连接。在安装Vision3

21、IDE集成开发环境之前请首先阅读软件使用许可协议。安装Vision 3 评估软件必须满足的最小的系统要求为: l 操作系统:Windows 98,Windows NT4,Windows 2000,Windows XP; l 硬盘空间:30M 以上; l 内存:128M 以上。 Vision IDE集成开发环境的安装方法如下: 购买MDK的安装程序,或从 双击安装文件。 建议在安装之前关闭所有的应用程序,单击Next,弹出对话框;仔细阅读许可协议,选中 I agree to all the terms of the preceding License Agreement 选项,单击Next,弹出

22、如图3-2-3所示对话框;单击 Browse选择安装路径,然后单击Next,弹出对话框;输入First Name、Last Name、Company Name 以及E-mail地址后,单击 Next;安装程序将在计算机上安装MDK,依据机器性能的不同,安装程序大概耗时半分钟到两分钟不等,之后将会弹出对话框,单击 Finish结束安装。至此,开发人员就可在计算机上使用 MDK软件来开发应用程序了。Vision IDE集成开发环境安装完毕后,点击Vision IDE的图标 即可运行 Vision IDE。第一次使用Vision IDE正式版时,用户必须注册。Vision 3的有两种许可证:单用户许

23、可证和浮动许可证。单用户许可证只允许单用户最多在二台计算机上使用MDK,而浮动许可证则允许局域网众多台计算机分时使用MDK。目前,所有的Keil软件均可使用单用户许可证注册,绝大多数Keil软件可使用浮动许可证注册。(2) Vision IDE主框架窗口Vision IDE由如图2-3所示的多个窗口、对话框、菜单栏、工具栏组成。其中菜单栏和工具栏用来实现快速的操作命令;工程工作区(Project Workspace)用于文件管理、寄存器调试、函数管理、手册管理等;输出窗口(Output Window)用于显示编译信息、搜索结果以及调试命令交互灯;内存窗口(Memory Window)可以不同格

24、式显示内存中的内容;观测窗口(Watch & Call Stack Window)用于观察、修改程序中的变量以及当前的函数调用关系;工作区(Workspace)用于文件编辑、反汇编输出和一些调试信息显示;外设对话框(Peripheral Dialogs)帮助设计者观察片内外围接口的工作状态。图2-3 Vision IDE 开发环境软件界面Vision IDE集成开发环境的菜单栏可提供如下菜单功能:编辑操作、工程维护、开发工具配置、程序调试、外部工具控制、窗口选择和操作,以及在线帮助等。工具栏按钮可以快速执行 Vision 3的命令。状态栏显示了编辑和调试信息,在View菜单中可以控制工具栏和状

25、态栏是否显示。键盘快捷键可以快速执行Vision 3的命令,它可以通过菜单命令Edit Configuration - Shortcut Key来进行配置。3. 工程管理 (1)工程管理介绍: 在Vision IDE集成开发环境中,工程是一个非常重要的概念,它是用户组织一个应用的所有源文件、设置编译链接选项、生成调试信息文件和最终的目标 Bin 文件的一个基本结构。一个工程管理一个应用程序的所有源文件、库文件、其它输入文件,并根据实际情况进行相应的编译链接设置,一个工程须生成一个相对应的目录,以进行文件管理。 Vision IDE工程管理提供以下功能: Vision IDE的工作区由五部分组成

26、, 分别为Files页、 Regs页、 Books页、 Functions页、 Templates页。工作区如图2-4所示,它显示了工程结构。图 2-4 工程管理区结构图(2)工程的创建: Vision 3 所提供的工程管理,使得基于 ARM 处理器的应用程序设计开发变得越来越方便。通常使用Vision 3 创建一个新的工程需要以下几步:选择工具集、创建工程并选择处理器、创建源文件及文件组、配置硬件选项、配置对应启动代码、最后编译链接生成HEX文件。(3) 建立一个新的源文件: 创建一个工程之后,就应开始编写源程序。选择菜单项File - New可创建新的源文件, Vision IDE将会打开

27、一个空的编辑窗口用以输入源程序。在输入完源程序后,选择File - Save As菜单项保存源程序,当以*.C为扩展名保存源文件时,Vision IDE将会根据语法以彩色高亮字体显示源程序。(4)工程中文件的加入: 创建完源文件后便可以在工程里加入此源文件,Vision 提供了多种方法加入源文件到工程中。例如,在Project Workspace Files菜单项中选择文件组,右击将会弹出如图2-5所示快捷菜单,单击选项Add Files to Group打开一个标准文件对话框,将已创建好的源文件加入到工程中。图2-5 加入源文件到工程中通常,设计人员应采用文件组来组织大的工程,将工程中同一模

28、块或者同一类型的源文件放在同一文件组中。例如,可在 Project Manage- Components, Environment, Books对话框中创建自己的文件组Sysem Files来管理CPU启动代码和其它系统配置文件等,如图2-6所示。可使用New (Insert)按钮可创建新的文件组,或在Groups文件组中选定一个文件组,然后点击Add Files为其添加文件。图2-6 创建新的文件组(5) 设置活动工程在Vision IDE中可以存在几个同时打开的工程,但只有一个工程处于活动状态并显示在工程区中,处于活动状态的工程才可以作为调试工程。可在图 2-6中的工程目标框中选择需要激活

29、的工程,然后单击 按钮即可。4. 工程基本配置(1)硬件选项配置Vision 3可根据目标硬件的实际情况对工程进行配置。通过单击目标工具栏图标 或者单击菜单项Project - Options for Target,在弹出的Target页面可指定目标硬件和所选择设备片内组件的相关参数。(2)处理器启动代码配置 通常情况下,ARM程序都需要初始化代码用来配置所对应的目标硬件。如前面章节所述,当创建一个应用程序时Vision 3会提示使用者自动加入相应设备的启动代码。(3)仿真器配置 选择菜单项Project-Project-Option for Target 或者直接单击 ,打开 Option

30、for Target对话框的Debug页,弹出如下对话框,进行仿真器的连接配置。(4)工具配置 工具选项主要设置Flash下载选项。打开菜单栏的Project-Project-Option for Target对话框选择其“Utilities”页,或者打开菜单 Flash-Configue Flash Tools。 (5)调试设置 Vision 3调试器提供了两种调试模式,可以从Project-Options for Target对话框的 Debug 页内选择操作模式。软件仿真模式:在没有目标硬件情况下,可以使用仿真器(Simulator)将Vision3 调试器配置为软件仿真器。它可以仿真微

31、控制器的许多特性,还可以仿真许多外围设备包括串口、外部 I/O 口及时钟等。 所能仿真的外围设备在为目标程序选择 CPU 时就被选定了。在目标硬件准备好之前,可用这种方式测试和调试嵌入式应用程序。 GDI 驱动模式:使用高级GDI 驱动设备连接目标硬件来进行调试,例如使用ULINK Debugger。(6)编译配置选择编译器: Vision IDE 目前支持 RealView、Keil CARM 和 GNU 这三种编译器,从菜单栏的Project-Manage-Component,Environment,Books或者直接单击工具栏中的 图标,打开其Folder/Extensions页进入编译

32、器选择界面。配置编译器: 选择好编译器后,单击 图标,打开Option for Target对话框的C/C+页,出现编译属性配置页面(这里主要说明RealView编译器的编译配置):汇编选项设置 打开Option for Target对话框的Asm页,出现汇编属性配置页面.链接选项设置 链接器/定位器用于将目标模块进行段合并,并对其定位,生成程序。既可通过命令行方式使用链接器,也可在Vision IDE 中使用链接器。单击 图标,打开 Option for Target 对话框的Linker页,出现链接属性配置页面:输出文件设置 在Project-Option for Target 的Outp

33、ut页中配置输出文件,如图 2-7所示。图2-7 输出文件配置页5 编译、链接与调试(1)工程的编译链接完成工程的设置后,就可以对工程进行编译链接了。用户可以通过选择主窗口 Project 菜单的Build target项或工具条 按钮,编译相应的文件或工程,同时将在输出窗的Build 子窗口中输出有关信息。如果在编译链接过程中,出现任何错误,包括源文件语法错误和其它错误时,编译链接操作立刻终止,并在输出窗的 Build子窗口中提示错误,如果是语法错误,用户可以通过鼠标左键双击错误提示行,来定位引起错误的源文件行。(2)加载调试Vision 3调试器提供了软件仿真和GDI 驱动两种调试模式,采

34、用ULINK2仿真器调试时,首先将集成环境与ULINK2仿真器连接,按照前面 3小节中的工程配置方法对要调试的工程进行配置后,点击Flash- Download菜单项可将目标文件下载到目标系统的指定存储区中,文件下载后即可进行在线仿真调试。七、思考题利用Vision IDE完成一个汇编语言程序的设计需要哪些步骤?如何利用Vision IDE建立与配置一个工程?八、实验报告实验报告应包括实验目的,主要内容,简述实验原理,方法和手段,包括对Vision IDE软件知识与操作环境的预习、实验过程、结果记录和心得体会等。九、其它说明不可在上电时插拔串口,JTAG,SD卡等外围设备。实验 3:汇编指令实

35、验实验学时:2实验类型:验证实验要求:必修一、实验目的1、本实验将介绍几个简单的基础开发实例,既能帮助读者掌握 MDK 嵌入式软件的基本开发过程,同时也能让读者了解ARM 处理器的基本结构、指令集、存储系统以及基本接口编程。2、初步学会使用Vision IDE for ARM 开发环境及ARM 软件模拟器; 3、通过实验掌握简单ARM 汇编指令的使用方法。二、实验内容 1、熟悉开发环境的使用并使用 ldr/str,mov 等指令访问寄存器或存储单元 2、使用add/sub/lsl/lsr/and/orr 等指令,完成基本算术/逻辑运算。三、实验原理、方法和手段ARM 处理器共有37个寄存器:

36、l1. 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是 32 位的; l2. 6个状态寄存器。这些寄存器也是 32 位的,但是只是使用了其中的12 位。这里简要介绍通用寄存器,关于状态寄存器的介绍,请参照下一节。(1)ARM 通用寄存器 通用寄存器(R0-R15)可分为三类: l 不分组寄存器R0R7; l 分组寄存器 R8R14; l 程序计数器 PC。(2)存储器格式 ARM 体系结构将存储器看作是从零地址开始的字节的线性组合。字节零到字节三放置第一个字(WORD),字节四到字节七存储第二个字,以此类推。(3)REALVIEW 基础知识 Vision3 IDE 集成了REALVI

37、EW汇编器AARM、编译器 CARM、链接器LARM,若采用GNU 编译器则需要下载安装相应的工具包。本书所有例程代码均按照 REALVIEW的语法和规则来书写。关于AARM、CARM 和LARM 的规范和具体使用,可参照 Vision3 IDE 所带的帮助文档,在此不再赘述。四、实验组织运行要求采用集中授课形式。五、实验条件硬件:PC 机; 软件:MDK集成开发环境,Windows 98/2000/NT/XP。六、实验步骤1. 新建工程 首先在KeilARMExamplesMini2410-IV4.1_asm1 目录下建立文件夹命名为 Asm1_a,运行Vision3 IDE 集成开发环境,

38、选择菜单项“Project - New- Vision Project” ,系统弹出一个对话框,按照图4-1-3 所示,输入相关内容。点击“保存”按钮,将创建一个新工程 asm_1a.Uv2。2. 为工程选择 CPU 新建工程后,要为工程选择 CPU,如图3-1所示,在此选择 SAMSUNG 的S3C2410A:图3-1 选择 CPU3. 添加启动代码在图1中点“确定”后,会弹出一个对话框,问是否要添加启动代码。如图1所示。由于本实验是简单的汇编实验,因此不需要启动代码,选择否。4. 选择开发工具 要为工程选择开发工具,在 Project - Manage - Components,Envir

39、onment and Books - Folder/Extensions对话框的 Folder/Extensions页内选择开发工具,如图3-2所示。图3-2 选择开发工具从图中可以看到,有三个开发工具可选,在此选择RealView Compiler。 5. 建立源文件 点击菜单项File - New,系统弹出一个新的、没有标题的文本编辑窗,输入光标位于窗口中第一行,按照实验参考程序编辑输入源文件代码。编辑完后,保存文件 asm1_a.s。(源代码可以参考DISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1中的asm1_a.s文件) 6. 添加源文件单击

40、工程管理窗口中的相应右键菜单命令,选择Add Files to,会弹出文件选择对话框,在工程目录下选择刚才建立的源文件 asm1_a.s。如图3-3所示。图3-3 添加源文件7. 工程配置 把光盘 DISK3_S3C241003-Codes01-MDKMini2410-IV4.1_asm1Asm1_a 目 录 中 的DebugINRam.ini 文件拷贝到KeilARMExamplesMini2410-IV4.1_asm1Asm1_a 目录下。选择菜单项Project-Option for Target,将弹出工程设置对话框,如图3-4所示。对话框会因所选开发工具的不同而不同,在此仅对 Tar

41、get选项页、Linker 选项页及 Debug 选项页进行配置。Target选项页的配置如图3-4;Linker 选项页的配置如图3-5;Debug 选项页的配置如图3-6。需要注意,在 Debug 选项页内需要一个初始化文件:DebugINRam.ini。此.INI 文件用于设置生成的.AXF 文件下载到目标中的位置,以及调试前的寄存器、内存的初始化等配置操作。它是由调试函数及调试命令组成调试命令脚本文件。图3-4 基本配置Target图3-5 基本配置Linker图3-6 基本配置Debug8. 生成目标代码 选择菜单项Project - Build target或快捷键F7,生成目标代

42、码。在此过程中,若有错误,则进行修改,直至无错误。若无错误,则可进行下一步的调试。 9. 调试 选择菜单项Debug - Start/Stop Debug Session 或快捷键 Ctrl+F5,即可进入调试模式。若没有目标硬件,可以用Vision 3 IDE 中的软件仿真器,做如下调试工作: l 打开memory 窗口,单步执行,观察地址 0x30200000 中内容的变化; l 单步执行,观察寄存器的变化; l 结合实验内容和相关资料,观察程序运行,通过实验加深理解 ARM 指令的使用; l 理解和掌握实验后,完成实验练习题。 实验B 与上述步骤完全相同,只要把对应的 asm1_a.s文

43、件改成asm1_b.s以及工程名即可。实验参考程序 1. 实验A 汇编程序: ;* ; NAME: asm1_a.s ; Author: TYW /WUHAN R&D Center,Embest ; Desc: ARM instruction examples ; History: 2007.5.1 ;* ;/*- */ ;/* constant define */ ;/*- -*/ x EQU 45 ; x=45 y EQU 64 ; y=64/ stack_top EQU 0x30200000 ; define the top address for stacks export Reset

44、_Handler ;/*- -*/ ;/* code */ ;/*-*/ AREA text,CODE,READONLY export Reset_Handler ; code start */ ldr sp, =stack_top mov r0, #x ; put x value into R0 str r0, sp ; save the value of R0 into stacks mov r0, #y ; put y value into R0 ldr r1, sp ; read the data from stack,and put it into R1 add r0, r0, r1

45、 ; R0=R0+R1 str r0, sp stop b stop ; end the code cycling end 注意:语句export Reset_Handler前面必须有空格,具体原因请参考ARM指令格式文档。 调试命令脚本文件: /* */ /* Name: DebugINRam.ini */ FUNC void Setup (void) / Program Entry Point, .AXF File download Address PC = 0x30000000; map 0x00000000,0x00200000 read write exec / Map this m

46、emory to be read、write and exec map 0x30000000,0x34000000 read write exec / Map this memeory to be read,write and exec Setup(); / Setup for Running /g, main 2. 实验B 汇编程序 ;#* ;# NAME: asm1_b.s ;# Author: WUHAN R&D Center, Embest ;# Desc: ARM instruction examples ;# History: TianYunFang 2007.05.12 ;#*

47、;/*- */ ;/* constant define */ ;/*- */ x EQU 45 ;/* x=45 */ y EQU 64 ;/* y=64 */ z EQU 87 ;/* z=87 */ stack_top EQU 0x30200000 ;/* define the top address for stacks*/ export Reset_Handler ;/*- */ ;/* code */ ;/*- */ AREA text,CODE,READONLYReset_Handler ;/* code start */ mov r0, #x ;/* put x value in

48、to R0 */ mov r0, r0, lsl #8 ;/* R0 = R0 1) + R0 */ ldr sp, =stack_top str r2, sp mov r0, #z ;/* put z value into R0 */ and r0, r0, #0xFF ;/* get low 8 bit from R0 */ mov r1, #y ;/* put y value into R1 */ add r2, r0, r1, lsr #1 ;/* R2 = (R11) + R0 */ ldr r0, sp ;/* put y value into R1 */ mov r1, #0x0

49、1 orr r0, r0, r1 mov r1, R2 ;/* put y value into R1 */ add r2, r0, r1, lsr #1 ;/* R2 = (R11) + R0 */ stop b stop ;/* end the code cycling*/ END调试命令脚本文件与实验A 相同。七、思考题1编写程序循环对 R4R11 进行累加 8 次赋值,R4R11 起始值为 18,每次加操作后把R4R11 的内容放入SP 栈中,SP 初始设置为0x800。最后把R4R11 用 LDMFD指令清空赋值为0。 2更改实验A中X、Y 的值,观察执行结果。 八、实验报告实验报告

50、应包括实验目的,主要内容,简述实验原理,方法和手段,包括对Vision IDE软件知识与操作环境的预习、实验过程、结果记录和心得体会等。九、其它说明实验 4:Thumb 汇编指令实验实验学时:2实验类型:验证实验要求:必修一、实验目的通过实验掌握ARM 处理器 16位 Thumb汇编指令的使用方法。 二、实验内容1、使用THUMB 汇编语言,完成基本reg/mem访问,以及简单的算术/逻辑运算; 2、使用 THUMB 汇编语言,完成较为复杂的程序分支,push/pop,领会立即数大小的限制,并体会ARM 工作状态与 THUMB 工作状态的区别。三、实验原理、方法和手段1. ARM 处理器工作状

51、态 ARM 处理器共有两种工作状态: n (1) ARM:32位,这种状态下执行字对准的ARM 指令; n (2) Thumb:16位,这种状态下执行半字对准的 Thumb指令。 在Thumb状态下,程序计数器PC使用位1选择另一个半字。 u 注意: ARM和 Thumb之间状态的切换不影响处理器的模式或寄存器的内容。 ARM 处理器在两种工作状态之间可以切换。进入 Thumb 状态。当操作数寄存器的状态位(位 0)为 1 时,执行 BX 指令进入 Thumb状态。如果处理器在 Thumb 状态进入异常,则当异常处理(IRQ,FIQ,Undef,Abort 和SWI)返回时,自动切换到 Thu

52、mb状态。 n进入ARM状态。当操作数寄存器的状态位(位 0)为0时,执行BX指令进入 ARM 状态。此外,在处理器进行异常处理(IRQ,FIQ,Undef,Abort和SWI)时,把 PC 放入异常模式链接寄存器中,从异常向量地址开始执行也可进入 ARM 状态。2. Thumb 状态的寄存器集 Thumb 状态下的寄存器集是 ARM 状态下寄存器集的子集。程序员可以直接访问 8 个通用的寄存器(R0R7),PC,SP,LR 和CPSP。每一种特权模式都有一组SP,LR和 SPSR。 n Thumb 状态的R0R7与ARM 状态的R0R7 是一致的; n Thumb 状态的CPSR和SPSR与

53、ARM 状态的CPSR和 SPSR 是一致的; n Thumb 状态的SP映射到ARM 状态的R13;n Thumb 状态的LR映射到ARM 状态的R14; n Thumb 状态的PC 映射到ARM 状态的PC(R15)。3. 本实验涉及到的伪操作 Code16|32 code伪操作用于选择当前汇编指令的指令集。参数16选择 Thumb指令集,参数 32 选择ARM指令集。 语法格式: code16|32 thumb 同code16。 arm 同code32。 align align 伪指令通过添加补丁字节使当前位置满足一定的对齐方式。语法格式: align expr,offset 其中:ex

54、pr 为数字表达式,用于指定对齐的方式。取值为 2 的 n 次幂,如 1、2、4、8 等,不能为0。若没有expr,则默认为字对齐方式。 Offset为数字表达式。当前位置对齐到下面形式的地址处:offset+n*expr 示例: align 4,3 ;字对齐四、实验组织运行要求采用集中授课形式。五、实验条件硬件:PC 机; 软件:MDK集成开发环境,Windows 98/2000/NT/XP。六、实验步骤1. 实验A (1)参考4.1.5小节实验的操作步骤建立一个新的工程,命名为 ThumbCode; (2)参考4.1.5 小节实验的步骤和本节实验参考程序编辑输入源代码,保存文件为 ThumbCode.s;(3)在Project workspace工作区中右击target1-Source Group 1,在弹出菜单中选择 Add fileto Group Source Group 1 ,在随后弹出的文件选择对话框中,选择刚才建立的源文件ThumbCode.s; (4)选择菜单项Project -Build target或快捷键F7,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!