基于ARM9的嵌入式系统设计第9章ADS介绍及ARM汇编语言程序设计基础ppt课件_第1页
基于ARM9的嵌入式系统设计第9章ADS介绍及ARM汇编语言程序设计基础ppt课件_第2页
基于ARM9的嵌入式系统设计第9章ADS介绍及ARM汇编语言程序设计基础ppt课件_第3页
基于ARM9的嵌入式系统设计第9章ADS介绍及ARM汇编语言程序设计基础ppt课件_第4页
基于ARM9的嵌入式系统设计第9章ADS介绍及ARM汇编语言程序设计基础ppt课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 嵌入式系统设计嵌入式系统设计 基于基于ARM9ARM9微处置器微处置器S3C2410AS3C2410A第第9 9章章 集成开发环境集成开发环境ADSADS引见及引见及ARMARM汇编言语程序设计汇编言语程序设计南阳师范学院南阳师范学院张帅张帅第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.1 9.1 裸机开发环境裸机开发环境n 何谓“裸机?n 裸机是指无操作系统

2、下的ARM系统开发n 其特点是一切硬件资源均开放n 可以把它了解为一个高级单片机的开发n 裸机开发的作用n 更能深化地从底层去了解ARM CPU的操作过程及系统设计n 为日后自行设计系统打下根底n 为bootloader的编写打好根底第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 开发环境的作用开发环境的作用第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2 ADS IDE9.2 ADS IDE集成开发环境集

3、成开发环境) ) ARM运用软件的开发工具根据功能的不同,可以分为编辑软件、编译软件、汇编软件、链接软件、调试软件、嵌入式实时操作系统、函数库、评价板,JTAG仿真器以及在线仿真器等。 目前有多家公司可以提供以上不同类型的开发工具,用户采用ARM处置器进展嵌入式系统开发时,选择适宜的开发工具可以加快开发进度,节省开发本钱。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2.1 ADS 9.2.1 ADS工具包的组成工具包的组成 ADS是ARM公司推出的集成开发工具包,是专门用于ARM相关运用开发和调

4、试的综合性软件。目前常用的版本是1.2,在功能和易用性上比早期的SDT都有提高,是一款功能强大又易于运用的开发工具。 ARM ADS包含有编译器、链接器、CodeWarrior IDE、调试器、指令集模拟器、ARM开发包和运用库等部分,可以用ADS来开发、编译、调试采用包括C、C+和ARM汇编言语编写的程序。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2.2 ADS9.2.2 ADS开发工具集开发工具集 1.1.命令行开发工具命令行开发工具ANSI C ANSI C 编译器编译器 - armc

5、c and tcc - armcc and tccISO / Embedded C+ ISO / Embedded C+ 编译器编译器 - armcpp and tcpp - armcpp and tcppARM / Thumb ARM / Thumb 汇编器汇编器 arms armsLinker - armlink Linker - armlink 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 2.2.图形开发工具:图形开发工具:Windows Windows 集成开发环境集成开发环境 CodeWa

6、rrior CodeWarriorDebugger Debugger AXD (ARM eXtended Debugger) AXD (ARM eXtended Debugger)armsd ARM(armsd ARM(符号调试器符号调试器) )可向前兼容可向前兼容3.3.库文件:库文件:C and C+ C and C+ 库库4.4.辅助工具辅助工具/ /支持软件:支持软件:格式转换器格式转换器 - fromelf - fromelf 指令级仿真指令级仿真 ARMulator ARMulator库管理器库管理器 armar armar第第9 9章章 集成开发环境集成开发环境ADSADS介绍及

7、介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 fromELFfromELF:ARMARM映像文件转换工具映像文件转换工具该命令将该命令将ELFELF格式的文件作为输入文件,将该格式转换为各种输出格式的格式的文件作为输入文件,将该格式转换为各种输出格式的文件,包括文件,包括plain binary(BINplain binary(BIN格式映像文件格式映像文件), Motorola 32-bit S-), Motorola 32-bit S-record format(Motorola 32record format(Motorola 32位位S S格式映像文

8、件格式映像文件), Intel Hex 32 ), Intel Hex 32 format(Intel 32format(Intel 32位格式映像文件位格式映像文件) ),和,和 Verilog-like hex Verilog-like hex format(Verilog 16format(Verilog 16进制文件进制文件) ) ArmarArmar:ARMARM库函数生成器将一系列库函数生成器将一系列ELFELF格式的目的文件以库函数的方式集合在一格式的目的文件以库函数的方式集合在一同,用户可以把一个库传送给一个链接器以替代几个同,用户可以把一个库传送给一个链接器以替代几个ELFE

9、LF文件。文件。Flash downloaderFlash downloader:用于把二进制映像文件下载到用于把二进制映像文件下载到ARMARM开发板上的开发板上的FlashFlash存储器的工具存储器的工具ARMulatorARMulator: ARMARM指令集仿真器,集成在指令集仿真器,集成在ARMARM的调试器的调试器AXDAXD中,它提供对中,它提供对ARMARM处置器的处置器的指令集的仿真,为指令集的仿真,为ARMARM和和ThumbThumb提供准确的模拟,用户可以在硬件尚未提供准确的模拟,用户可以在硬件尚未做好的情况下,开发程序代码。做好的情况下,开发程序代码。第第9 9章章

10、 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 称号描画运用方式代码生成工具ARM汇编器ARM C/C+编译器Thumb C/C+编译器ARM 链接器由Code Warrior调用 集成开发环境Code Warrior工程管理,编译链接调试器AXD/ADW/ADU/armsd仿真调试指令模拟器ARMulator由AXD调用ARM开发包一些底层的例程,适用程序(如fromELF)由Code Warrior调用ARM运用库C/C+等函数库用户程序调用工具调用及流程第第9 9章章 集成开发环境集成开发环境ADSADS介绍及

11、介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2.3 9.2.3 集成开发环境集成开发环境CodeWarriorCodeWarrior运用运用 CodeWarrior集成开发环境为管理和开发工程提供了简单、多样化的图形用户界面。 用户可以运用ADS的CodeWarrior IDE为ARM处置器开发用C,C+,或ARM汇编言语的程序代码 。 全面的工程管理功能。 可以在CodeWarrior IDE为ARM配置以上所引见的各种命令工具,实现对工程代码的编译,汇编和链接。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序

12、设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 C/C+Browser C/C+SensitiveEditorProjectManager第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 建立工程第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 uARM Executable

13、 Image:用于由ARM指令的代码生成一个 ELF格式的可执行映像文件。uARM Object Library:用于由ARM指令的代码生成一个 armar 格式的目的文件库。uEmpty Project:用于创建一个不包含任何库或源文件的工程。uMakefile Importer Wizard: 用于将 Visual C 的 nmake 或 GNU make 文件转入到CodeWarrior IDE 工程文件。 uThumb ARM Interworking Image:用于由 ARM指令和 Thumb 指令的混和代码生成一个可执行的ELF格式的映像文件。 uThumb Executable

14、 image:用于由 Thumb指令创建一个可执行的ELF格式的映像文件。 uThumb Object Library:用于由Thumb指令的代码生成一个 armar 格式的目的文件库。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 新建文件第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 添加文件到工程第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌

15、入式系统设计嵌入式系统设计 生成目的设置第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 每个工程工程都有下面3种生成目的:Debug:包含一切调试信息DebugRel:包含部分调试信息Release:不包含调试信息注:假设工程编译只是为了调试运用,那么选择Debug或者DebugRel;假设要生成最后可以运转的文件,那么最好选择Release。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 编译链接进入编译链接设

16、置:第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 设置窗口:第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 目的设置:第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在Targets Settings选项组中,Post-Linker用于选择链接器输出文件的处置方式。用户可以选择的值如下:None:不进展衔接的处置。ARM

17、 fromELF:运用ARM工具fromELF处置链接器输出的ELF格式文件,它可以将ELF格式的文件转换为各种二进制文件格式。Batch File Runner:在衔接完成后运转一个DOS格式的批处置文件。 假设用户在编译完成后只是用AXD来调试程序,建议选择None;假设要生成最后的编程文件,建议选择ARM fromELF,该选项与Linker面板中的ARM fromELF选项结合来产生最终的编程文件。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 CPU设置:第第9 9章章 集成开发环境集成开发环

18、境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 Linker设置:第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在 Output format 下拉框中,为用户提供了多种可以转换的目的格式,这里选择 Plain binary,这是一个二进制格式的可执行文件,可以被烧写在目的板的 Flash中。 在 Output file name 文本域输入期望生成的输出文件存放的途径,或经过点击 Choose.按钮从文件对话框中选择输出文件途径。假设在这个文本域

19、不输入途径名,那么生成的二进制文件存放在工程所在的目录下。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在标签页 Output 中,Linktype 中提供了 3 种链接方式:Partia :表示链接器只进展部分链接,经过部分链接生成的目的文件,可以作为以后进一步链接时的输入文件。Simple :默许的链接方式,也是运用最为频繁的链接方式,它链接生成简单的 ELF

20、 格式的目的文件,运用的是链接器选项中指定的地址映射方式。Scattered :使得链接器要根据 scatter 格式文件中指定的地址映射,生成复杂的 ELF 格式的映像文件。普通情况下这个选项运用不太多。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在选中 Simple 方式后,就会出现 Simple image。 R0 Base:这个文本框设置包含有 R0 段的加载域和运转域为同一个地址,默许是 0 x8000。这里用户要根据硬件的实践 SDRAM 的地址空间来修正这个地址,保证在这里填写的地址

21、是程序运转时 SDRAM 地址空间所能覆盖的地址。RW Base:这个文本框设置包含 RW 和 ZI 输出段的运转域地址。假设选中 split 选项,链接器生成的映像文件将包含 2 个加载域和 2 个运转域,此时,在 RW Base 中所输入的地址为包含 RW 和 ZI 输出段的域设置了加载域和运转域地址。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在 Opt

22、ions 选项中,需求留意的是 Image entry point 文本框。它指定映像文件的初始入口点地址值,当映像文件被加载程序加载时,加载程序会跳转到该地址处执行。假设需求,用户可以在这个文本框中输入下面格式的入口点。 入口点地址:这是一个数值,例如-entry 0 x0。 符号:该选项指定映像文件的入口点为该符号所代表的地址处。比如:-entry int_handler。 在此处指定的入口点用于设置 ELF 映像文件的入口地址。 需求留意的是,这 里不可以用符号 main 作为入口点地址符号,否那么将会出现“Image dose not have an entry point(Not s

23、pecified or not set due to multiple choice)的出错信息。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 Layout选项在衔接方式为Simple时有效,用来安排一些输入段在映像文件中的位置。在上图中,Place at Beginning of Image选项用于指定某个输入段放置在它所在的运转时域的开头。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 编译链接:第第9

24、 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 文件输出文件输出第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2.4 AXD9.2.4 AXD调试工具的运用调试工具的运用 在软件开发的最初阶段,能够还没有详细的硬件设备。假设要测试所开发的软件能否到达了预期的效果,这可以由软件

25、仿真来完成。 当然,也可以搭建一个PCB板,这个板上可以包含一个或多个处置器,在这个板上可以运转和调试运用软件。 只需当经过硬件或者是软件仿真所得到的结果到达了预期的效果,才算是完成了运用程序的编写任务。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 调试器可以发送以下指令:调试器可以发送以下指令:装载映像文件到目的内存;装载映像文件到目的内存;启动或停顿程序的执行;启动或停顿程序的执行;显示内存,存放器或变量的值;显示内存,存放器或变量的值;允许用户改动存储的变量值。允许用户改动存储的变量值。第第9

26、9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 进入进入AXDAXD调试工具调试工具第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 在菜单在菜单FileFile中选择中选择“Load image“Load image选项,翻开选项,翻开 Load Image Load Image对话框,找到要装载对话框,找到要装载的的.axf.axf映像文件,点击映像文件,点击“翻开按钮,就把映像文件装载到目的内存中了。翻开按钮,就把映

27、像文件装载到目的内存中了。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 Docking windowsDocking toolbarsRegistersSource/Disassembly Memory 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 选择调试目的:选择调试目的: 点击点击ADXADX窗口菜单【窗口菜单【OptionsOptions】选择【】选择【Configure Configure Tar

28、getTarget】,即弹出】,即弹出Choose Target Choose Target 窗口,在没有添加窗口,在没有添加其它仿真驱动程序前,其它仿真驱动程序前,Target Target 项中只需两项,分别为项中只需两项,分别为ADP(JTAG ADP(JTAG 硬件仿真硬件仿真) )和和ARMUL(ARMUL(软件仿真软件仿真) )。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 调试工具条,从左到右依次为:调试工具条,从左到右依次为:全速运转全速运转(Go)(Go)停顿运转停顿运转(Stop)

29、(Stop)单步运转单步运转(Step In)(Step In),与,与Step Step 命令不同之处在于对函数调用语句,命令不同之处在于对函数调用语句,Step In Step In 命令将进入该函数。命令将进入该函数。单步运转单步运转(Step)(Step),每次执行一条语句,这时函数调用将被作为一条语句执行。,每次执行一条语句,这时函数调用将被作为一条语句执行。单步运转单步运转(Step Out)(Step Out),执行完当前被调用的函数,停顿在函数调用的下一条,执行完当前被调用的函数,停顿在函数调用的下一条语句。语句。运转到光标运转到光标(Run To Cursor)(Run To

30、 Cursor),运转程序直到当前光标所在行时停顿。,运转程序直到当前光标所在行时停顿。设置断点设置断点(Toggle BreakPoint)(Toggle BreakPoint)第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 调试察看窗口工具条,从左到右依次为:翻开存放器窗口(Processor Registers)翻开察看窗口(Processor Watch)翻开变量察看窗口(Context Variable)翻开堆栈察看窗口Back Trace翻开存储器察看窗口(Memory)翻开反汇编窗口(Di

31、sassembly)第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 处置器形状察看:处置器形状察看:包括:存放器变量存储器第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 存储器窗口:存储器窗口:包括:显示格式修正操作第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 单步执行、断点:单步执行、断点:第第9 9章章 集成开发环境

32、集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 添加变量进展察看:添加变量进展察看:第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.2.5 Wiggler JTAG 仿真器的安装与运用简介H-JTAG调试代理运用Wiggler JTAG 仿真器第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 简介 MagicARM2410 实验箱配套的Wiggle

33、r JTAG 仿真器,支持ADS1.2 集成开发环境,支持单步、全速及断点等调试功能。仿真器采用ARM 公司提出的规范20 脚JTAG 仿真调试接口,与计算机衔接采用规范25 针并口(即打印机口)。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 要运用Wiggler JTAG 仿真器来调试ARM 处置器,除了ADS1.2 集成开发环境外,还需求安装一个ARM 调试代理软件; 引荐运用H-JTAG 软件,H-JTAG 软件的特点如下:支持ARM7/ARM9,支持自动检测和手动指定内核;运用RDI 接口,支

34、持SDT2.51、ADS1.2、REALVIEW 和IAR 集成开发环境;支持ARM/Thumb 方式;支持Little Endian & BIG Endian 方式;支持Wiggler、SDT JTAG 和自定义接口;H-JTAG调试代理第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 运用Wiggler JTAG 仿真器双击桌面“H-JTAG快捷方式启动H-JTAG 会自动检测ARM 内核,假设JTAG 衔接正确将会在H-JTAG 主窗口中显示S3C2410A 处置器的内核ARM920T在进展

35、JTAG 仿真调试时,不要封锁H-JTAG 软件第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 将计算机并口与Wiggler JTAG 仿真器衔接; 将仿真器JTAG口接头插入MagicARM2410实验箱主板的J29上; 经过AXD 软件的设置即可进展JTAG仿真调试;第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 程序固化 在JTAG 仿真调试经过后,要将程序调试生成十六进制文件并下载到外部的NOR Flas

36、h(即固化程序),才可脱机运转。生成HEX 文件。运用Flash Programmer 烧写Flash。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 生成HEX 文件 在当前工程窗口中选用Release 生成目的,翻开工程的DebugRel Settings 窗口,在TargetSettings 项中设置Post-linker 选取ARM fromELF。 在ARM formELF 项中设置输出文件类型,如设置为Intel 32 bit Hex,然后设置输出文件名。生成文件默许存放在当前工程的xxx_

37、DataRelease目录中。 重新编译衔接工程即可生成 十六进制文件。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 运用Flash Programmer 烧写Flash 将MagicARM2410 实验箱主板上的JP8 跳线器断开,选用NOR Flash 启动方式,按RST 键复位系统 将Wiggler JTAG 仿真器的25 针接口经过并口延伸线与PC 机的并口LPT1 衔接,将Wiggler JTAG 仿真器的20 针接口经过20 PIN 衔接电缆接到MagicARM2410 实验箱主板的J29

38、 上 将配置文件DeviceARM2410.ocd 复制D:目录下。启动Flash Programmer 点击Program按钮,下载程序至目的板的Flash 中 脱机运转第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.3 ARM9.3 ARM汇编伪指令汇编伪指令 在 ARM 汇编言语程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,也就是不会生成机器码,仅仅是在编译器软件中起着格式化的作用,通常称这些特殊指令助记符为伪指令。伪指令在源程序中的作用是为完成汇编程序作

39、各种预备任务的,这些伪指令仅在汇编过程中起作用,一旦汇编终了,伪指令的使命就完成。 在 ARM 的汇编程序中,有如下几种伪指令:数据常量定义伪指令、数据变量定义伪指令、内存分配伪指令及其他伪指令。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.3.1 数据常量定义伪指令 数据常量定义伪指令EQU用于为程序中的常量、标号等定义一个等效的字符称号,类似于C言语中的#define 。 EQU语法格式 : 称号 EQU 表达式 ,类型 ; 其中 EQU 可用 “ * 替代。 称号为EQU伪指令定义的字符称号

40、,当表达式为32 位的常量时,可以指定表达式的数据类型,可以有以下三种类型: CODE16、CODE32和DATA 。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.3.4 汇编控制伪指令 汇编控制伪指令用于控制汇编程序的执行流程,常用的汇编控制伪指令包括以下几条: 1 IF、ELSE、ENDIF 语法格式: IF 逻辑表达式 指令序列 1 ELSE 指令序列 2 ENDIF 2 WHILE、WEND 语法格式: WHILE 逻辑表达式 指令序列 WEND 第第9 9章章 集成开发环境集成开发环境

41、ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.3.5 其他常用的伪指令 还有一些其他的伪指令,在汇编程序中经常会被运用,主要包括AREA、ALIGN、CODE16、CODE32、ENTRY、END、EXPOR或 GLOBALIMPORT、EXTERN、GET或 INCLUDE INCBIN、RN、ROUT等。 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 1 1AREAAREA 语法格式:语法格式: AREA AREA 段名段名 属性属性 1

42、1 ,属性,属性 2 2 , AREA AREA 伪指令用于定义一个代码段或数据段。其中,段伪指令用于定义一个代码段或数据段。其中,段名假设以数字开头,那么该段名需用名假设以数字开头,那么该段名需用 “ | | 括起来,如括起来,如 |1_test| |1_test| 。属性字段表示该代码段或数据段的相关属。属性字段表示该代码段或数据段的相关属性,多个属性用逗号分隔。性,多个属性用逗号分隔。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 2 2 ALIGN ALIGN 语法格式:语法格式: ALIGN

43、ALIGN 表达式表达式 , , 偏移量偏移量 3 3 CODE16 CODE16、CODE32CODE32 语法格式:语法格式: CODE16 CODE16 或或 CODE32 CODE32 4 4 ENTRY ENTRY 语法格式:语法格式: ENTRYENTRY 5 5 END END 语法格式:语法格式: END END 6 6 EXPORT EXPORT或或GLOBALGLOBAL 语法格式:语法格式: EXPORT EXPORT 标号标号 WEAK WEAK (7 (7 IMPORT IMPORT 语法格式:语法格式: IMPORT IMPORT 标号标号 WEAK WEAK 第第

44、9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 5 5 END END 语法格式:语法格式: END END 6 6 EXPORT EXPORT或或GLOBALGLOBAL 语法格式:语法格式: EXPORT EXPORT 标号标号 WEAK WEAK (7(7 IMPORT IMPORT 语法格式:语法格式: IMPORT IMPORT 标号标号 WEAK WEAK 8 8 EXTERN EXTERN 语法格式:语法格式: EXTERN EXTERN 标号标号 WEAK WEAK9 9 GET GET或或

45、INCLUDEINCLUDE 语法格式:语法格式: GET GET 文件名文件名 1010 INCBIN INCBIN 语法格式:语法格式:INCBIN INCBIN 文件名文件名 1111 RN RN 语法格式:语法格式: 称号称号 RN RN 表达式表达式 第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.4 ARM9.4 ARM的汇编言语构造的汇编言语构造 在ARMThumb汇编言语程序中,以相对独立的指令或数据序列的程序段为单位组织程序代码。 段可以分为代码段和数据段,代码段的内容为执行代码,

46、数据段存放代码运转时需求用到的数据。 一个汇编程序至少应该有一个代码段,也可以分割为多个代码段和数据段,多个段在程序编译链接时最终构成一个可执行的映象文件。 可执行映象文件通常由以下几部分构成: 一个或多个代码段,代码段的属性为只读。 零个或多个包含初始化数据的数据段,数据段的属性为可读写。 零个或多个不包含初始化数据的数据段,数据段的属性为可读写。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.4.1 ARM汇编言语的语句格式 根本语句格式根本语句格式ARMARMThumbThumb汇编言语的语句

47、格式为:汇编言语的语句格式为: 标号标号 指令或伪指令指令或伪指令 ;注释;注释 规那么规那么: : 假设一条语句太长,可将其分为假设干行来书写,假设一条语句太长,可将其分为假设干行来书写,在行的末用续行符在行的末用续行符“ 来标识下一行与本行为同一条来标识下一行与本行为同一条语句。语句。 每一条指令的助记符可以全部用大写、或全部用小每一条指令的助记符可以全部用大写、或全部用小写,但不能在一条指令中大、小写混用。写,但不能在一条指令中大、小写混用。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 2. 2

48、. 汇编言语程序中常用的符号汇编言语程序中常用的符号 在汇编言语程序设计中,可以运用各种符号替代地在汇编言语程序设计中,可以运用各种符号替代地址、变量和常量等,以添加程序的可读性。以下为符号址、变量和常量等,以添加程序的可读性。以下为符号命名的商定:命名的商定: 符号名不应与指令或伪指令同名符号名不应与指令或伪指令同名 符号在其作用范围内必需独一。符号在其作用范围内必需独一。 符号区分大小写,同名的大、小写符号被视为两个不符号区分大小写,同名的大、小写符号被视为两个不同的符号。同的符号。 自定义的符号名不能与系统保管字一样。自定义的符号名不能与系统保管字一样。第第9 9章章 集成开发环境集成开

49、发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 程序中的常量程序中的常量 程序中的常量是指其值在程序的运转过程中不能程序中的常量是指其值在程序的运转过程中不能被改动的量。被改动的量。ARMARMThumbThumb汇编程序所支持的常量有逻汇编程序所支持的常量有逻辑常量、数字常量和字符串常量。辑常量、数字常量和字符串常量。 数字常量普通为数字常量普通为3232位的整数,无符号常量取值范围位的整数,无符号常量取值范围为为0 0232-1232-1,有符号常量取值范围为,有符号常量取值范围为-231-231231-1231-1。 逻辑常量只需

50、两种取值:真或假。逻辑常量只需两种取值:真或假。 字符串常量为一个固定的字符串,普通用来提示程字符串常量为一个固定的字符串,普通用来提示程序运转时的信息。序运转时的信息。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 4. 4. 汇编言语程序中的变量汇编言语程序中的变量 程序中的变量是指其值在程序的运转过程中可以改程序中的变量是指其值在程序的运转过程中可以改动的量。动的量。 逻辑变量用于在程序的运转中保管逻辑值真逻辑变量用于在程序的运转中保管逻辑值真/ /假。假。 数字变量用于在程序的运转中保管数字值,

51、但数字值数字变量用于在程序的运转中保管数字值,但数字值的大小不应超出数字变量所能表示的范围。的大小不应超出数字变量所能表示的范围。 字符串变量用于在程序的运转中保管一个字符串,但字符串变量用于在程序的运转中保管一个字符串,但字符串的长度不应超出字符串变量所能表示的范围。字符串的长度不应超出字符串变量所能表示的范围。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 5. 5. 程序中的变量代换程序中的变量代换 程序中的变量可经过代换操作获得一个常量。代程序中的变量可经过代换操作获得一个常量。代换操作符为换操

52、作符为“$ $。假设。假设“$ $在数字变量前面,编译在数字变量前面,编译器会将该数字变量的值转换为十六进制的字符串,并器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换将该十六进制的字符串代换“$ $后的数字变量。后的数字变量。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.4.2 基于Windows下ADS的汇编言语程序构造 ADS环境下的ARM汇编言语程序构造与其它环境下的汇编言语程序构造大体一样,整个程序也是以段为单元来组织代码。其语法规那么总结如下: 一切标号必需在一行

53、的顶格书写,其后不要添加“:号; 一切的指令均不能顶格写; 大小写敏感可以全部大写或全部小写,但不能大小写混合运用; 注释运用分号“; 。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.5 ARM9.5 ARM汇编言语程序调试汇编言语程序调试 无论进展嵌入式系统软件开发还是硬件电路设计,调试永远是不可短少的、非常重要的一个环节。通常嵌入式系统的调试方法和类型有很多种,最为常见的包括软件模拟调试、硬件仿真器在线调试、Wiggler线缆调试和Linux环境下的gdb程序调试。第第9 9章章 集成开发环境

54、集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.5.1 ADS软件模拟环境下的程序调试 ADS软件模拟调试是利用ARMUL.dll提供的一个软ARM内核,调试工具和待调试的嵌入式软件都在主机上运转,由主机提供一个模拟的目的运转环境,可以进展语法和逻辑上的调试。它的优点是简一方便,不需求嵌入式目的板,软件的调试功能较强;功能有限,不能进展实时联机调试。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 9.5.2 ADS硬件仿真器环境下的程序

55、调试 在ADS环境下利用JTAG硬件仿真器可以实现联机调试,即在线调试嵌入式设备的Flash中的程序或者SDRAM中的程序。由于仿真器自成体系,调试时既可以衔接目的板,也可以不衔接目的板,当然仿真器的价钱也相对比较贵。普通在程序的前期开发,通常让程序只在SDRAM中调试运转,最后才下载到Flash中进展调试运转。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 ARM仿真器是经过内部硬件实现PC并口协议到串行JTAGJiont Test Action Gruop协议的转换。利用高速JTAG串行扫描链,经过调试通讯通道Debug Communications Channel,DCC衔接ARM中心内嵌的名为“Embedded-ICE的调试逻辑,调试逻辑实时监测ARM中心的存放器、数据总线和地址总线。第第9 9章章 集成开发环境集成开发环境ADSADS介绍及介绍及ARMARM汇编语言程序设计汇编语言程序设计 嵌入式系统设计嵌入式系统设计 配置配置ADSADS以支持以支持JTAGJTAG仿真器仿真器启动启动ADSADS的调试器的调试器AXDAXD后,从菜单后,从菜单“OptionOption中选择中选择“Configure Configure TargetTarget, ,在弹出的窗

温馨提示

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

评论

0/150

提交评论