网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > uCLinux > 文章  
嵌入式uClinux的内核结构和开发环境
文章来源: 52RD.com 文章作者: 52RD.com 发布时间: 2007-01-15   字体: [ ]  
 

  GNU开发套件作为通用的Linux开放套件,包括一系列的开发调试工具。主要组件:

  Gcc: 编译器,可以做成交叉编译的形式,即在宿主机上开发编译目标上可运行的二进制文件。

  Binutils:一些辅助工具,包括objdump(可以反编译二进制文件),as(汇编编译器),ld(连接器)等等。

  Gdb:调试器,可使用多种交叉调试方式,gdb-bdm(背景调试工具),gdbserver(使用以太网络调试)。

  2、Clinux的打印终端

  通常情况下,uClinux的默认终端是串口,内核在启动时所有的信息都打印到串口终端(使用printk函数打印),同时也可以通过串口终端与系统交互。

  uClinux在启动时启动了telnetd(远程登录服务),操作者可以远程登录上系统,从而控制系统的运行。至于是否允许远程登录可以通过烧写romfs文件系统时由用户决定是否启动远程登录服务。

  3、交叉编译调试工具

  支持一种新的处理器,必须具备一些编译,汇编工具,使用这些工具可以形成可运行于这种处理器的二进制文件。对于内核使用的编译工具同应用程序使用的有所不同。在解释不同点之前,需要对gcc连接做一些说明:

  ld(link description)文件:ld文件是指出连接时内存映象格式的文件。

  crt0.S:应用程序编译连接时需要的启动文件,主要是初始化应用程序栈。

  pic:position independence code ,与位置无关的二进制格式文件,在程序段中必须包括reloc段,从而使的代码加载时可以进行重新定位。

  内核编译连接时,使用ucsimm.ld文件,形成可执行文件映象,所形成的代码段既可以使用间接寻址方式(即使用reloc段进行寻址),也可以使用绝对寻址方式。这样可以给编译器更多的优化空间。因为内核可能使用绝对寻址,所以内核加载到的内存地址空间必须与ld文件中给定的内存空间完全相同。

  应用程序的连接与内核连接方式不同。应用程序由内核加载(可执行文件加载器将在后面讨论),由于应用程序的ld文件给出的内存空间与应用程序实际被加载的内存位置可能不同,这样在应用程序加载的过程中需要一个重新地位的过程,即对reloc段进行修正,使得程序进行间接寻址时不至于出错。(这个问题在i386等高级处理器上方法有所不同)。

  由上述讨论,至少需要两套编译连接工具:

  1) 二进制工具(Binutils)

  GNU binutils包包括了汇编工具、链接器和基本的目标文件处理工具。对binutils包的设置定义了所需的目标文件的格式和字节顺序。Binutils包种的工具都使用了二进制文件描述符(BFD)库来交换数据。通过设置文件config.bfd,可以指定默认的二进制文件格式(例如elf little endian)和任何工具可用的格式,见例1。

  例1 在config.bfd中添加的用来指定目标二进制格式的代码

arm-*-uClinux* | armel-*-uClinux*
tag_defvec=bfd_elf32_littlearm_vec
targ_selvecs=”bfd_elf32_bigarm_vec armcoff_little_vec armcoff_big_vec”

 
推荐文章
 

 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
相关文章
·制作基于软盘的Linux系
·Linux下ARM/DSP双核系统
·基于 GTK+ 和 X-window
·主流嵌入式Linux系统下G
·基于Qt/Embedded和Qtopi
·嵌入式Linux系统的MiniG
·恰当选择嵌入式Linux环
·基于嵌入式Linux的智能
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统