snifer

【技术分享】【原创】Code Warrior开发环境全接触

0
阅读(14413)

嵌入式开发中裸机的时代已经一去不复返了,今天我就写写开发环境的发展。


•何谓“裸机”?
–裸机是指无操作系统下的ARM系统开发
–其特点是所有硬件资源均开放
–可以把它理解为一个高级单片机的开发
•裸机开发的作用
–更能深入地从底层去理解ARM CPU的操作过程及系统设计
–为日后自行设计系统打下基础
–为bootloader的编写打好基础
开发环境的作用:


现在主要用到GUI开发环境,也就是Code Warrior。



•CodeWarrior集成开发环境(IDE)为管理和开发项目提供了简单多样化的图形用户界面
•用户可以使用ADS的CodeWarrior IDE为ARM和Thumb处理器开发用C,C++,或ARM汇编语言的程序代码
•全面的项目管理功能
•CodeWarrior for ARM是一套完整的集成开发工具,充分发挥了ARM RISC 的优势
•在整个开发周期中,开发人员无需离开CodeWarrior开发环境,提高了效率
•可以在CodeWarrior IDE为ARM配置以上所介绍的各种命令工具,实现对工程代码的编译,汇编和链接
主要优势有:



•源代码编辑器
–集成在CodeWarrior IDE的浏览器中,能够根据语法格式,使用不同的颜色显示代码;
•源代码浏览器
–保存了在源码中定义的所有符号,能够使用户在源码中快速方便的跳转;
•查找和替换功能
–用户可以在多个文件中,利用字符串通配符,进行字符串的搜索和替换;
•文件比较功能
–可以使用户比较路径中的不同文本文件的内容
实用程序 有:



•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进制文件)
•armar
–ARM库函数生成器将一系列ELF格式的目标文件以库函数的形式集合在一起,用户可以把一个库传递给一个链接器以代替几个ELF文件。


•与调试相关工具链在该集成环境中没有实现
•但与ARM调试器(AXD)能进行无缝地连接调用
需要介绍一个重要概念就是-target



•在CodeWarrior IDE中所涉及到的target有两种不同的语义
–目标系统(Target system)
•特指代码要运行的环境,是基于ARM的硬件。比如,要为ARM开发板上编写要运行在它上面的程序,这个开发板就是目标系统。
–生成目标(Build target)
•指用于生成特定的目标文件的选项设置(包括汇编选项,编译选项,链接选项以及链接后的处理选项)和所用的文件的集合。
操作过程及实例


1建立工程 


•在磁盘里新建一个目录“D:\arm”
•打开ADS软件
•点击工具栏“File”,下拉点击“New…”


选择工程类型:

输入工程名称及其目录:

Ledcircle工程建立:

新建工程后的目录:

新建文件:

Init.s文件:


•Main.c


添加文件到工程:

添加到target:


•DebugRel:使用该目标,在生成目标的时候,会为每一个源文件生成调试信息;
•Debug:使用该目标为每一个源文件生成最完全的调试信息;
•Release:使用该目标不会生成任何调试信息。


文件添加完毕:

编译连接:

进入编译连接设置:

设置窗口:

目标设置:

ARMASM编译器设置:

ARMCC编译器设置:

文件输出设置:

编译连接:

文件输出:

呵呵,写的比较啰嗦,希望大家能喜欢,开学了!!!