logo资料库

iar编译连接过程.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
编译链接过程 2011年12月1日 编译器, 汇编器和链接器完成将代码转换成可执行文件的过程. 编译过程: 首先是编译器和汇编器, 这是链接之前的工作, 生成可重定向的目标文件, 进而可以生成库文件: 命令为: iccarm myfile.c 链接过程: 链接器的输入除了有上阶段产生的目标文件和库文件之外, 还需要链接配置文件, 目的是让链接器知道数据段, 代码段等 具体放在哪个地址, 类似的还需要知道程序入口地址. 命令为: ilinkarm myfile.o myfile2.o -o a.out --config myconfigfile.icf 后链接过程 经过链接好之后得到的文件就是符合ELF格式的可执行镜像了, 之后可以将这个镜像文件转换成HEX文件烧入到Flash/PROM 中去. 分区 新分区 2 的第 1 页
中去. ----------------------------------------------------------- 程序运行阶段 代码的运行可分为初始化阶段, 执行阶段和结束阶段. 初始化阶段 初始化阶段一般指从程序第一条语句开始到进入main函数之前, 一般由cstartup.s完成, 初始化阶段一般要做: 硬件初始化--堆栈指针, 中断向量, CPU时钟等 软件初始化--全局变量等 应用程序初始化--RTOS环境 分区 新分区 2 的第 2 页
分区 新分区 2 的第 3 页
执行阶段 通常是循环扫描, 中断驱动, 对于RTOS多任务来说就是任务调度了. 结束阶段 嵌入式程序一般不结束, 但可用exit语句来结束代码运行, 届时所有的资源会被回收. ----------------------------------------------------------- 链接配置文件icf 链接器通常会将应用程序分成好几个段, 譬如有bss段、data段、text段. 具体为: 一般认为已初始化的全局变量保存在.data段中, 未初始化的全局变量保存在.bss段中. 分区 新分区 2 的第 4 页
IAR的icf文件有专门的语句来配置不同的程序段, 一个简单的icf文件的片段如下: 在icf文件中也可以找到__iar_program_start标志位, 用于表示cstartup.s的入口地址. ----------------------------------------------------------- 参考:EWARM_DevelopmentGuide.ENU.pdf 源文档 分区 新分区 2 的第 5 页
分享到:
收藏