嵌入式ADS实验指导书

上传人:人*** 文档编号:403411900 上传时间:2022-12-13 格式:DOC 页数:20 大小:88.50KB
返回 下载 相关 举报
嵌入式ADS实验指导书_第1页
第1页 / 共20页
嵌入式ADS实验指导书_第2页
第2页 / 共20页
嵌入式ADS实验指导书_第3页
第3页 / 共20页
嵌入式ADS实验指导书_第4页
第4页 / 共20页
嵌入式ADS实验指导书_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《嵌入式ADS实验指导书》由会员分享,可在线阅读,更多相关《嵌入式ADS实验指导书(20页珍藏版)》请在金锄头文库上搜索。

1、实验一 嵌入式微处理器系统的开发环境一、实验环境PC机 一台软件: ADS 1.2集成开发环境 一套二、实验目的1.了解嵌入式系统与其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验内容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤1在D:新建一个目录,目录名为experiment.2点击WINDOWS 操作系统的开始|程序|ARM Developer Suite v1.2 |Code Warrior forARM Developer Suite启动Metrowerks Code Warrior,或双击ADS 1.2”快捷方式启动.启

2、动ADS 1.2 如图1-1所示:图1-1启动ADS1.2 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击New按钮,也可以在File菜单中选择New菜单.这样就会打开一个如图1-2所示的对话框.选择File-New,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:experiment.图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2ARM Object Library:用于由ARM 指令的代码生成一个

3、armar 格式的目标文件库;3Empty Project:用于创建一个不包含任何库或源文件的工程;4Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7Thumb Object Library:用于由Thumb 指令的代码生成一个arm

4、ar 格式的目标文件库.4选择File-New建立一个新的文件TEST1.S,设置直接添加到项目中.输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件. 图1-3 新建test1.s 选择Edit-Perferences,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312.图1-4 设置字体 选择Edit-DebugRel Settings,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址.点击DebugRel Settings图标按钮,即可进行工程的地址设置、输出文件设置、编译选项等,如图1-5所示.在AR

5、M Linker对话框设置连接地址,在Language Settings中设置各编译器的编译选项.对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的Make图标按钮,即可完成编译连接.若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码行,编译连接输出窗口如图1-6所示.同样,您可以在Project菜单中找到相应的命令.图1-5连接器选项设置图1-6 output选项卡OUTPUT 选项卡:该选项卡用来控制连接器进行连接操作的类型.其中Linktype 选项组中的单选按钮确定使用的连接方式.这里选择Simple,连接器将根据连接器选项中指定的

6、地址映射方式,生成简单的ELF 格式的映像文件,所生成的映像文件中的地址映射关系比较简单.当选择Simple 连接类型时,需要设置下列的连接器选项,如图1-5所示.RO Base 文本框中填入0x40000000.地址0x40000000 是开发板上SDRAM 的真实地址,是由系统的硬件决定的;RW Base 文本框中填入0x40003000 指的是系统可读写内存的地址.也就是说,在0x400000000x40003000 之间是只读区域,存放程序的代码段,从0x40003000 开始是程序的数据段.Layout 选项卡:该选项卡在连接方式位Simple 时有效,它用来安排一些输入段在映像文件

7、中的位置.Placeat beginning of image选项组用于指定将某个输入段放置在它所在的运行时域的开头.包含复位异常中断处理程序的输入段通常放置在运行时域的开头.这里,在Object/Symbol 文本框中指定目标文件的名称init.o,在Section 文本框中指定输入段的名称init,从而确定了init.s 源文件中的init 输入段位指定的输入段.如图1-7所示.图 1-7Layout 选项卡中连接器选项 选择Project-Make,或者按下快捷键F7,将编译整个工程.如图1-8所示为工程窗口中的图标按钮,通过这些图标按钮,可以快速的进行工程设置,编译连接,启动调试等等.

8、它们从左到右分别为图1-8工程窗口中的图标按钮ADebugRel Settings 工程设置;BSynchronize Modification Dates 同步修改日期;CMake 编译连接;DDebug 启动ADX 进行调试;ERun 启动ADX 调试,并直接运行;FProject Inspector 工程检查,查看和配置工程中源文件的信息;对于简单的软件调试,直接点击工程窗口的Make图标按钮,即可完成编译.编译连接输出窗口如图1-9所示.图1-9编译连接输出窗口 选择Project-Debug,或者按下快捷键F5.IDE环境就会启动AXD调试软件,接着可以执行单步、全速运行调试.图1-

9、10 AXD调试窗口注意:本实验使用软件仿真,所以要在AXD中选择Options-Configure Target菜单,然后在 Choose Target窗口中选用ARMUL软件仿真.图1-11 目标环境选择五 思考题1.工程模板有何作用? 2.如何强行重新编译工程的所有文件?Remove Object Code删除工程中的*.obj文件 六 参考程序AREAExample1,CODE,READONLY; 声明代码段Example1 ENTRY ; 标识程序入口CODE32; 声明32位ARM指令START MOVR0,#15 ; 设置参数MOVR1,#8ADDSR0,R0,R1; R0 =

10、R0 + R1BSTARTEND实验预作关键过程与结果图:实验二 汇编指令实验一、实验环境 PC机 一台 ADS 1.2集成开发环境 一套二、实验目的1.了解ADS 1.2集成开发环境与ARMulator软件仿真方法;2. 掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问.三、实验内容1.使用LDR/STR指令完成存储器的访问.2.使用数据处理指令实现数据传送和算术和逻辑运算.3.使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口监视寄存器的值,打开存储器观察窗口 监视存储器的值.根据以上要求完成该

11、操作:使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址周而复此循环;使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口监视R0、R1的值,打开存储器观察窗口 监视0x40003100上的值.四、实验步骤 启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程Instruction1. 建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中. 设置工程地址RO Base为0x40000000,RW Base为0x40003000.设置调试入口地

12、址Image entry point为0x40000000. 编译工程,选择Project-Debug,启动AXD进行软件仿真调试. 打开寄存器窗口Processor Registers,选择Current 项监视R0,R1 的值.打开存储器观察窗口Memory,设置观察地址为0x40003100,显示方式Size 为32Bit,监视0x40003100 地址上的值.图2-1Memory 窗口显示格式设置寄存器显示格式与之类似.使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format 项中选择显示格式Hex,Decimal 等等.如图2-2 所示.图2-2设置寄存器显示格式6单步运行程序,

13、可以设置/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0x40003100地址上的值. 图2-3 调试程序窗口六、思考题1.LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?2.LDR/STR指令的前索引偏移指令如何编写?指令是怎样操作的?3.在AXD调试时如何复位程序? Reload Current Image重新加载映象文件 七、参考程序COUNTEQU0x40003100; 定义一个变量,地址为0x40003100AREAExample2,CODE,READONLY; 声明代码段Example2 ENTRY; 标识程序入口CODE32; 声明32位ARM指令STARTLDRR1,=COUNT; R1 = COUNTMOVR0,#0; R0 = 0 STRR0,R1; R1 = R0,即设置COUNT为0LOOP LDRR1,=COUNTLDRR0,R1; R0 = R1 ADDR0,R0,#1; R0 = R0 + 1CMPR0,#10; R0与10比较,影响条件码标志MOVHSR0,#0; 若R0大于等于10,则此指令执行,R0 = 0STRR0,R1; R1 = R0,即保存COUNTBLOOPEND实验预作关键过程与结果图:单步运行观看寄存器和存储器的变化:具体指令讲解见指令手册.实验三:基于ADS的C语言程序实验一、实验环境 PC机

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号