HengFeng

--博观而约取,厚积而薄发
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

随笔分类 -  Makefile

摘要:在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说, 就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统 (Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Wi... 阅读全文

posted @ 2011-11-18 10:03 hengfeng 阅读(333) 评论(0) 推荐(0)

摘要:我们编译产生的ELF文件,在最开始包含了一个ELF文件头, 其中有一个字段E_PHOFF指向了同文件中一块“程序头表”的偏移位置。 而这个程序头表中包含了若干个表项, 每个表项表明了组成ELF文件的若干个段的地址,大小,属性的信息。 再对照SCL文件,可以发现原来每个段与SCL中的各个加载域一一对应。所以ELF各个段其实就是SCL中指定的各段内容的二进制表现。 有的项目编译产生的ELF文件只包含一个段,但是却有若干个节。同样在ELF头的e_shoff字段给出了节头在整个文件中的偏移(如果节头存在的话),节头也叫节头表,节头可看做一个在文件中连续存储的结构数组(Elf32_Shdr结构的... 阅读全文

posted @ 2010-06-04 22:25 hengfeng 阅读(467) 评论(0) 推荐(0)

摘要:ELF格式学习笔记0 几个概念ELF: Executable and Linking FormatELF的三种类型《出自EXECUTABLE AND LINKABLE FORMAT (ELF)》:* 一个可重定位(relocatable)文件保存着代码和适当的数据,用来和其他的 object文件一起来创建一个可执行文件或者是一个共享文件。* 一个可执行(executable)文件保存着一个用来执行的程序;该文件指出了 exec(BA_OS)如何来创建程序进程映象。* 一个共享object文件保存着代码和合适的数据,用来被下面的两个链接器 链接。第一个是连接编辑器[请参看ld(SD_CMD)], 阅读全文

posted @ 2010-05-11 22:53 hengfeng 阅读(649) 评论(0) 推荐(0)

摘要:一直以来对于ARM体系中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该有不少人也有和我同样的困惑,因此将我的一些关于RO,RW和ZI的理解写出来,希望能对大家有所帮助。要了解RO,RW和ZI需要首先了解以下知识:ARM程序的组成此处所说的“ARM程序”是指在ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件,这一点清注意区别。一个ARM程序包含3部分:RO,RW和ZIRO是程序中的指令和常量RW是程序中的已初始化变量ZI是程序中的未初始化的变量由以上3点说明可以理解为:RO 阅读全文

posted @ 2009-10-29 14:19 hengfeng 阅读(1209) 评论(0) 推荐(0)

摘要:有过嵌入式程序设计的程序员都知道,在创建一个新的任务时都要为其传入一个栈空间和栈的大小(有时),那么这个栈到底是用来干什么的呢?本文将带你找到答案。本文介绍的实验环境是Windows上移植的uCOSII,在VS.Net 2003中。一、栈首要的任务就是,存储当前任务的寄存器状态以便在任务切换时恢复到切换前的状态。这个功能是嵌入式的OS中栈的特有功能,其地址存放在任务的控制块TCB中。二、存放函数调用及局部变量。 一个嵌入式系统中往往存在很多个任务,特定任务的栈只存放该任务调用的函数及局部变量,下面我们给出实验结果://创建任务需要的栈空间int TaskStk[10][2048]; // Ta 阅读全文

posted @ 2009-08-05 15:52 hengfeng 阅读(425) 评论(0) 推荐(0)