mips32 cpu linux,基于MIPS32平台的Linux操作系统移植

引言

目前,Linux作为仅次于微软Windows的操作系统已经在PC和嵌入式领域得到了广泛的应用,尤其是在嵌入式开发领域,由于Linux操作系统具有成本低,可靠性高,源码方法等显著的优点,已经成为受众多嵌入式开发者青睐的操作系统之一。目前,Linux操作系统所支持的包括X86、ARM、MIPS、MIPS64、Sun SPARC、POWER PC、Motorola 68K、IBM S/390、Alpha、IA64、cris、parisc、sh等主要的体系结构。本文以实际项目中一个MIPS32架构的CPU和板级系统为例,阐述了如何将Linux操作系统移植到目标平台上。

1 目标平台概述

本文所讨论的开发平台采用的CPU是同济大学微电子中心自主开发的BC320处理器,采用MIPS 4KC的体系结构,带MMU、无浮点协处理器、标准5段流水线,指令及数据Cache的大小各为4KB,寻址空间为4GB,其中0x00000000-0x7fffffff为用户空间,0x80000000-0xffffffff为核心空间,板级系统采用了PMC的PM8172芯片组,支持最高128MB的SDRAM,BOOT ROM的地址空间是0x1fc00000-0x1fffffff。

2 Linux交叉编译环境的建立及内核配置和编译

在进行实际的Linux操作系统移植之前,需要在宿主机上建立图1所示的MIPS的交叉编译环境,以便能在普通PC机上通过交叉编译工具来调试运行在目标开发板上的程序。

       建立MIPS交叉编译环境的主要工具有binutils、GCC、glibc以及作为调试器的gdb等,其中binutils为二进制文件的处理工具,它主要包括一些辅助开发工具,例如:readelf可显示elf文件信息及段信息;nm可列出程序的符号表;strip将不必要的代码去掉以减小可执行文件,objdump可用来显示返汇编代码等,GCC是GNU提供的支持多种输入高级语言与多种输出机器码的编译器,是Linux操作系统的配套编译器,支持Linux所采用的扩展C语言。glibc是连接和运行库,由于此链接和运行库须运行在目标开发板上,所以必须用先前建立的交叉编译器对其进行编译,如图内核大小要求较为苛刻。还可以使用uclibc等其他链接和运行库作为glibc的替代品,此外,若不是从硬盘启动,则还须为Linux制作ramdisk。在ramdisk上,除了要安放/dev(放置Linux操作系统所需要的设备文件)、/etc(放置Linux系统配置文件)、/lib(放置交叉编译后生成的库文件)等目录及其下的文件外,还需要在/bin和/sbin下放置各种系统必需的命令程序,如shell、init、vi等,为此需要busybox或者tinylogin等专为Linux操作系统提供的标准工具程序。凡此种种,都可以在GNU旗下的网站下载并自由修改其源代码。917aa5fd2d5480cfde289b59f82b6a6d.png

由于Linux操作系统的内核源代码支持各种不同的体系结构和不同的应用需要,所以在使用交叉译码器编译前还需要进行内核的配置工作,包括选择处理器的体系结构、文件系统的种类、板级支持,对设备驱动的支持以及是否使用ramdisk等。配置工具包括make config、make menuconfig、make xconfig,推荐使用操作界面更为良好的make menuconfig及make xconfig。在内核配置工作完成后即可进行内核编译工作,Linux源代码提供的强大的makefile功能,使得复杂的编译过程操作起来并不困难。

关于Linux交叉编译环境的建立及内核配置和编译的详细流程,在《Building Embedded Linux Systems》(Karim Yaghmour著)内有详细的论述,本文为此不再赘述。

3 Linux移植中实际指令集小于标准MIPS指令集的问题

&nbsp

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值