PowerPC平台Linux的移植(一)
PowerPC是早期Motorola和IBM联合为Apple的MAC机开发的CPU芯片,商标权同时属于IBM和Motorola,并成为他们的主导成品.IBM主要的PowerPC产品有PowerPC604s(深蓝内部的CPU), PowerPC750,PowerPCG3(1.1GHz).Motorola主要有MC和MPC系列.尽管他们产品不一样,但都采用PowerPC的内核.这些产品大都用在嵌入式系统中.我们这里要介绍的,主要是针对IBM在xilinx平台上推出的PowerPC嵌入式内核。本文所写的内容,基本上都是用于XUP大学计划开发板的,但是其中很多步骤都是通用的,你完全可以在Xilinx ML-403开发板或者其他相应板子上参考这些步骤,它们之间最大的区别就是创建SystemACE时的命令行不同,在相应的部分会具体讲解。应该说不管什么平台,整个流程都遵从于:Kernel preparaTIon —》 isntall BSP —》 Build hardware platform —》 Memory test —》 Build kernel image —》 Download 本文假设读者对linux环境下ISE,EDK等工具的操作已经熟悉,并对在XUP开发板上定制基本硬件系统已经熟悉,因此不再详细涉及这方面的问题。本文作者直接使用linux作为开发环境,因此文章中也不会涉及交叉编译环境的创建,如果你是windows用户,请自行参考网上有关cygwin的文章;如果你所使用的操作系统是linux,但对开发环境的建立不熟悉,可以参考我之前写的linux下eda工具安装这篇文章;如果你对硬件系统的定制还不算熟悉,请将问题针对到某一个模块,然后留言询问。整个文章比较长,从目前已经写了的内容来看,可能要分三个部分发布。这里是第一部分。 基本系统信息软件:ISE和EDK都是9.1,没有sp,操作系统是ubuntu 7.04;硬件:XUP开发板,usb下载线;基本系统组成:300MHz PPCopb_sysaceopb_ethernet (无DMA)DDR memory controlleropb_uart_16550plb_bram_if_cntrl(bram选择最大容量)所有部件都要有中断支持。按照上面的基本要求把系统构建起来,OS先选择standalone,跑一个基本程序看一看。只有确认基本系统正常之后,才可以知道以后移植系统时遇到的毛病是否是硬件原因。 在EDK中创建BSP首先,打开软件平台设置的选项,按照下列步骤执行:1. 将PPC_405_0的OS设置为linux_mvl31,我这里的版本是1.01.c2. 进入Library/OS选项,其中,MEM_SIZE设置成你所用平台上内存的容量,比如是256MB就设置成0&TImes;10000000,依此类推。 PLB_CLOCK_FREQ_HZ是你PLB总线的频率,XUP是100MHz,也就是100000000,其他类型开发板自行修改。 TARGET_DIR是你用于存放BSP的路径,注意,路径千万不能有空格。3. 添加硬件,在connected_periphs里面,不过一般点进去之后就都已经帮你自动添加好了。4. 执行libgen。如果一切顺利,就可以生成相应的bsp了。如果在这个过程中出现了什么问题,都可以去EDK安装目录下的sw/ThirdParty/bsp/linux_mvl31_v1_00_a/data/目录去看看相应的tcl文件,它们是用来实际执行BSP操作的命令。 到这里,你就已经有了可工作的bit流文件以及为Linux准备的BSP文件了。但有趣的是,我发现BSP的作用很小,所有edk9.1生成的文件,你所需要的可能就只有xparameters.h 和 xparameters_ml403.h真正有用,其它文件作用很少,如果你下载的Linux源代码是montavista的东西,甚至连这两个文件都不用了。当然,如果使用的电路板是自定制的,像xparameters_ml403.h就会有不同的macro定义,因此这两个是一定要覆盖默认的内核目录下的同名文件的。出于保险,最后还是使用上这个BSP就行了。创建用于ppc的交叉编译环境通常,程序是在一台计算机上编译,然后再分布到将要使用的其他计算机上。当主机系统(运行编译器的系统)和目标系统(产生的程序将在其上运行的系统)不兼容时,该过程就叫做交叉编译。建立一个交叉编译工具链是一个相当复杂的过程,如果你不想自己经历复杂的编译过程,网上有一些编译好的可用的交叉编译工具链可以下载。在这里,我们直接通过现成的脚本来建立ppc的交叉编译环境,如果你对自己编译建立这个环境感兴趣,可以自行参考文章如何为嵌入式开发建立交叉编译环境。 考虑到绝大多数人使用的都是x86电脑,因此,建立适宜于ppc的交叉编译环境就是必要的。首先,到这里来下载crosstoll的安装包。下载完后解压缩,进入文件夹,你就能看见很多类似于demo-arch.sh这种形式的脚本。每一种arch,对应的自然就是一种硬件平台,而我们这里要使用的,就是demo-powerpc-405.sh。如果你对这套工具感兴趣,可以参阅其 使用说明。这
- PowerPC平台Linux的移植(二)(02-11)
- PowerPC平台Linux的移植(三)(02-11)
- 工控机在IC卡加油工程中的应用(05-13)
- 联网汽车为什么选择Linux开源平台?(07-10)
- 多网络和Linux代理的Android无线远程控制系统(02-02)
- 基于嵌入式Linux的家居监控系统设计(02-22)