首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于MDK和RealView(2)

关于MDK和RealView(2)

MDK中的编译工具主要有以下三部分:1 、RealView C/C++ 编译器 (CARM)

C语言是一种通用的编程语言,它不是针对一种特定应用程序而设计的,其具有代码高效,结构紧凑指令集丰富的特点。C语言的通用性以及不存在限制的特点,使得C成为一种便利和有效的编程语言,可以解决各种不同的软件任务。与其它专门的语言相比,在开发应用程序时使用C语言将会更加容易和有效。

C语言本身不能够执行一些诸如输入输出之类的操作,这些操作在一般情况下需要由操作系统来支持的,或者被作为标准库的一部分。也正是因为这些功能和语言本身相分离,C语言特别适合于编写便于移植的代码,以应用于各种不同的平台。

MDK所包含的优化C编译器 -CARM,是面向ARM微控制器而设计的,完全遵循ANSI的C语言标准。CARM不是通用的C编译器,它能使面向ARM的C语言编程更加灵活、代码更加有效,并还可提升汇编语言的执行速度。

由于CARM是一种专用的交叉编译器,在C语言和标准库的某些方面做了部分改进以满足嵌入式目标处理器的特点。

2、RealView 宏汇编器(AARM)

MDK所包含的汇编器 - AARM,能够将符号代码(汇编语言)编译成为可执行的目标代码。这种目标代码能够被基于ARM7或者ARM9的微控制器所执行。如果开发者曾经使用机器可识别的形式编写过程序,比如二进制或者十六进制代码,那么将会体会到用符号汇编语言编程的优势。

设计汇编语言操作码的目的是为了便于记忆,开发者可以参照指令操作字段,使用符号表达地址和数据。在指派这些名字时,可以使指令更加有意义以便于记忆。例如,如果程序要处理一个数据,那么可以为其指派一个符号名字DATA。如果程序包含一组指令被用来作为延时循环,那么可以给这组指令命名为TIMER-LOOP。
一个汇编程序通常包含以下三部分:
l           机器指令:指机器可执行的代码。在ARM微控制器硬件手册上有对于机器指令集的详细描述
l           汇编命令:定义程序的结构和标号,产生不可执行的代码(数据,消息,等等);
l           汇编管理:设置汇编模式和指示汇编流程。

3、 RealView Linker (armLinK)

l          详细的列表文件
链接器将创建完整并容易理解的清单文件。它包含了如存储器配置,输入模式、存储器映射、符号表和交叉涉及的内容。
l          全局代码列表
链接器能够产生一全局代码列表文件,这个文件展示了生成代码的符号反汇编。
l          静态堆栈分析
在链接时,链接器将计算堆栈的数目。这避免了在目标应用的运行堆栈检测。
继承事业,薪火相传
返回列表