欢迎来到天天文库
浏览记录
ID:36883232
大小:2.10 MB
页数:71页
时间:2019-05-10
《第六章ADS集成开发环境的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第六章ADS集成开发环境的使用6.1裸机开发环境裸机开发环境何谓“裸机”?裸机是指无操作系统下的ARM系统开发其特点是所有硬件资源均开放可以把它理解为一个高级单片机的开发裸机开发的作用更能深入地从底层去理解ARMCPU的操作过程及系统设计为日后自行设计系统打下基础为bootloader的编写打好基础开发环境的作用ADS下嵌入式系统开发模式模拟方式仿真方式调试方式开发环境开发软件有:SDT(SoftwareDevelopmentToolkit)2.51ADS(ARMDeveloperSuite)1.2RealView®调试软件有:AXD(ARMeXtendedDebugger):ARM
2、扩展调试器;ARMSD(ARMSymbolicDebugger):ARM符号调试器;ADW/ADU(ApplicationDebuggerWindows/Unix):与老版本兼容的Windows或Unix下的ARM调试工具。6.2ADS1.2开发环境介绍ADS集成开发环境ARM公司推出的新一代ARM集成开发工具(相对于SDT)全称:MetrowerksCodeWarriorforARMDeveloperSuitev1.2ADS的CodeWarriorIDE基于MetrowerksCodeWarriorIDE4.2版本它经过适当的裁剪以支持ADS工具链ADS集成开发环境组成ADS的主要
3、组成部件有:命令行开发工具ARM运行时库GUI开发环境(CodeWarrior和AXD)有了这些部件,用户就可以为ARM系列的RISC处理器编写和调试自己的开发应用程序6.2.1命令行开发工具命令行开发工具完成将源代码编译,链接成可执行代码的功能类似于8086汇编环境下的masm和link工具命令行开发工具需要记忆较多的命令参数,但效率高;通常用集成开发环境(IDE)代替ADS提供下面的命令行开发工具:Armcc:ARMC编译器Armcpp:ARMC++编译器Armasm:ARM汇编编译器:Armlink:ARM连接器Armccarmcc用于将用ANSIC编写的程序编译成32位ARM
4、指令代码armcc最基本的用法为:armcc[options]file1file2...filen这里的option是编译器所需要的选项,fiel1,file2…filen是相关的文件名举例:armcc-cinit.sled.s-c:表示只进行编译不链接文件;-C:(注意:这是大写的C)禁止预编译器将注释行移走;-D:定义预处理宏,相当于在源程序开头使用了宏定义语句#definesymbol,-E:仅仅是对C源代码进行预处理就停止;-g:指定是否在生成的目标文件中包含调试信息表;-I:将directory所指的路径添加到#inc
5、lude的搜索路径列表中去;-o:指定编译器最终生成的输出文件名。-O0:不优化;-O1:这是控制代码优化的编译选项,大写字母O后面跟的数字不同,表示的优化级别就不同,-O1关闭了影响调试结果的优化功能;-O2:该优化级别提供了最大的优化功能;-S:对源程序进行预处理和编译,自动生成汇编文件而不是目标文件;-U:取消预处理宏名,相当于在源文件开头,使用语句#undefsymbol;-W:关闭所有的或被选择的警告信息;有关更详细的选项说明,读者可查看ADS软件的在线帮助文件。armasmarmasm是ARM和Thumb的汇编器它对用ARM汇
6、编语言和Thumb汇编语言写的源代码进行汇编6.2.2ARM运行时库ARM运行时库运行时库就是Crun-timelibrary你的C程序运行时需要这些库中的函数Crun-timelibrary里面含有初始化代码,还有错误处理代码(例如dividebyzero处理)如果没有了Crun-time库,main()就不会被调用,exit()也不能被响应。因为Crun-timelibrary包含了C程序运行的最基本和最常用的函数库的作用当用户对汇编程序,C程序或C++程序进行链接的时候,链接器会根据在建立时所指定的选项,选择适当的C或C++运行时库的类型选项各种不同组合都有一个相应的ANSIC
7、库类型ADS提供以下的运行时库来支持被编译的C和C++代码:ANSIC库函数:C++库函数:ANSIC库函数由以下几部分组成:在ISOC标准中定义的函数;在semihosted环境下用来实现C库函数的与目标相关的函数;被C和C++编译器所调用的支持函数C++库函数由以下几部分组成的:版本为2.01.01的RogueWaveStandardC++库;C++编译器使用的支持函数;RogueWave库所不支持的其他的C++函数库路径结构库路径是在ADS软件安装路
此文档下载收益归作者所有