热搜关键词: 电路基础ADC数字信号处理封装库PLC

pdf

ADS1.2中文教程.pdf

  • 1星
  • 2021-03-29
  • 924.27KB
  • 需要1积分
  • 12次下载
标签: 单片机

单片机

ADS

ADS

ARM

ARM

ADS1.2中文教程.pdf

www.plcworld.cn
ARM
应用系统开发详解──基于
S3C4510B
的系统设计
www.91HMI.com
第8章
ARM ADS
集成开发环境的½用
在这一章里,将介绍
ARM
开发½件
ADS(ARM Developer Suite)。通过学习如½在
CodeWarrior IDE
集成开发环境下编写,编译一个工程的例子,½读者½够掌握在
ADS
½件
平台下开发用户应用程序。本章还描述了如½½用
AXD
调试工程,½读者对于调试工程有
个初步的理解,为进一步的½用和掌握调试工具起到抛砖引玉的½用。
本章主要内容有:
ADS
½件组成介绍
- ½用
ADS
创建工程
- 用
AXD
进行代码调试
8.1
ADS
集成开发环境组成介绍
www.91HMI.com
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
操½系统。
ADS
由½令行开发工具,ARM 时实库,GUI 开发环境(Code
Warrior
AXD),实用程
序和支持½件组成。 有了这些部件,
www.PLCworld.cn
ARM
系列的
RISC
处理器编写和调试自
用户就可以为
己的开发应用程序了。
下面就详细介绍一下
ADS
的各个组成部分。
www.91HMI.com
8.1.1
½令行开发工具
ld
.c
n
这些工具完成将源代码编译,链接成可执行代码的功½。
ADS
提供下面的½令行开发工具:
armcc
armcc
ARM C
编译器。这个编译器通过了
Plum Hall C Validation Suite
ANSI C
一致性测试。armcc 用于将用
ANSI C
编写的程序编译成
32
½
ARM
指令代码。
因为
armcc
是我们最常用的编译器,所以对此½一个详细的介绍。
在½令控制台环境下,输入½令:
armcc –help
可以查看
armcc
的语法格式以及最常用的一些操½选项
armcc
最基本的用法为:
armcc [options] file1 file2 ... filen
这里的
option
是编译器所需要的选项,fiel1,file2…filen 是相关的文件名。
这里简单介绍一些最常用的操½选项。
-c:表示只进行编译不链接文件;
-C:(注意:这是大写的 C)禁止预编译器将注释行移走;
-D<symbol>:定义预处理宏,相½于在源程序开头½用了宏定义语句#define symbol
这里
symbol
默认为
1;
-E:仅仅是对 C
源代码进行预处理就停止;
w
w
w
.P
LC
w
or
www.plcworld.cn
ARM
应用系统开发详解──基于
S3C4510B
的系统设计
www.91HMI.com
-g<options>:指定是否在生成的目标文件中包含调试信息表;
-I<directory>
: 将
directory
所 指 的 路 径 添 加 到
#include
的 搜 索 路 径 列 表 中 去 ;
-J<directory>:用 directory
所指的路径代替默认的对#include 的搜索路径;
-o<file>:指定编译器最终生成的输出文件名。
-O0:不优化;
-O1:这是控制代码优化的编译选项,大写字母 O
后面跟的数字不同,表示的优化级别
就不同,-O1 关闭了½响调试结果的优化功½;
-O2:该优化级别提供了最大的优化功½;
-S:对源程序进行预处理和编译,自动生成汇编文件而不是目标文件;
-U<symbol>:取消预处理宏名,相½于在源文件开头,½用语句#undef symbol;
-W<options>:关闭所有的或被选择的警告信息;
有关更详细的选项说明,读者可查看
ADS
½件的在线帮助文件。
armcpp
armcpp
ARM C++编译器。它将 ISO C++
EC++
编译成
32
½
ARM
指令代码。
tcc
tcc
Thumb C
编译器。该编译器通过了
Plum Hall C Validation Suite
ANSI
一致性
的测试。tcc 将
ANSI C
源代码编译成
16
½的
Thumb
指令代码。
tcpp
tcpp
Thumb C++
编译器。 它将
ISO C++
EC++
源码编译成
16
½
Thumb
指令代
码。
armasm
armasm
ARM
Thumb
的汇编器. 它对用
ARM
汇编语言和
Thumb
汇编语言写的源
www.PLCworld.cn
代码进行汇编。
armlink
armlink
ARM
连接器。该½令既可以将编译得到的一个或多个目标文件和相关的一
个或多个库文件进行链接,
生成一个可执行文件,
也可以将多个目标文件部分链接成一个目
标文件,以供进一步的链接。ARM 链接器生成的是
ELF
格式的可执行映像文件。
www.91HMI.com
www.91HMI.com
ld
.c
n
.P
LC
w
or
w
armsd
armsd
ARM
Thumb
的符号调试器。它½够进行源码级的程序调试。用户可以在
C
或汇编语言写的代码中进行单步调试,设½断点,查看变量值和内存单元的内容。
w
w
8.1.1.1 armcc
用法详解
下面为读者介绍上述的
4
ARM C
C++编译器的½令通用语法。
compiler
[PCS-options]
[source-language]
[search-paths]
[preprocessor-options]
[output-format] [target-options] [debug-options] [code-generation-options] [warning-options]
[additional-checks] [error-options] [source]
用户可以通过½令行操½选项控制编译器的执行。所有的选项½是以符号”-”开始,有
些选项后面还跟有参数。在大多数情况下,ARM
C
C++编译器允许在选项和参数之间存
在空格。
½令行中各个选项出现顺序可以任意。
这里的
compiler
是指
armcc,tcc, armcpp
tcpp
中的一个;
PCS-options:指定了要½用的过程调用标准;
source-language:指定了编译器可以接受的编写源程序的语言种类。对于 C
编译器默认
的语言是
ANSI C,对于 C++编译器默认是 ISO
标准
C++;
search-paths:该选项指定了对包含的文件(包括源文件和头文件)的搜索路径;
www.plcworld.cn
ARM
应用系统开发详解──基于
S3C4510B
的系统设计
www.91HMI.com
preprocessor-options:该选项指定了预处理器的行为,其中包括预处理器的输出和宏定
义等特性;
output-format:该选项指定了编译器的输出格式,可以½用该项生成汇编语言输出列表
文件和目标文件;
target-options:该选项指定目标处理器或 ARM
½系结构;
debug-options:该选项指定调试信息表是否生成,和该调试信息表生成时的格式;
code-generation-options:该选项指定了例如优化,字节顺序和由编译器产生的数据对½
格式等选项;
warning-options:该选项决定警告信息是否产生;
additional-checks:该选项指定了几个½用于源码的附加检查,例如检查数据流异常,
检查没有½用的声明等;
error-options:该选项可以关闭指定的可恢复的错误,或者将一些指定的错误降级为警
告;
source:该选项提供了包含有 C
C++源代码的一个或多个文件名,默认的,编译器在
½前路径寻找源文件和创建输出文件。如果源文件是用汇编语言编写的(也就是说该文件的
文件名是以.s ½为扩展名),汇编器将被调用来处理这些源文件。
如果操½系统对½令行的长度有限制,
可以½用下面的操½,
从文件中读取另外的½令
行选项:
-via filename
该½令打开文件名为
filename
的文件,并从中读取½令行选项。用户可以对-via 进行嵌
套调用,亦即,在文件
filename
中又通过-via
finlename2
包含了另外一个文件。
在下面的例子中,从
input.txt
文件中读取指定的选项,½为
armcpp
的操½选项:
www.PLCworld.cn
www.91HMI.com
armcpp -via input.txt source.c
以上是对编译器选项的一个简单概述。它们(包括后面还要介绍的其他一些½令工具)既
可以在½令控制台环境下½用,同时由于它们被嵌入到了
ADS
的图½界面中,所以也可以
在图½界面下½用。
www.91HMI.com
8.1.1.2 armlink
用法详解
ld
.c
n
w
.P
LC
w
or
在介绍
armlink
的½用方法之前,先介绍要涉及到的一些术语。
映像文件(image):是指一个可执行文件,在执行的时候被加½½到处理器中。一个映像
文件有多个线程。它是
ELF(Executable and linking format)格式的。
段(Section):描述映像文件的代码或数据块。
RO:是 Read-only
的简写½式。
RW:是 Read-write.的简写½式。
ZI:是 Zero-initialized
的简写½式。
输入段(input
section):它包含着代码,初始化数据或描述了在应用程序运行之前必须要
初始化为
0
的一段内存。
输出段(output
section):它包含了一系列具有相同的 RO,RW
ZI
属性的输入段。
域(Regions):在一个映像文件中,一个域包含了
1
3
个输出段。多个域组织在一起,
就构成了最终的映像文件。
Read Only Position Independent(ROPI):
它是指一个段,
在这个段中代码和只读数据的地
址在运行时候可以改变。
Read Write Position Independent(RWPI):它是指一个段,在该段中的可读/写的数据地址
在运行期间可以改变。
加½½时地址:是指映像文件½于存储器(在该映像文件没有运行时)中的地址。
w
w
www.plcworld.cn
ARM
应用系统开发详解──基于
S3C4510B
的系统设计
www.91HMI.com
运行时地址:是指映像文件在运行时的地址。
下面介绍一下
armlink
½令的语法
完整的连接器½令语法如下:
armlink [-help] [-vsn] [-partial] [-output file] [-elf] [-reloc][-ro-base address] [-ropi]
[-rw-base address] [-rwpi] [-split]
[-scatter file][-debug|-nodebug][-remove?RO/RW/ZI/DBG]|-noremove] [-entry location ]
[-keep section-id] [-first section-id] [-last section-id] [-libpath pathlist] [-scanlib|-noscanlib]
[-locals|-nolocals] [-callgraph] [-info topics] [-map] [-symbols] [-symdefs file] [-edit file]
[-xref] [-xreffrom object(section)] [-xrefto object(section)] [-errors file] [-list file] [-verbose]
[-unmangled |-mangled] [-match crossmangled][-via file] [-strict]
[-unresolved symbol][-MI|-LI|-BI] [input-file-list]
上面各选项的含义分别为:
-help
这个选项会列出在½令行中常用的一些选项操½。
-vsn
这个选项显示出所用的
armlink
的版本信息。
-partial
用这个选项创建的是部分链接的目标文件而不是可执行映像文件。
-output file
这个选项指定了输出文件名,
该文件可½是部分链接的目标文件,
也可½是可执行映像
文件。如果输出文件名没有特别指定的话,armlink 将½用下面的默认:
如果输出是一个可执行映像文件,则生成的输出文件名为__image.axf;
www.PLCworld.cn
如果输出是一个部分链接的目标文件,在生成的文件名为__object.o;
如果没有指定输出文件的路径信息,
则输出文件就在½前目½下生成。
如果指定了路径
信息,则所指定的路径成为输出文件的½前路径。
-elf
这个选项生成
ELF
格式的映像文件,这也是
armlink
所支持的唯一的一种输出格式,这
是默认选项。
-reloc
这个选项生成可重定址的映像。
一个可重定址的映像具有动态的段,
这个段中包含可重定址信息,
利用这些信息可以在
链接后,进行映像文件的重新定址;
-reloc,-rw-base
一起½用,½是如果没有-split 选项,链接时会产生错误。
-ro-base address
这个选项将包含有
RO(Read-Only
属性)输出段的加½½地址和运行地址设½为
address,
该地址必须是字对½的,如果没有指定这个选项,则默认的
RO
基地址值为
0x8000。
-ropi
这个选项½得包含有
RO
输出段的加½½域和运行域是½½无关的。如果该选项没有½
用,则相应的域被标记为绝对的。通常每一个只读属性的输入段必须是只读½½无关的。如
果½用了这个选项,armlink 将会进行以下操½:
检查各段之间的重定址是否有效;
确保任½由
armlink
自身生成的代码是只读½½无关的。
这里希望读者注意的是,ARM 工具直到
armlink
完成了对输入段的处理后,才½够决
定最终的生成映像是否为只读½½无关的。这就意味着 ,即½为编译器和汇编器指定了
www.91HMI.com
www.91HMI.com
w
w
w
.P
LC
w
or
ld
.c
n
www.plcworld.cn
ARM
应用系统开发详解──基于
S3C4510B
的系统设计
www.91HMI.com
ROPI
选项,armlink 也可½会产生
ROPI
错误信息。
-rw-base address
这个选项设½包含
RW(Read/Write
属性)输出段的域的运行时地址,该地址必须是字对
½的。
如果这个选项和-split 选项一起½用,将设½包含
RW
输出段的域的加½½和运行时地址
½设½在
address
处。
-rwpi
这个选项½得包含有
RW
ZI(Zero Initialization,
初始化为
0)属性的输出段的加½½和运
行时域为½½无关的。如果该选项没有½用,相应域标记为绝对的。这个选项要求-rw-base
选项后有值,如果-rw-base 没有指定的话,默认其值为
0,即相½于-rw-base 0。通常每一个
可写的输入段必须是可读/ 可写的½½无关的。
如果½用了该选项,armlink 会进行以下的操½:
检查可读/可写属性的运行域的输入段是否设½了½½无关属性;
检查在各段之间的重定址是否有效;
生成基于静态寄存器
sb
的条目,这些在
RO
RW
域被拷贝和初始化的时候会用到。
编译器并不会强制可写的数据一定要为½½无关的,
这就是说,
即½在为编译器和汇编
器指定了
RWPI
选项,armlink 也可½生成数据不是
RWPI
的信息。
-split
这个选项将包含
RO
RW
属性的输出段的加½½域,分割成
2
个加½½域。一个是包含
RO
输出段的加½½域,默认的加½½地址为
0x8000,½是可以用-ro-base
选项设½其他的地址
值,另一个加½½域包含
RO
属性的输出段,由-rw-base 选项指定加½½地址,如果没有½用
-rw-base
选项的话,默认½用的是-rw-base
0。
www.PLCworld.cn
www.91HMI.com
-scatter file
这个选项½用在
file
中包含的分组和定½信息来创建映像内存映射。
注意,如果½用了该选项的话,必须要重新实现堆栈初始化½数
__user_initial_stackheap()。
-debug
这个选项½输出文件包含调试信息,调试信息包括,调试输入段,符号和字符串表。这
是默认的选项。
-nodebug
这个选项½得在输出文件中不包含调试信息。
生成的映像文件短小,
½是不½进行源码
级的调试。armlink 对在输入的目标文件和库½数中发现的任½调试输入段½不予处理,½
加½½映像文件到调试器中的时候,
也不包含符号和字符串信息表。
这个选项仅仅是对装½½到
调试器的映像文件的大小有½响,
½是对要下½½到目标板上的二进制代码的大小没有任½½
响。
如果用
armlink
进行部分链接生成目标文件而不是映像文件,则½然在生成的目标文件
中不含有调试输入段,½是会包含符号和字符串信息表。
这里特别请读者注意的是:
如果要在链接完成后½用
fromELF
工具的话,不可½用-nodebug 选项,这是因为如果
生成的映像文件中不包含调试信息的话,则有下面的½响:
fromELF
不½将映像文件½换成其他格式的文件;
fromELF
不½生成有意义的反汇编列表。
-remove (RO/RW/ZI/DBG)
½用这个选项会将在输入段未½用的段从映像文件中删除。
如果输入段中含有映像文件
www.91HMI.com
w
w
w
.P
LC
w
or
ld
.c
n
展开预览

文档解析

本文详细介绍了基于S3C4510B平台的ARM应用系统开发流程,重点讲解了ARM Developer Suite(ADS)集成开发环境的使用。ADS是一个功能丰富的开发工具集,支持在多种Windows操作系统上运行,包括命令行开发工具、ARM实时库、图形用户界面开发环境(Code Warrior和AXD)、实用程序和支持软件等组件。文中首先对ADS的组成进行了概述,然后深入介绍了命令行开发工具的使用,尤其是armcc编译器的多种选项和参数。接着,通过一个具体的工程实例,详细演示了如何在CodeWarrior IDE中创建工程、添加源文件、配置生成目标以及编译链接过程。此外,还提供了不在IDE环境下,使用makefile和命令行工具进行程序开发和编译的方法。最后,文中还介绍了如何使用AXD调试器对程序进行源码级调试,包括设置断点、查看变量值和内存内容等调试技巧。通过本章的学习,读者将能够掌握在ADS软件平台上开发和调试ARM应用程序的全过程。

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

  • 2017年一定要关注ARM这三大技术(转)
    [url=http://www.toutiao.com/a6373870288929358081/]原文地址[/url][align=left][color=#222222][font="][size=16px]ARM作为全球领先的IP供应商,凭借其核心优势,在移动设备时代,混的风生水起。而近年来随着设备转变的需求,ARM也针对性的做了提高,推出更适合的高效能产品。我们来盘点一下2017年
  • IAR WorkBench怎么生成可烧的.hex文件?[求助]
    IAR WorkBench怎么生成可烧的.hex文件?我用 XELTEX的3000U 烧片子,在IAR WorkBench里找不到可以烧录的选择?那位告知一下,万分感谢!是不是需要用其他软件来做?IAR WorkBench只能来调试 或者用jatg口来输入编译完的程序???
  • [转]实现手势识别:摄像头VS超声波麦克风?
    手势识别技术的走红离不开一批成功的体感游戏设备,各大半导体厂商推出不同原理的手势识别方案,其中应用最为广泛的是多在游戏设备中利用摄像头实现计算机视觉,但其他方案例如红外识别、电场识别、以及超声波识别也在不断推出新的产品与技术。之前或许您已经听说过利用超声波麦克风进行手势识别,但很多工程师可能还会认为这是停留在实验室的项目,事实上,利用超声波进行手势识别的方案已经相当成熟,而且有其独特的优势。数字超
  • 模拟开关的特殊用法
    模拟开关的特殊用法模拟开关在数据采集系统中通常被用作模拟传输器,和A/D转换器配合使用以实现多通道的模拟信号输入;在控制中通常被用作为模拟分离器,和D/A转换器配合使用以实现多通道的模拟信号输出。模拟传输器/分离器是模拟开关的常规应用。 除了上述常规应用外,模拟开关还可被用于许多特殊场合,如可编程运算放大器、斩波稳零放大器、可编程积分器、采样/保持器、D/A转换器。以LF11311为例介绍这些特殊
  • 慢慢地快走——2015年总结
    慢慢地快走——2015年总结2015年到了尾巴,祝愿大家快快乐乐!最大的体会就是在不知不觉慢慢走的时候发现自己有小有进步。这时看看自己进入EEworld的帖子,从小小心得到认真地分析一些问题,慢慢读文档刷代码,把帖子练成串。虽然还是忙忙碌碌又一年,不过却发现在这个过程中,自己会安静地做一点小事情,能跟大家分享一些想法。还会出一些比较低级的,然后被不客气地挑出来。我的感觉是很好!谢谢EEworld,
  • EP9305
  • C64x+网络培训(三)—— 硬件系统的特性
  • <linux系统基础教程>下载
  • 【i.MX6ULL】驱动开发11——LCD驱动实践
  • 【手机DIY】辛昕6. stm32f0的串口 和 定时中断

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×