积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式硬件 >> MIPS
  相关分类: 相关文章 | ARM | 新产品 | 下载 | MIPS | X86 |
在MIPS开发板上建立Linux系统及开发环境
 
作者:李杰 贺占庄   来源:单片机及嵌入式系统应用    点击数:414   更新时间:2008-3-5
您可以添加到网摘 让更多人关注此文章:

    

介绍了利用已有的MIPS版Linux源文件包,编译可运行的Linux内核的方式;讨论了在主机上建立相关服务器,通过NFS服务从主机上下载内核,在无盘开发板上启动Linux的方法。

    关键词:MIPS NFS 启动Linux

    一、引言

    大多数基于MIPS处理器的平台上都没有提供软、硬盘接口,一般情况下,也没有在板载Flash里烧入可使用的操作系统。没有操作系统,用户的使用就会受到很多限制,应用程序的开发、调试过程就会变得相当复杂。因此,建立合适的操作系统及开发环境,可以方便用户,简化开发调试过程。本文以RedHat Linux 为例,说明在RM7000A处理器无盘开发板上建立Linux系统的方法。所用硬件设备:带有10/100Mb以太网接口和用于显示的串口的开发板、装有Redhat Linux 9.0的主机(Host PC)。

 

二、编译内核

l         准备工作   

编译前,需要有MIPS处理器版的Linux源文件包,简单的方法是从MIPS公司或者SGI公司等的FTP服务器上下载(ftp://ftp.mips.com/pub/linux  ftp://oss.sgi.com  ftp://ftp.linux-mips.org/linux/mips )。另外,由于所用主机是x86体系,要编译在MIPS处理器上运行的内核,需要有能在x86处理器上工作的交叉编译工具;为了使Linux启动后,可以在开发板上直接开发应用程序,还需要MIPS版的NFS根目录结构包,它包括了Linux运行需要的目录结构、配置文件、工具等等。同样,根目录结构包和工具包也可在上述网站的服务器上下载。下载根目录结构包和交叉编译工具时,要注意选择与开发板设置的数据格式(高序Big Endian或低序Little Endian)一致的版本。

        获得源文件包、根目录结构包文件后,将其解压至指定目录,如分别指定为:/tftpboot/tftpboot/mips,包内文件和子目录就全部展开在相应目录中;

对于rpm格式的工具包文件,可在终端窗口用命令行方式展开: 

rpm –ihv toolchain-mips-*.rpm

交叉编译工具自动安装到/usr/tools的目录下。进入/tftpboot/linux目录,打开Makefile文件,更改以下语句为:

        ARCH=mips

        CROSS_COMPILE=/usr/tools/bin/mips-linux-

l         配置工作

        接下来,是对编译能否顺利通过至关重要的配置过程。所谓配置,就是根据开发板具体情况,只选择必需选项,使重编译的内核既提供所需要的功能,又占据最小存储空间。由于Linux系统各功能模块之间存在不同程度的依赖关系,配置过程中有可能会破坏这些关联;因此配置完成后不一定能通过关联检测,可能需要反复地进行配置取舍。

        配置过程需要注意:

1.  数据格式与开发板的设置和交叉编译工具一致,才能生成正确的内核;

2.  设置正确的处理器,以及相近的开发板类型;

3.  需提供对标准串口的支持和通过串口显示的功能;

4.  由于编译内核的主机不是MIPS处理器,所以一定要设置CROSSCOMPILE项;

5.  因为要通过网络下载内核来启动,对PCI设备、网络协议、网络设备的支持必不可少,此外,在网络文件系统中还要选择NFS_FSROOT_NFS选项;

以上为配置基本选项,其余功能可根据开发板具体情况取舍。配置步骤如下:  

cd /tftpboot/linux  -- 进入目录/tftpboot/linux

make config        -- 进行行命令配置

make dep           -- 关联检测

l         编译内核

如果无出错提示,表明配置正确,可以编译内核:

          make boot

编译完成后在/tftpboot/linux和/tftpboot/linux/arch/mips/boot中都会出现不同格式的内核映像文件vmlinux、及System.map文件。

三、设置主机服务

1.  设置TFTP服务器

RedHat Linux安装CD3中找到tftp文件包:tftp-0.32-4.i386.rpm,在终端输入:  rpm –ihv tftp-0.32-4.i386.rpm,系统自动安装好tftp服务器;

cd /etc/xinetd.d    -- 进入目录/etc/xinetd.d

vi tftp             --只有在安装了tftp服务后,才会出现tftp文件

修改其中disable和server_args项,其余可保持不变。以下为一个完整的tftp文件:

Service tftp

{

socket_type  = dgram

protocol     = udp

wait         = yes

user         = root

server       =/usr/sbin/in.tftpd

server_args  = -s /tftpboot/linux   -- 根据需要设置tftp服务默认目录

disable      = no                   -- 默认为yes,应修改成no

per_source   = 11

cps          = 100 2

flags        = IPv4

        }      

2.  设置DHCP服务器

RedHat Linux安装CD2中找到dhcp文件包:dhcp-3.0pl1-23.i386.rpm,在终端输入:  rpm –ihv dhcp-3.0pl1-23.i386.rpm,系统自动安装好dhcp服务器;

 cd /etc                -- 进入目录/etc

vi dhcpd.conf          -- 建立文件dhcpd.conf

dhcpd.conf文件中写入内容如下:

ddns-update-style interim;

ignore client-updates;

subnet 192.168.0.0 netmask 255.255.255.0 {

      option routers         192.168.0.10;

      option subnet-mask     255.255.255.0;

      option domain-name     “LocalHost”;

option domain-name-server  192.168.0.10;

option time-offset       18000;

range dynamic-bootp    192.168.0.1 192.168.0.15;

default-lease-time     21600;

max-lease-time         43200;

}

其中,192.168.0.10为主机ip地址;192.168.0.1~192.168.0.15为dhcp服务可动态分配的ip有效地址范围;

3.  设置NFS服务器

cd /etc        -- 进入目录/etc

vi exports     -- 打开exports文件

    添加语句:/tftpboot/mips  *(rw,sync,no_root_squash),

此语句设置主机上的目录/tftpboot/mips为客户机通过NFS服务可访问的根目录,并且任何客户机的访问都被视为是主机root身份,对/tftpboot/mips目录具有读写功能。这样设置是为了方便以后在开发板上的开发与调试工作。

4.  启动服务

RedHat Linux9.0程序启动栏里,系统设置—〉服务器设置—〉服务,选上dhcpd、tftp、xinetd、nfs、portmap服务选项,点击开始或者重新开始来启动dhcp、tftp、nfs服务。其中tftp服务要通过启动xinetd才能工作。

四、通过NFS服务在开发板上启动Linux系统

1.设置minicom

minicom是一个RedHat Linux9.0自带的通信终端程序,通过minicom可以设置、监视串口工作状态,接收、显示串口收到的信息,并且在主机和开发板之间传递数据和控制指令,从而实现通过主机上调试开发板的目的。以下的操作都是通过主机键盘在minicom窗口里进行的。

在主机上打开一个终端窗口,启动minicom,设置主机串口:波特率9600、数据位8位、停止位1位、奇偶校验位无、数据流控制无;保存设置后,重新启动minicom。这时minicom处于工作状态;

2.  开发板加电

开发板上有一个512KB ROM,烧有bootloarder – pmon2000,加电后自动完成处理器、缓存、内存控制器、网络控制器等初始化工作;同时pmon2000拥有少量行命令集,用于启动后对内存的读写校验、板载Flash的擦写、ip设置、串口设置以及跟主机之间进行数据通信,包括上传、下传文件,接收主机下达指令等等。

开发板加电后,minicom窗口显示初始化信息;启动完成,显示pmon>;

3.启动Linux

加载内核:pmon>boot 192.168.0.10:vmlinux

pmon2000内部命令boot通过网络,将主机上位于NFS根目录/tftpboot/mips下可执行的vmlinux映像文件,加载到内存,显示入口地址(Entry point);

启动Linux:pmon>g ./root=/dev/nfs nfsroot=/tftpboot/mips ip=dhcp

g为执行载入文件的命令;其后的参数,是传递给内核的有关根目录的信息,通过NFS访问主机的客户机(开发板),其ip由主机dhcp服务动态分配。pmon2000将内核拷贝到内存空间,随后将控制权交给内核,由其完成系统的启动。在启动完成登录行出现时,输入:root,即可进入运行于开发板上的Linux系统。由于操作系统是在内存里运行的,断电后,要重复步骤2、3,重新载入内核后才能再次启动Linux。

4.应用举例

前面设置了客户机具有对根目录/tftpboot/mips的完全控制功能,因此可以在客户机上(minicom窗口中)直接编写、编译、调试程序。这时所使用的编译调试工具是安装在主机/tftpboot/mips/usr/bin目录里,根目录结构包自带的MIPS版GNU gcc、g++、gdb、ld等等;程序编译完成可直接运行,不需要在主机用交叉编译工具编译后,再切换到客户机下载运行,这样提高了开发效率。

在开发板上(minicom窗口),

       cd /home

       mkdir test   -- 在/home目录里建立一个test子目录,实际上是建在主机的/tftpboot/mips/home下

       cd test

       vi hello.c              -- 用vi编写一个名为hello的c语言程序

       gcc –o hello hello.c   -- 编译产生可执行文件hello.o

       ./hello                 -- 执行该文件

至此,可以看见程序运行结果。

五、结束语

        文中所编译出来的内核文件vmlinux占空间小(1.9MB),功能有限,需要与主机配合才能发挥作用。在实际的应用中,有可能要加入更多的功能、服务,比如:http服务、ftp服务、mail服务、对GUI的支持等等,内核的占据空间必然增大,因此,设计时在功能和资源之间就要有所取舍。另外,系统实际应用中不一定带有网络,可能是一个独立的系统,此时内核必须放在系统自身的存储单元里(DOC、IDE硬盘、CF卡等)。因此,有必要进一步研究能够直接从存储单元启动操作系统的技术。




相关文章
· MIPS科技推出采用新的集成元件套件的突破性Linux开发工...[157]
· MIPS32 M4K处理器内核SRAM接口应用[138]
· MIPS科技的硅验证GPS射频调谐器IP为开发人员降低新一代...[191]
· MIPS 科技宣布与 PMC-Sierra 就多个 MIPS 内核达成新的...[107]
· MIPS32™ 74K™ 内核为 Broadcom 新型单芯片...[124]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
安富利助中国中小型制造企业摆脱购买假
富士通微电子与北京航空航天大学共建M
西安市民发明用牙齿听声音的传导器
日本制成超微结构 有望大幅
中国嵌入式系统产业联盟嵌入式技术论坛
ARM联手IBM等三家公司开发32n
Hitachi Elect
中国芯片供需缺口达七成
西班牙研发出视觉鼠标 眨眼
首条OLED生产线昆山投产 
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
99SE请教个问题...
EDA工具集合(2)...
EDA工具集合(1)...
嵌入式开发液晶显示...
比尔盖茨给年轻人的10句警言...
各种单片机的总结(优缺点)...
[转帖]AVR的主要特性...
[转帖]AVR芯片的ISP全攻...
写给迷茫中的嵌入式新手...
Arm/DSP/FPGA的比较...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网