基于S3C2410嵌入式设备的U-Boot移植流程教程

发布者:EtherealBeauty最新更新时间:2023-01-05 来源: elecfans关键字:S3C2410  嵌入式设备  U-Boot 手机看文章 扫描二维码
随时随地手机看文章

S3C2410是三星公司针对嵌入式系统推出的高性价比微处理器,它是基于ARM9TDMI内核的16/32位RISC处理器,工作主频为200MHz。由于现有的Linux系统引入了设备文件的概念,读写串口可以像读写普通文件一样进行操作,非常方便。


一、Linux系统的安装

基于S3C2410嵌入式设备的U

安装过程首先出现欢迎对话框,如上图所示。Red Hat先后会询问用户使用何种语言、用户使用的键盘类型(默认选项为美式键盘)以及安装软件的位置(选择本地CD -ROM)等许多需用户选择的问题。


使用Disk Druid建立Linux文件系统然后通过PC机对开发板进行设置,并执行以下命令,从而对开发板进行内核及文件系统的烧写工作:

基于S3C2410嵌入式设备的U

此时,关闭开发板电源,接上LCD。重新启动开发板,LCD上将出现QT的定标程序,定标后就进入QT的接口。


二、U-Boot启动程序及流程

U-Boot是在PC- Boot的基础上进化而来的一个开源的嵌i入式Boot Loader。它主要完成了系统环境的初始化,将后期执行j代码复制到SDRAM空间,为Linux内核的运行提供条件。根据{其功能实现方式的不同可以分为两个阶段。可以通过修改配置应用到其他的开发板上。所以,选择U-Boot不仅能应用于S3C2410,而且能为以后在其他开发板上的研究提供基础。


本文选择最常见的版本U-Boot -1.1.6为例介绍U- Boot的启动和相关移植程序。

1.U-Boot运行前期阶段 ARM系列处理器在上电或复位时从物理地址Ox00000000处开始执行,此处也是第一片Flash所使用的存储空间的起始位置,而U-Boot就存放在Flash的最前端。U - Boot第一阶段由汇编语言实现,以达到短小精悍的目的,主要完成系统硬件环境的初始化,其工作流程如下图所示。

基于S3C2410嵌入式设备的U

U - Boot在这一步的启动过程中,需要初始化启动环境,然后完成对后续工作的准备,诸如串口、网口、Flash等硬件设备的初始化工作,将kernel映像和根文件系统映像从Flash上读到RAM空间中,同时调用已经下载好的内核。


2.U-Boot运行后期阶段在完成了启动环境初始化时,进入到后期启动阶段。此部分的代码用C语言来实现,以便于实现更复杂的功能和取得更好的代码可读性和可移植性。函数_start_armboot0是执行映像的入口点。


基于S3C2410嵌入式设备的U

(2)使用TFTP网络协议下载Linux操作系统:在加载程序U-Boot中包含TFTP网络下载文件方式,其下载速度比Kermit协议方式速度快几十倍,可大大节省文件下载时间,极大的简便了嵌入式程序的调试方法。

因为TFTP使用UDP,而UDP使用lP,lP还可以使用其它本地通信方法。因此一个TFTP包中会有以下几段:本地媒介头,lP头,数据报头,TFTP头,剩下的就是TFTP数据了。TFTP在lP头中不指定任何数据,但是它使用UDP中的源和目标端口以及包长度域。由TFTP使用的包标记(TID)在这里被用做端口,因此TID必须介于0—65,535之间。TFTP头中包括两上字节的操作码,这个码指出了包的类型,可以根据TFTP包格式进行必要的移植工作。


三、U-Boot的移植流程

不同的板极硬件配置要求进行U-Boot的移植工作,移植U-Boot的工作包括添加开发板硬件相关的文件、配置U- Boot,然后编译。U-Boot -1.1.4版本支持SMDK2410开发板,并且SMDK2410同样采用S3C2410芯片,因此选取SMDK2410作为移植参考,定义目标板需要添加的U-Boot:

1.在boarcl/目录下建立目标板目录 由于U- Boot中本身支持很多开发板和处理器,所以可以找到和处理器型号相同或相近的开发板,在此基础之上再进行相应的修改。此处选择smdk2410作为模板。

基于S3C2410嵌入式设备的U

2.创建S3C2410目录及文件,要对Makefile进行修改Mkdir board/S3C2410

基于S3C2410嵌入式设备的U

3.通过修改文件smdk2410.h来修改U-Boot软硬件配置增加PING命令功能

基于S3C2410嵌入式设备的U



4.修改2M的Flash通过查询相关数据手册中有关Flash的地址,并在对应的S3C2410.h文件中找到有关信息。在此要用到一些硬件的知识,最关键的是扇区的计算,由于在ARM中Flash是按扇区划分的,每个扇区的大小是64K,所以2M就需要32个扇区,但是由数据手册可知S0,S1,S2,S3扇区的大小分别为:16K,8K,8K,32K,所以要加上3个扇区才能得到正确的结果。

基于S3C2410嵌入式设备的U

四、结论

通过对U-Boot的启动流程的详细分析和制作,不仅对其有一个整体的了解,而且也可以依据本文进行制作。通过对U-Boot的重要参数的设置也使得其功能进一步增强。读者也可以仿效文中的步骤对其他型号的开发板进行制作,为以后的开发带来了方便。在制作过程中要注意的是接口参数的设置问题和越界问题。


关键字:S3C2410  嵌入式设备  U-Boot 引用地址:基于S3C2410嵌入式设备的U-Boot移植流程教程

上一篇:基于Linux的S3C2410串行通信设计
下一篇:基于S3C2410处理器和IEEE802.11b实现无线温度变送器的设计

推荐阅读最新更新时间:2024-11-21 01:32

S3C2410存储器管理单元
MMU,全称Memory Manage Unit, 中文名 存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(overlay)的片段。覆盖块0首先运行,结束时他将调用另一个覆盖块。虽然覆盖块的交换是由OS完成的,但是必须先由程序员把程序先进行分割,这是一个费时费力的工作,而且相当枯燥。人
[单片机]
<font color='red'>S3C2410</font>存储器管理单元
arm-linux-gcc4.4.3编译s3c2410平台linux内核
一、首先下载linux内核: linux-2.6.14.tar.bz2 下载地址: http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2 二、解压linux-2.6.14.tar.bz2: tar -jxvf linux-2.6.14.tar.bz2 三、配置Makefile文件: 1、打开源码根目录下的Makefile文件: gedit Makefile 修改Makefile文件: ARCH ?= arm CROSS_COMPILE ?= arm-linux- 2、查看目录结构: ls -l linux-2.6.14/arch/arm/ d
[单片机]
新版U-boot2012.04.01移植(二)(JZ2440-S3C2440)
1、分析u-boot启动过程 根据u-boot编译过程分析。 然后打开u-boot.lds文件:
[单片机]
新版U-boot2012.04.01<font color='red'>移植</font>(二)(JZ2440-S3C2440)
移植u-boot-2010.03问题 --- raise: Signal # 8 caught
再次这里给自己强调一下,网上其他解决这个问题的是基于u-boot其他版本,自己在试用了其他方法之后均未能解决这个问题,可能是由于代码不一样,因此需要解决这个问题时,改动的代码当然也不一样。这里先按照这位朋友的方法解决,日后如果有能力,再回来补充这篇文章。 方法是:找到u-boot-2010.03/cpu/arm1176/s3c64xx/下的time.c文件。 ulong get_timer_masked(void) { unsigned long long res = get_ticks(); //do_div (res, (timer_load_val / (100 * CONFIG_SYS_HZ))); r
[单片机]
U-Boot移植
1. 安装韦东山的虚拟版的ubuntu 9, 里面交叉编译啥的都弄好了, 直接用, 然后把workstation共享目录打开, 指向uboot的压缩包所在目录. 2. 在虚拟机上, 打开ssh, 通过ssh, 进/mnt/hgfs/ 把uboot压缩包解压了. 3. 编辑Makefile, 在smdk2400下面增加两行, 注意要好tab键 smdk2400_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2400 NULL s3c24x0 tx2440_config : unconfig @$(MKCONFIG) $(@:_conf
[单片机]
Linux操作系统在S3C2410开发板上的的移植过程
ARM9S3C2410微处理器与Linux的结合越来越紧密,逐渐在嵌入式领域得到广范的应用。目前,在便携式消费类电子产品、无线设备、汽车、网络、存储产品等都可以看到S3C2410与Linux相结合的身影。 S3C2410微处理器是一款由Samsung公司为手持终端设计的低价格、低功耗、高性能,基于ARM920T核的微处理器。它带有内存管理单元(MMU),采用0.18mm工艺和AMBA新型总线结构,主频可达203MHz。同时,它支持Thumb16位压缩指令集,从而能以较小的存储空间获得32位的系统性能。 在众多嵌入式操作系统中,Linux目前发展最快、应用最为广泛。性能优良、源码开放的Linux具有体积小、内核可裁减、网络功
[单片机]
Linux操作系统在<font color='red'>S3C2410</font>开发板上的的<font color='red'>移植</font>过程
Linux bootloader全程详解(ARM S3C2410)
写在前面:这篇文章已经写的很详细了。主要参考的就是正果过程,如果要是移植bootloader的话应该找一套现成的源码,至少我是这么认为的,虽然我还没有移植过。 网上关于Linux的BOOTLOADER文章不少了,但是大都是vivi,blob等比较庞大的程序,读起来不太方便,编译出的文件也比较大,而且更多的是面向开发用的引导代码,做成产品时还要裁减,这一定程度影响了开发速度,对初学者学习开销也比较大,在此分析一种简单的BOOTLOADER,是在三星公司提供的 S3C2410 BOOTLOADER上稍微修改后的结果,编译出来的文件大小不超过4k,希望对大家有所帮助. 1.几个重要的概念 COMPRESSED KERNEL and
[单片机]
基于嵌入式触摸屏驱动程序的研究与开
0 引言 Windows CE.NET是一个抢先式多任务并具有强大通信能力的Windows 32位嵌入式操作系统,是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用等非PC领域而从头设计的战略性操作系统产品。可以看出 Windows CE并不是Windows桌面操作系统的一部分或缩减版本。CE系统与其它操作系统一样,也提供了设备驱动程序,以驱动内部或者外围硬件设备。驱动程序将操作系统和设备链接起来,使得操作系统能够识别设备,并为应用程序提供相应的服务 。要想真正了解驱动程序必须结合一些驱动程序的实际开发,本文以基于ARM9核心硬件平台的触摸屏驱动程序为例,讲解如何在不同的硬件设备上实现Windows CE的驱动开发。
[单片机]
基于嵌入式触摸屏驱动程序的研究与开
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved