⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000006.htm

📁 关于embedded的文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<HTML><HEAD>  <TITLE>武汉白云黄鹤站∶精华区</TITLE></HEAD><BODY><CENTER><H1>武汉白云黄鹤站∶精华区</H1></CENTER>发信人:&nbsp;dot&nbsp;(爱吃萝卜和青菜),&nbsp;信区:&nbsp;Embedded&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;基于IQ80321和arm-linux的软件开发指南&nbsp;<BR>发信站:&nbsp;武汉白云黄鹤站&nbsp;(2004年10月11日16:03:25&nbsp;星期一),&nbsp;站内信件&nbsp;<BR>&nbsp;<BR>重要文档,再次吐血推荐!&nbsp;<BR>&nbsp;<BR>《基于IQ80321和arm-linux的软件开发指南》&nbsp;【原创】&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>产品版本&nbsp;<BR>密级&nbsp;<BR>项目名称&nbsp;<BR>项目ID&nbsp;<BR>共&nbsp;45&nbsp;页&nbsp;<BR>文档编号&nbsp;<BR>&nbsp;<BR>基于IQ80321和arm-linux的&nbsp;<BR>软件开发指南&nbsp;<BR>&nbsp;<BR>拟制:&nbsp;<BR>董晓明&nbsp;<BR>日期:&nbsp;<BR>2004-5-9&nbsp;<BR>评审:&nbsp;<BR>日期:&nbsp;<BR>批准:&nbsp;<BR>日期:&nbsp;<BR>yyyy/mm/dd&nbsp;<BR>签发:&nbsp;<BR>日期:&nbsp;<BR>yyyy/mm/dd&nbsp;<BR>武汉东湖存储技术有限公司&nbsp;<BR>版权所有&nbsp;&nbsp;不得复制&nbsp;<BR>&nbsp;<BR>修&nbsp;订&nbsp;记&nbsp;录&nbsp;<BR>日期&nbsp;<BR>修订版本&nbsp;<BR>描述&nbsp;<BR>作者&nbsp;<BR>2004-7-6&nbsp;<BR>1.0&nbsp;<BR>初稿。ARM&nbsp;Linux&nbsp;可以在IQ80321平台运行,有个别小问题尚未解决。&nbsp;<BR>董晓明&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>1&nbsp;概述&nbsp;<BR>&nbsp;<BR>1.1&nbsp;目的和范围&nbsp;<BR>  说明在INTEL&nbsp;IQ80321开发板上面运行ARM&nbsp;LINUX的过程,包括在主机上建立交&nbsp;<BR>叉编译环境、编译内核、制作根文件系统和引导目标机的方法步骤。&nbsp;<BR>1.2&nbsp;背景&nbsp;<BR>  单位:华中科技大学信息存储系统重点实验室&nbsp;<BR>  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;武汉东湖存储技术有限公司&nbsp;<BR>  项目:RAID控制器(RDC)&nbsp;<BR>  RDC核心软件在x86平台、Redhat&nbsp;Linux环境下开发。产品化阶段需要首先移植&nbsp;<BR>到IQ80321平台。计划于2004年7月底完成移植。&nbsp;<BR>1.3&nbsp;软硬件环境&nbsp;<BR>主机(host)&nbsp;<BR>目标机(target)&nbsp;<BR>硬件环境&nbsp;<BR>PC&nbsp;<BR>Intel&nbsp;IQ80321&nbsp;<BR>操作系统&nbsp;<BR>Redhat&nbsp;Linux&nbsp;9.0&nbsp;<BR>arm-linux&nbsp;<BR>  &nbsp;<BR>1.4&nbsp;参考资料&nbsp;<BR>[1]&nbsp;Intel&nbsp;IQ80321&nbsp;I/O&nbsp;Processor&nbsp;Evaluation&nbsp;Platform&nbsp;Board&nbsp;Manual.&nbsp;Docume&nbsp;<BR>nt&nbsp;Number:&nbsp;273521-006,&nbsp;November&nbsp;7,&nbsp;2002.&nbsp;<BR>[2]&nbsp;RedBoot&nbsp;User's&nbsp;Guide.&nbsp;Document&nbsp;Version&nbsp;1.5m,&nbsp;July&nbsp;2001.&nbsp;<BR>[3]&nbsp;The&nbsp;Linux&nbsp;MTD,&nbsp;JFFS&nbsp;HOWTO.&nbsp;(work&nbsp;in&nbsp;progress)&nbsp;v&nbsp;1.16&nbsp;2001/08/13.&nbsp;<BR><A HREF="http://ftp.linux.org.uk/pub/people/dwmw2/mtd/cvs/mtd/mtd-jffs-HOWTO.txt">http://ftp.linux.org.uk/pub/people/dwmw2/mtd/cvs/mtd/mtd-jffs-HOWTO.txt</A>&nbsp;<BR>[4]&nbsp;Intel&nbsp;IQ80321&nbsp;Development&nbsp;Kit:&nbsp;<A HREF="http://www.intel.com/design/IIO/docs/">http://www.intel.com/design/IIO/docs/</A>&nbsp;<BR>dvtl_iop321.htm&nbsp;&nbsp;<BR>[5]&nbsp;ARM&nbsp;Linux:&nbsp;<A HREF="http://www.arm.linux.org.uk/">http://www.arm.linux.org.uk/</A>&nbsp;&nbsp;<BR>[6]&nbsp;BusyBox:&nbsp;<A HREF="http://www.busybox.net/">http://www.busybox.net/</A>&nbsp;<BR>[7]&nbsp;JFFS:&nbsp;<A HREF="http://developer.axis.com/software/jffs/">http://developer.axis.com/software/jffs/</A>&nbsp;&nbsp;<BR>[8]&nbsp;JFFS2:&nbsp;<A HREF="http://sources.redhat.com/jffs2/">http://sources.redhat.com/jffs2/</A>&nbsp;&nbsp;<BR>[9]&nbsp;MTD:&nbsp;<A HREF="http://www.linux-mtd.infradead.org/">http://www.linux-mtd.infradead.org/</A>&nbsp;&nbsp;<BR>[10]&nbsp;“一步一步的制作&nbsp;arm-linux&nbsp;交叉编译环境”,&nbsp;<BR><A HREF="http://embdev.gotdns.org/articles/toolchain.html">http://embdev.gotdns.org/articles/toolchain.html</A>&nbsp;<BR>[11]&nbsp;董晓明.LiPS详细设计说明书(Linux系统裁减指南).2003.6.&nbsp;<BR>[12]&nbsp;Wookey,&nbsp;Chris&nbsp;Rutter,&nbsp;Jeff&nbsp;Sutherland,&nbsp;and&nbsp;Paul&nbsp;Webb.&nbsp;The&nbsp;GNU&nbsp;Toolc&nbsp;<BR>hain&nbsp;for&nbsp;ARM&nbsp;targets&nbsp;HOWTO.&nbsp;<A HREF="http://www.aleph1.co.uk/armlinux/docs/toolch">http://www.aleph1.co.uk/armlinux/docs/toolch</A>&nbsp;<BR>ain/toolchHOWTO.pdf&nbsp;<BR>[13]&nbsp;&nbsp;<BR>  &nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>2&nbsp;交叉编译环境&nbsp;<BR>&nbsp;<BR>2.1&nbsp;概述&nbsp;<BR>  (参考资料[12])&nbsp;<BR>  The&nbsp;toolchain&nbsp;actually&nbsp;consists&nbsp;of&nbsp;a&nbsp;number&nbsp;of&nbsp;components.&nbsp;The&nbsp;main&nbsp;&nbsp;<BR>one&nbsp;is&nbsp;the&nbsp;<BR>  compiler&nbsp;itself&nbsp;gcc,&nbsp;which&nbsp;can&nbsp;be&nbsp;native&nbsp;to&nbsp;the&nbsp;host&nbsp;or&nbsp;a&nbsp;cross-comp&nbsp;<BR>iler.&nbsp;This&nbsp;is&nbsp;<BR>  supported&nbsp;by&nbsp;binutils,&nbsp;a&nbsp;set&nbsp;of&nbsp;tools&nbsp;for&nbsp;manipulating&nbsp;binaries.&nbsp;The&nbsp;<BR>se&nbsp;components&nbsp;are&nbsp;all&nbsp;<BR>  you&nbsp;need&nbsp;for&nbsp;compiling&nbsp;the&nbsp;kernel,&nbsp;but&nbsp;almost&nbsp;anything&nbsp;else&nbsp;you&nbsp;comp&nbsp;<BR>ile&nbsp;also&nbsp;needs&nbsp;the&nbsp;<BR>  C-library&nbsp;glibc.&nbsp;As&nbsp;you&nbsp;will&nbsp;realise&nbsp;if&nbsp;you&nbsp;think&nbsp;about&nbsp;it&nbsp;for&nbsp;a&nbsp;mom&nbsp;<BR>ent,&nbsp;compiling&nbsp;the&nbsp;<BR>  compiler&nbsp;poses&nbsp;a&nbsp;bootstrapping&nbsp;problem,&nbsp;which&nbsp;is&nbsp;the&nbsp;main&nbsp;reason&nbsp;why&nbsp;<BR>&nbsp;generating&nbsp;a&nbsp;<BR>  toolset&nbsp;is&nbsp;not&nbsp;a&nbsp;simple&nbsp;exercise.&nbsp;<BR>&nbsp;<BR>2.2&nbsp;准备&nbsp;<BR>2.2.1&nbsp;目录结构说明&nbsp;<BR>1&nbsp;<BR>2&nbsp;<BR>3&nbsp;<BR>描述&nbsp;<BR>/root/&nbsp;<BR>以root用户登录,HOME目录,也是当前目录&nbsp;<BR>arm/&nbsp;<BR>与此项工作有关的文件都放在这个目录下面&nbsp;<BR>arm-toolchain/&nbsp;<BR>在这里安装编译生成的ARM工具链(toolchain)&nbsp;<BR>boot/&nbsp;<BR>存放编译生成的内核映像文件&nbsp;<BR>同时把TFTP服务器的根设置在这里&nbsp;<BR>build/&nbsp;<BR>在这里编译,会生成许多临时文件和目标文件&nbsp;<BR>fakeroot/&nbsp;<BR>用于目标机远程NFS挂载的根文件系统&nbsp;<BR>src/&nbsp;<BR>存放软件包的源代码,包括Linux内核源代码&nbsp;<BR>tars/&nbsp;<BR>存放各个软件包的压缩包&nbsp;<BR>  &nbsp;<BR>  我们为建立交叉编译环境的过程写了一个Makefile(相当于实现批处理),下&nbsp;<BR>面是Makefile中的一些定义。&nbsp;<BR>  TOPDIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=/root/arm&nbsp;<BR>  PREFIX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=$(TOPDIR)/arm-toolchain&nbsp;<BR>  BUILDPATH&nbsp;&nbsp;&nbsp;=$(TOPDIR)/build&nbsp;<BR>  SRCPATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=$(TOPDIR)/src&nbsp;<BR>  TARPATH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=$(TOPDIR)/tars&nbsp;<BR>  KERNELPATH&nbsp;&nbsp;=$(SRCPATH)/linux&nbsp;<BR>2.2.2&nbsp;定义环境变量&nbsp;<BR>  在~/.bashrc文件中追加如下几行(注意:注销、重新登录后才能生效):&nbsp;<BR>  export&nbsp;TARGET=arm-linux&nbsp;<BR>  export&nbsp;PREFIX=/root/arm/arm-toolchain&nbsp;<BR>  export&nbsp;PATH=$PREFIX/bin:$PATH&nbsp;<BR>  或者直接在命令行给出定义。&nbsp;<BR>2.2.3&nbsp;选择内核版本&nbsp;<BR>  我们现在使用的Linux内核版本为linux-2.4.21-rmk1-ds0-dj9.这也是Intel官&nbsp;<BR>方网站上为IQ80321开发板提供下载的内核版本。本文档以该版本为例。&nbsp;<BR>  有关arm-linux和rmk补丁(Russell&nbsp;King维护)的更多信息(包括最新进展)&nbsp;<BR>请参考这个网站和邮件列表:&nbsp;<BR>  <A HREF="http://www.arm.linux.org.uk/">http://www.arm.linux.org.uk/</A>&nbsp;&nbsp;<BR>  linux-arm-<A HREF="mailto:kernel@lists.arm.linux.org.uk">kernel@lists.arm.linux.org.uk</A>&nbsp;<BR>  在决定你的项目使用哪个Linux内核版本的时候,一定要考虑该版本内核是否已&nbsp;<BR>经发布了对应的rmk和ds补丁。&nbsp;<BR>  In&nbsp;order&nbsp;to&nbsp;build&nbsp;the&nbsp;entire&nbsp;Linux&nbsp;kernel&nbsp;source&nbsp;with&nbsp;the&nbsp;supplied&nbsp;p&nbsp;<BR>atch,&nbsp;you&nbsp;must&nbsp;have&nbsp;the&nbsp;base&nbsp;kernel,&nbsp;the&nbsp;ARM&nbsp;Linux&nbsp;patch,&nbsp;the&nbsp;Montavista&nbsp;<BR>&nbsp;DS&nbsp;patch.&nbsp;The&nbsp;annotation&nbsp;of&nbsp;the&nbsp;filenaming&nbsp;as&nbsp;follows:&nbsp;patch-2.4.X-rmkY&nbsp;<BR>-dsZ-djV&nbsp;means&nbsp;you&nbsp;must&nbsp;have:&nbsp;&nbsp;<BR>  1.&nbsp;Linux-2.4.X&nbsp;kernel&nbsp;source&nbsp;<BR>  2.&nbsp;patch-2.4.X-rmkY&nbsp;to&nbsp;patch&nbsp;on&nbsp;top&nbsp;<BR>  3.&nbsp;patch-2.4.X-rmkY-dsZ&nbsp;to&nbsp;patch&nbsp;on&nbsp;top&nbsp;of&nbsp;#2&nbsp;<BR>  4.&nbsp;patch-2.4.X-rmkY-dsZ-djV&nbsp;to&nbsp;patch&nbsp;on&nbsp;top&nbsp;of&nbsp;#3&nbsp;<BR>  &nbsp;<BR>2.2.4&nbsp;下载源代码包&nbsp;<BR>项目&nbsp;<BR>URL&nbsp;<BR>linux&nbsp;内核&nbsp;<BR><A HREF="ftp://ftp.kernel.org/pub/linux/kernel/v2.4/">ftp://ftp.kernel.org/pub/linux/kernel/v2.4/</A>&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -