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