第ADS开发环境和ARM汇编语言
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ADS中包含有3个调试器: (1) AXD(ARM eXtended Debugger):ARM扩展调试器; (2) armsd(ARM Symbolic Debugger):ARM符号调试器; (3) Debug target
AXD可以在Windows 和UNIX下,进行程序的调试。 它为用C,C++,和汇编语言编写的源代码提供了一个全 面的Windows 和UNIX 环境。
无需对armlib和cpplib这两个库路径分开指明,链接器会 自动从用户所指明的库路径中找出这两个子目录。
7
3.1.3GUI开发环境(Code Warrior和AXD)
CodeWarrior for ARM是一套完整的集成开发工具,充分 发挥了ARM RISC 的优势, 使产品开发人员能够很好的应 用尖端的片上系统技术. 该工具是专为基于ARM RISC的 处理器而设计的, 它可加速并简化嵌入式开发过程中的每 一个环节,使得开发人员只需通过一个集成软件开发环境 就能研制出ARM产品,在整个开发周期中,开发人员无需 离开CodeWarrior开发环境, 因此节省了在操做工具上花的 时间,使得开发人员有更多的精力投入到代码编写上来,
助记符
指令功能描述
SWI
软件中断指令
SWP
交换指令
TEQ
相等测试指令
TST
位测试指令
27
ARM微处理器指令的条件域
指令的条件域
当处理器工作在ARM状态时,几乎所有的指令均根据CPSR 中条件码的状态和指令的条件域有条件的执行。当指令的 执行条件满足时,指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位 [31:28]。条件码共有16种,每种条件码可用两个字符表 示,这两个字符可以添加在指令助记符的后面和指令同时 使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示“相 等则跳转”,即当CPSR中的Z标志置位时发生跳转。
请看“ARM ADS集成开发环境的使用.doc ”
16
3.3 用AXD进行代码调试
AXD(ARM eXtended Debugger)是ADS软件中独立于 CodeWarrior IDE的图形软件,打开AXD软件,默认是打 开的目标是ARMulator。这个也是调试的时候最常用的一 种调试工具,本节主要是结合ARMulator介绍在AXD中进 行代码调试的方法和过程,使读者对AXD的调试有初步的 了解。
armar
ARM库函数生成器将一系列ELF格式的目标文件以库函数 的形式集合在一起,用户可以把一个库传递给一个链接器 以代替几个ELF文件。
Flash downloader
用于把二进制映像文件下载到ARM开发板上的Flash存储
器的工具
10
3.1.5 ADS支持的软件
ADS为用户提供下面的软件,使用户可以在软件仿真的环 境下或者在基于ARM的硬件环境调试用户应用程序。
6
库路径
库路径是在ADS软件安装路径的lib目录下armlib和cpplib 的两个子目录。与这些库相应的头文件安装在 \adsv1_2\include目录下
环境变量ARMLIB必须被设置成指向库路径。另外一种指 定ARM C和ARM C++库路径的方法是,在链接的时候使 用操作选项-libpath directory(directory代表库所在的路径), 来指明要装载的库的路径。
CodeWarrior集成开发环境(IDE)为管理和开发项目提供了 简单多样化的图形用户界面。用户可以使用ADS的 CodeWarrior IDE为ARM和Thumb处理器开发用C,C++, 或ARM汇编语言的程序代码。
8
3.1.3.2 ADS调试器
调试器本身是一个软件,用户通过这个软件使用debug agent可以对包含有调试信息的,正在运行的可执行代码 进行比如变量的查看,断点的控制等调试操作。
Armcpp ARM C++编译器
tcc
Thumb C编译器
Tcpp
Thumb C++ 编译器
Armasm ARM和Thumb的汇编器
Armlink ARM连接器
Armsd
ARM 和Thumb的符号调试器
5
3.1.2 ARM运行时库
ANSI C库函数: 这个C函数库是由以下几部分组成: (1)在ISO C标准中定义的函数; (2)在semihosted环境下(semihosting是针对ARM目标机的一
25
ARM微处理器指令的分类
ARM微处理器指令表-4
助记符
指令功能描述
ORR
逻辑或指令
RSB
逆向减法指令
RSC
带借位的逆向减法指令
SBC
带借位减法指令
STC
协处理器寄存器写入存储器指令
STM
批量内存字写入指令
STR
寄存器到存储器的数据传输指令
SUB
减法指令
26
ARM微处理器指令的分类
ARM微处理器指令表-5
DebugRel:使用该目标,在生成目标的时候,会为每一 个源文件生成调试信息;
Debug:使用该目标为每一个源文件生成最完全的调试信 息;
Release:使用该目标不会生成任何调试信息。 在本例中,使用默认的DebugRel目标。
15
3.2.2 编译和链接工程前的配置
点击Edit菜单,选择“DebugRel Settings…” 本课程实验程序都使用默认配置即可 更多详细配置说明
ARM微处理器的指令集可以分为六大类 :
跳转指令 数据处理指令 程序状态寄存器(PSR)处理指令 加载/存储指令 协处理器指令和异常产生指令
22
ARM微处理器指令的分类
ARM微处理器指令表-1
助记符 ADC ADD AND B BIC BL BLX BX
指令功能描述 带进位加法指令 加法指令 逻辑与指令 跳转指令 位清零指令 带返回的跳转指令 带返回和状态切换的跳转指令 带状态切换的跳转指令
23
ARM微处理器指令的分类
ARM微处理器指令表-2来自助记符 CDP CMN CMP EOR LDC LDM LDR MCR
指令功能描述 协处理器数据操作指令 比较反值指令 比较指令 异或指令 存储器到协处理器的数据传输指令 加载多个寄存器指令 存储器到寄存器的数据传输指令 ARM寄存器到协处理器寄存器数据传输
本节内容: 3.1.1 ADS软件组成介绍 3.1.2 使用ADS创建工程 3.1.3 用AXD进行代码调试
3
3.1.1 ADS软件组成介绍
ARM ADS全称为ARM Developer Suite。是ARM公司推 出的新一代ARM集成开发工具。现在ADS的最新版本是 1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安 装在Windows NT4,Windows 2000,Windows 98和 Windows 95操作系统下,还支持Windows XP和Windows Me操作系统。
arm微处理器的指令集可以分为六大类协处理器指令和异常产生指令arm微处理器指令的分类23arm微处理器指令表1助记符指令功能描述adc带进位加法指令add加法指令跳转指令bic位清零指令bl带返回的跳转指令blx带返回和状态切换的跳转指令bx带状态切换的跳转指令arm微处理器指令的分类24arm微处理器指令表2助记符指令功能描述cdp协处理器数据操作指令cmn比较反值指令cmp比较指令eor异或指令ldc存储器到协处理器的数据传输指令ldm加载多个寄存器指令ldr存储器到寄存器的数据传输指令mcrarm寄存器到协处理器寄存器数据传输arm微处理器指令的分类25arm微处理器指令表3助记符指令功能描述mla乘加运算指令mov数据传送指令mrc协处理器寄存器到arm寄存器数据传输mrs传送cpsr或spsr的内容到通用寄存器msr传送通用寄存器到cpsr或spsr的指令mul32位乘法指令mla32位乘加指令mvn数据取反传送指令arm微处理器指令的分类26arm微处理器指令表4助记符指令功能描述orr逻辑或指令rsb逆向减法指令rsc带借位的逆向减法指令sbc带借位减法指令stc协处理器寄存器写入存储器指令stm批量内存字写入指令str寄存器到存储器的数据传输指令sub减法指令arm微处理器指令的分类27arm微处理器指令表5助记符指令功能描述swi软件中断指令swp交换指令teq相等测试指令tst位测试指令arm微处理器指令的分类28指令的条件域当处理器工作在arm状态时几乎所有的指令均根据cpsr中条件码的状态和指令的条件域有条件的执行
9
3.1.4 ADS实用程序
fromELF
这是ARM映像文件转换工具。该命令将ELF格式的文件作 为输入文件,将该格式转换为各种输出格式的文件,包括 plain binary(BIN格式映像文件), Motorola 32-bit S-record format(Motorola 32位S格式映像文件), Intel Hex 32 format(Intel 32位格式映像文件),和 Verilog-like hex format(Verilog 16进制文件)。
12
提供了7种可选择的工程类型
ARM Executabl Image:用于由ARM指令的代码生成一个ELF格式的 可执行映像文件;
ARM Object Library:用于由ARM指令的代码生成一个armar格式的 目标文件库;
Empty Project:用于创建一个不包含任何库或源文件的工程; Makefile Importer Wizard:用于将Visual C的nmake或GNU make文
ADS由命令行开发工具,ARM时实库,GUI开发环境 (Code Warrior和AXD),实用程序和支持软件组成。 有了 这些部件,用户就可以为ARM系列的RISC处理器编写和 调试自己的开发应用程序了。
4
3.1.1命令行开发工具
ADS提供下面的命令行开发工具:
Armcc
ARM C编译器,默认工具
件转入到CodeWarrior IDE 工程文件; Thumb ARM Executable Image:用于由ARM指令和Thumb指令的混
和代码生成一个可执行的ELF格式的映像文件; Thumb Executable image:用于由Thumb指令创建一个可执行的ELF
格式的映像文件; Thumb Object Library:用于由Thumb指令的代码生成一个armar格式
17
编译,调试,运行
18
调试过程中---查看内存数据情况
19
调试过程中---查看寄存器数据情况
20
提纲
3.2 ARM指令分类及寻址方式
1 ARM 微处理器指令的分类 2 ARM 微处理器指令的条件域 3 ARM 微处理器指令的寻址方式
21
ARM微处理器指令的分类
ARM微处理器的指令系统
ARM微处理器的指令集是加载/存储型的,也即指令集仅 能处理寄存器中的数据,而且处理结果都要放回寄存器中, 而对系统存储器的访问则需要通过专门的加载/存储指令 来完成。
24
ARM微处理器指令的分类
ARM微处理器指令表-3
助记符 MLA MOV MRC MRS MSR MUL MLA MVN
指令功能描述 乘加运算指令 数据传送指令 协处理器寄存器到ARM寄存器数据传输 传送CPSR或SPSR的内容到通用寄存器 传送通用寄存器到CPSR或SPSR的指令 32位乘法指令 32位乘加指令 数据取反传送指令
ARMulator 这是一个ARM指令集仿真器,集成在ARM的调试器AXD 中,它提供对ARM处理器的指令集的仿真,为ARM和 Thumb提供精确的模拟。用户可以在硬件尚未做好的情况 下,开发程序代码。
11
3.2 使用ADS创建工程
3.2.1 建立一个工程 在CodeWarrior中新建一个工程的方法有两种,可以在工 具栏中单击“New”按钮,也可以在“File”菜单中选择 “New…”菜单。这样就会打开一个如图所示的对话框。
第3章 ADS开发环境
和
ARM汇编语言
主要内容:
3.1 ADS开发环境 3.1.1 ADS软件组成介绍 3.1.2 使用ADS创建工程 3.1.3 用AXD进行代码调试
3.2 ARM汇编程序设计
2
3.1ADS开发环境
在这一节里,将介绍ARM开发软件ADS(ARM Developer Suite)。通过学习如何在CodeWarrior IDE集成开发环境下 编写,编译一个工程的例子,使读者能够掌握在ADS软件 平台下开发和调试ARM汇编程序。
种机制,它能够根据应用程序代码的输入/输出请求,与 运行有调试功能的主机通讯。这种技术允许主机为通常没 有输入和输出功能的目标硬件提供主机资源)用来实现C库 函数的与目标相关的函数;
(3)被C和C++编译器所调用的支持函数。 ARM C 库提供了额外的一些部件支持C++,并为不同的 结构体系和处理器编译代码。C++库函数包含由ISO C++ 库标准定义的函数。
的目标文件库。 在这里选择ARM Executable Image,在“Project name:”中输入
工程文件名,点击“Location:”文本框的“Set…”按钮,浏览选择想要 将该工程保存的路径,将这些设置好后,点击“确定” 即可 。
13
这个时候会出现ledcircle.mcp的窗口,如图8.2所示,有三 个标签页,分别为files,link order,target默认的是显示第一 个标签页files。通过在该标签页点击鼠标右键,选中 “Add Files…”可以把要用到的源程序添加到工程中。
14
对于本例,由于所有的源文件都还没有建立,所以首先需 要新建源文件。
在“File”菜单中选择“New”,在打开的如图8.1所示的对 话框中,选择标签页File,在File name中输入要创建的文 件名,输入“helloworld.S”,点击“确定”关闭窗口。
在这里还有一个细节。在建立好一个工程时,默认的 target是DebugRel,还有另外两个可用的target,分别为 Realse和Debug,这三个target的含义分别为:
AXD可以在Windows 和UNIX下,进行程序的调试。 它为用C,C++,和汇编语言编写的源代码提供了一个全 面的Windows 和UNIX 环境。
无需对armlib和cpplib这两个库路径分开指明,链接器会 自动从用户所指明的库路径中找出这两个子目录。
7
3.1.3GUI开发环境(Code Warrior和AXD)
CodeWarrior for ARM是一套完整的集成开发工具,充分 发挥了ARM RISC 的优势, 使产品开发人员能够很好的应 用尖端的片上系统技术. 该工具是专为基于ARM RISC的 处理器而设计的, 它可加速并简化嵌入式开发过程中的每 一个环节,使得开发人员只需通过一个集成软件开发环境 就能研制出ARM产品,在整个开发周期中,开发人员无需 离开CodeWarrior开发环境, 因此节省了在操做工具上花的 时间,使得开发人员有更多的精力投入到代码编写上来,
助记符
指令功能描述
SWI
软件中断指令
SWP
交换指令
TEQ
相等测试指令
TST
位测试指令
27
ARM微处理器指令的条件域
指令的条件域
当处理器工作在ARM状态时,几乎所有的指令均根据CPSR 中条件码的状态和指令的条件域有条件的执行。当指令的 执行条件满足时,指令被执行,否则指令被忽略。
每一条ARM指令包含4位的条件码,位于指令的最高4位 [31:28]。条件码共有16种,每种条件码可用两个字符表 示,这两个字符可以添加在指令助记符的后面和指令同时 使用。例如,跳转指令B可以加上后缀EQ变为BEQ表示“相 等则跳转”,即当CPSR中的Z标志置位时发生跳转。
请看“ARM ADS集成开发环境的使用.doc ”
16
3.3 用AXD进行代码调试
AXD(ARM eXtended Debugger)是ADS软件中独立于 CodeWarrior IDE的图形软件,打开AXD软件,默认是打 开的目标是ARMulator。这个也是调试的时候最常用的一 种调试工具,本节主要是结合ARMulator介绍在AXD中进 行代码调试的方法和过程,使读者对AXD的调试有初步的 了解。
armar
ARM库函数生成器将一系列ELF格式的目标文件以库函数 的形式集合在一起,用户可以把一个库传递给一个链接器 以代替几个ELF文件。
Flash downloader
用于把二进制映像文件下载到ARM开发板上的Flash存储
器的工具
10
3.1.5 ADS支持的软件
ADS为用户提供下面的软件,使用户可以在软件仿真的环 境下或者在基于ARM的硬件环境调试用户应用程序。
6
库路径
库路径是在ADS软件安装路径的lib目录下armlib和cpplib 的两个子目录。与这些库相应的头文件安装在 \adsv1_2\include目录下
环境变量ARMLIB必须被设置成指向库路径。另外一种指 定ARM C和ARM C++库路径的方法是,在链接的时候使 用操作选项-libpath directory(directory代表库所在的路径), 来指明要装载的库的路径。
CodeWarrior集成开发环境(IDE)为管理和开发项目提供了 简单多样化的图形用户界面。用户可以使用ADS的 CodeWarrior IDE为ARM和Thumb处理器开发用C,C++, 或ARM汇编语言的程序代码。
8
3.1.3.2 ADS调试器
调试器本身是一个软件,用户通过这个软件使用debug agent可以对包含有调试信息的,正在运行的可执行代码 进行比如变量的查看,断点的控制等调试操作。
Armcpp ARM C++编译器
tcc
Thumb C编译器
Tcpp
Thumb C++ 编译器
Armasm ARM和Thumb的汇编器
Armlink ARM连接器
Armsd
ARM 和Thumb的符号调试器
5
3.1.2 ARM运行时库
ANSI C库函数: 这个C函数库是由以下几部分组成: (1)在ISO C标准中定义的函数; (2)在semihosted环境下(semihosting是针对ARM目标机的一
25
ARM微处理器指令的分类
ARM微处理器指令表-4
助记符
指令功能描述
ORR
逻辑或指令
RSB
逆向减法指令
RSC
带借位的逆向减法指令
SBC
带借位减法指令
STC
协处理器寄存器写入存储器指令
STM
批量内存字写入指令
STR
寄存器到存储器的数据传输指令
SUB
减法指令
26
ARM微处理器指令的分类
ARM微处理器指令表-5
DebugRel:使用该目标,在生成目标的时候,会为每一 个源文件生成调试信息;
Debug:使用该目标为每一个源文件生成最完全的调试信 息;
Release:使用该目标不会生成任何调试信息。 在本例中,使用默认的DebugRel目标。
15
3.2.2 编译和链接工程前的配置
点击Edit菜单,选择“DebugRel Settings…” 本课程实验程序都使用默认配置即可 更多详细配置说明
ARM微处理器的指令集可以分为六大类 :
跳转指令 数据处理指令 程序状态寄存器(PSR)处理指令 加载/存储指令 协处理器指令和异常产生指令
22
ARM微处理器指令的分类
ARM微处理器指令表-1
助记符 ADC ADD AND B BIC BL BLX BX
指令功能描述 带进位加法指令 加法指令 逻辑与指令 跳转指令 位清零指令 带返回的跳转指令 带返回和状态切换的跳转指令 带状态切换的跳转指令
23
ARM微处理器指令的分类
ARM微处理器指令表-2来自助记符 CDP CMN CMP EOR LDC LDM LDR MCR
指令功能描述 协处理器数据操作指令 比较反值指令 比较指令 异或指令 存储器到协处理器的数据传输指令 加载多个寄存器指令 存储器到寄存器的数据传输指令 ARM寄存器到协处理器寄存器数据传输
本节内容: 3.1.1 ADS软件组成介绍 3.1.2 使用ADS创建工程 3.1.3 用AXD进行代码调试
3
3.1.1 ADS软件组成介绍
ARM ADS全称为ARM Developer Suite。是ARM公司推 出的新一代ARM集成开发工具。现在ADS的最新版本是 1.2,它取代了早期的ADS1.1和ADS1.0。它除了可以安 装在Windows NT4,Windows 2000,Windows 98和 Windows 95操作系统下,还支持Windows XP和Windows Me操作系统。
arm微处理器的指令集可以分为六大类协处理器指令和异常产生指令arm微处理器指令的分类23arm微处理器指令表1助记符指令功能描述adc带进位加法指令add加法指令跳转指令bic位清零指令bl带返回的跳转指令blx带返回和状态切换的跳转指令bx带状态切换的跳转指令arm微处理器指令的分类24arm微处理器指令表2助记符指令功能描述cdp协处理器数据操作指令cmn比较反值指令cmp比较指令eor异或指令ldc存储器到协处理器的数据传输指令ldm加载多个寄存器指令ldr存储器到寄存器的数据传输指令mcrarm寄存器到协处理器寄存器数据传输arm微处理器指令的分类25arm微处理器指令表3助记符指令功能描述mla乘加运算指令mov数据传送指令mrc协处理器寄存器到arm寄存器数据传输mrs传送cpsr或spsr的内容到通用寄存器msr传送通用寄存器到cpsr或spsr的指令mul32位乘法指令mla32位乘加指令mvn数据取反传送指令arm微处理器指令的分类26arm微处理器指令表4助记符指令功能描述orr逻辑或指令rsb逆向减法指令rsc带借位的逆向减法指令sbc带借位减法指令stc协处理器寄存器写入存储器指令stm批量内存字写入指令str寄存器到存储器的数据传输指令sub减法指令arm微处理器指令的分类27arm微处理器指令表5助记符指令功能描述swi软件中断指令swp交换指令teq相等测试指令tst位测试指令arm微处理器指令的分类28指令的条件域当处理器工作在arm状态时几乎所有的指令均根据cpsr中条件码的状态和指令的条件域有条件的执行
9
3.1.4 ADS实用程序
fromELF
这是ARM映像文件转换工具。该命令将ELF格式的文件作 为输入文件,将该格式转换为各种输出格式的文件,包括 plain binary(BIN格式映像文件), Motorola 32-bit S-record format(Motorola 32位S格式映像文件), Intel Hex 32 format(Intel 32位格式映像文件),和 Verilog-like hex format(Verilog 16进制文件)。
12
提供了7种可选择的工程类型
ARM Executabl Image:用于由ARM指令的代码生成一个ELF格式的 可执行映像文件;
ARM Object Library:用于由ARM指令的代码生成一个armar格式的 目标文件库;
Empty Project:用于创建一个不包含任何库或源文件的工程; Makefile Importer Wizard:用于将Visual C的nmake或GNU make文
ADS由命令行开发工具,ARM时实库,GUI开发环境 (Code Warrior和AXD),实用程序和支持软件组成。 有了 这些部件,用户就可以为ARM系列的RISC处理器编写和 调试自己的开发应用程序了。
4
3.1.1命令行开发工具
ADS提供下面的命令行开发工具:
Armcc
ARM C编译器,默认工具
件转入到CodeWarrior IDE 工程文件; Thumb ARM Executable Image:用于由ARM指令和Thumb指令的混
和代码生成一个可执行的ELF格式的映像文件; Thumb Executable image:用于由Thumb指令创建一个可执行的ELF
格式的映像文件; Thumb Object Library:用于由Thumb指令的代码生成一个armar格式
17
编译,调试,运行
18
调试过程中---查看内存数据情况
19
调试过程中---查看寄存器数据情况
20
提纲
3.2 ARM指令分类及寻址方式
1 ARM 微处理器指令的分类 2 ARM 微处理器指令的条件域 3 ARM 微处理器指令的寻址方式
21
ARM微处理器指令的分类
ARM微处理器的指令系统
ARM微处理器的指令集是加载/存储型的,也即指令集仅 能处理寄存器中的数据,而且处理结果都要放回寄存器中, 而对系统存储器的访问则需要通过专门的加载/存储指令 来完成。
24
ARM微处理器指令的分类
ARM微处理器指令表-3
助记符 MLA MOV MRC MRS MSR MUL MLA MVN
指令功能描述 乘加运算指令 数据传送指令 协处理器寄存器到ARM寄存器数据传输 传送CPSR或SPSR的内容到通用寄存器 传送通用寄存器到CPSR或SPSR的指令 32位乘法指令 32位乘加指令 数据取反传送指令
ARMulator 这是一个ARM指令集仿真器,集成在ARM的调试器AXD 中,它提供对ARM处理器的指令集的仿真,为ARM和 Thumb提供精确的模拟。用户可以在硬件尚未做好的情况 下,开发程序代码。
11
3.2 使用ADS创建工程
3.2.1 建立一个工程 在CodeWarrior中新建一个工程的方法有两种,可以在工 具栏中单击“New”按钮,也可以在“File”菜单中选择 “New…”菜单。这样就会打开一个如图所示的对话框。
第3章 ADS开发环境
和
ARM汇编语言
主要内容:
3.1 ADS开发环境 3.1.1 ADS软件组成介绍 3.1.2 使用ADS创建工程 3.1.3 用AXD进行代码调试
3.2 ARM汇编程序设计
2
3.1ADS开发环境
在这一节里,将介绍ARM开发软件ADS(ARM Developer Suite)。通过学习如何在CodeWarrior IDE集成开发环境下 编写,编译一个工程的例子,使读者能够掌握在ADS软件 平台下开发和调试ARM汇编程序。
种机制,它能够根据应用程序代码的输入/输出请求,与 运行有调试功能的主机通讯。这种技术允许主机为通常没 有输入和输出功能的目标硬件提供主机资源)用来实现C库 函数的与目标相关的函数;
(3)被C和C++编译器所调用的支持函数。 ARM C 库提供了额外的一些部件支持C++,并为不同的 结构体系和处理器编译代码。C++库函数包含由ISO C++ 库标准定义的函数。
的目标文件库。 在这里选择ARM Executable Image,在“Project name:”中输入
工程文件名,点击“Location:”文本框的“Set…”按钮,浏览选择想要 将该工程保存的路径,将这些设置好后,点击“确定” 即可 。
13
这个时候会出现ledcircle.mcp的窗口,如图8.2所示,有三 个标签页,分别为files,link order,target默认的是显示第一 个标签页files。通过在该标签页点击鼠标右键,选中 “Add Files…”可以把要用到的源程序添加到工程中。
14
对于本例,由于所有的源文件都还没有建立,所以首先需 要新建源文件。
在“File”菜单中选择“New”,在打开的如图8.1所示的对 话框中,选择标签页File,在File name中输入要创建的文 件名,输入“helloworld.S”,点击“确定”关闭窗口。
在这里还有一个细节。在建立好一个工程时,默认的 target是DebugRel,还有另外两个可用的target,分别为 Realse和Debug,这三个target的含义分别为: