网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 系统管理 > 内核技术 > 基于S3C2410处理器目标板的Linux移植  

基于S3C2410处理器目标板的Linux移植

2006-10-08  作者:网管整理  来源:bitsCN.com  点评 投稿 收藏

本文描述了将Linux移植到基于S3C2410处理器目标板上的方法与过程。介绍了目标平台和Linux,并说明了如何搭建移植环境,着重介绍了Bootloader的架构和功能以及Linux内核的移植。结果证明该方法是可行的。移植后Linux在嵌入式系统中运行良好。 网管下载dl.bitscn.com

关键词 :嵌入式系统 ;移植 ;Linux内核 ;S3C2410处理器

网管联盟bitsCN@com

引言 网管bitscn_com

嵌人式系统就是以应用为中心、以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。ARM嵌人式芯片是一种高性能、低功耗的RISC芯片。它由英国ARM公司设计,世界上几乎所有的主要半导体生产商都生产基于ARM体系机构的通用芯片,或在其专用芯片中应用相关ARM技术。在2001年基于ARM内核的处理器占市场份额的75%,成为业界的龙头。

中国网管联盟bitsCN.com

Linux是免费发行的、快速高效的操作系统 ,Linux的出现在计算机世界引发了一场革命。Linux操作系统以代码开放、功能强大又易于移植成为嵌入式操作新兴力量。嵌人式Linux是按照嵌人式操作系统的要求设计的一种小型操作系统,由一个内核以及一些根据需要进行定制的系统模块组成。其内核很小 ,一般只有几百kb,即使加上其他必要的模块和应用程序,所需的存储空间也很小。它非常适合于移植到嵌入式系统中去 ,同时它具有多任务多进程的系统特征 ,有些还具有实时特征。

中国网管联盟bitsCN.com

1 目标平台介绍 网管bitscn_com

文中使用的目标平台S3C2410是SAMSUNG公司使用920T处理器内核开发的一款嵌入式处理器。S3C2410是Samsung公司专门为PDA、Intenet设备和手持设备等专门开发的微处理器。该芯片还包含有16kB一体化的Cache/MMU,这一特性使开发人员能够将Linux和VXwork移植到基于该处理器的目标系统中。该目标板的系统资源如下 :

中国网管论坛bbs.bitsCN.com

(1)CPU:S3C2410微处理器,工作频率为200MHz。 网管下载dl.bitscn.com

(2)Flash:16MB。 中国网管论坛bbs.bitsCN.com

(3)SDRAM:64MB SDRAM。

中国网管联盟bitsCN.com

(4)UART:RS-232串行接口。 中国网管联盟bitsCN.com

(5)其他 :14针ARM JTAG接口等。

网管联盟bitsCN@com

2 交叉编译环境的建立 网管联盟bitsCN@com

基于Linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口、并口或以太网接口建立连接关系。单独拿出一台PC机,在该PC上安装桌面的Linux操作系统(如RedHatLinux9.0),可以采用默认的安装选项(注意要包含FTP服务),这台PC作为Linux服务器,除管理员以外,一般不直接让其他人去操作。

网管联盟bitsCN@com

将该Linux服务器接入局域网,并新建一些合法用户,以便其他的PC机(在此将其称为工作站)的合法用户能访问到Linux服务器。而其他的PC机(工作站)仍然使用Windows操作系统。

网管bitscn_com

需要的软件工具包括 :

网管u家u.bitsCN.com

(1)ftp客户端程序。

网管u家u.bitsCN.com

(2)Telnet工具。

网管u家u.bitscn@com

(3)移植到某一特定ARM平台的Linux操作系统内核源码。 网管u家u.bitsCN.com

(4)GNU编译工具,可由相关网站下载。

网管网www.bitscn.com

在某工作站PC上安装ftp客户端程序和Telnet工具 ,安装完毕后应该可以在该工站PC和Linux服务器之间进行文件的传输,并在工作站PC可以通过Telnet登陆到Linux服务器(可能需要将Linux服务器 的防火墙服务关闭才能完成)。 网管bitscn_com

Linux服务器的安装:将工作站PC上的Linux操作系统内核源码压缩包和GNU编译工具通过ftp传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作站PC使用Telnet工具完成,而不需要在Linux服务器上进行。Linux操作系统内核的编译一般有一个比较固定的步骤,会根据MakeFile文件的不同而略有差异,可参考相关文档,编译的工作在工作站PC使用Telnet工具完成。按固定的步骤编译内核完成以后,会在相应目录生成可执行的二进制文件,通过ftp将该可执行的二进制文件传回工作站PC,然后通过ADS或SDT下的烧写工具写入开发板的Flash即可。 网管网www_bitscn_com

  网管网www_bitscn_com

3 Bootloader的架构和功能

网管联盟bitsCN@com

Bootloader引导程序是嵌入式开发很重要的组成部分。它是嵌入式系统上电后执行的第一个程序,并由它最终将操作系统启动起来并将控制权交给操作系统。Bootloader引导程序最基本的功能是对硬件系统的初始化和内核启动参数设置并启动内核。Bootloader的主要功能有: 网管联盟bitsCN@com

(1)初始化CPU 的主频、SDRAM、中断、串口等硬件;

网管网www_bitscn_com

(2)启动Linux内核并提供一个RAMDISK;

网管网www.bitscn.com

(3)通过串口下载内核或RAMDISK到目标板上; 网管联盟bitsCN_com

(4)将修改过的内核或RAMDISK写入到Flash内; 中国网管论坛bbs.bitsCN.com

(5)为用户提供一个命令接口。 网管bitscn_com

在嵌入式系统开发过程中,Bootloader还与主机通信,不断检测从主机传来的控制信息和数据信息,完成相应的操作。 网管网www.bitscn.com

Linux运行在保护模式下,但是当机器启动复位的时候却处于实模式下。所以写Bootloader的工作也是在实模式之下的。 中国网管联盟bitsCN.com

Botloader的实现除了依赖于CPU的体系结构,还依赖于目标板的设置,本系统的Bootloader引导程序分为stagel和stage2两个阶段。依赖于CPU的体系机构的代码 ,比如设备初始化等,放在stagel中,采用ARM汇编语言来实现,这样可以达到短小精悍的目的。stage2用C语言来实现,可以实现复杂的功能,同时代码具有更好的可读性和可移植性。 网管网www_bitscn_com

●Bootloader的stage1 网管u家u.bitscn@com

stage1是Bootloader一开始就执行的操作,其目的是为了stage2的执行以及随后的内核的执行,设置好一些基本的硬件环境。 中国网管论坛bbs.bitsCN.com

包括以下步骤 : 网管u家u.bitsCN.com

①屏蔽所有的中断 。为中断提供服务的通常是操作系统,因此在执行Bootloader的过程中可以不响应任何中断。中断屏蔽通过写CPU的中断屏蔽寄存器来完成。

网管联盟bitsCN_com

②设置CPU的时钟频率和速度。

网管下载dl.bitscn.com

③初始化RAM设置系统的内存控制器的功能寄存器和各内存库控制寄存器等。 网管论坛bbs_bitsCN_com

④为加载stage2准备RAM空间。

网管网www.bitscn.com

⑤拷贝stage2到RAM中。 网管u家u.bitscn@com

⑥跳转到stage2的入口点。

网管联盟bitsCN@com

●Bootloader的stage2 中国网管联盟bitsCN.com

stage2的主要的功能是通过串口下载Linux内核到目标板上。 网管下载dl.bitscn.com

包括以下几个步骤: 中国网管联盟bitsCN.com

①初始化本阶段要使用到的硬件设备。这通常包括:初始化至少一个串口,以便和终端用户进行I/O输出信息;初始化计时器等。 网管网www.bitscn.com

②检测系统的内存映射。所谓内存映射就是指在整个4GB物理地址空间中有哪些地址范围被分配用来寻址系统的RAM单元。

网管下载dl.bitscn.com

③加载内核映像和根文件系统从Flash读入到Rom中。这里包括两个方面:a.内核映像所占用的内存范围;b.根文件系统所占用的内存范围。在规划内存占用的布局时,主要考虑基地址和映像的大小两个方面。 中国网管联盟bitsCN.com

④设置内核的启动参数。 网管网www_bitscn_com

⑤调用内核。Bootloader调用Linux内核的方法是直接跳转到内核的第一条指令处。 网管bitscn_com


TAGs   移植   目标   处理器   基于   Linux   内核   系统   操作系统   PC      
 上一篇:使用异步 I/O 大大提高应用程序的性能   下一篇:使用kgdb调试linux内核及内核模块
基于S3C2410处理器目标板的Linux移植 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: