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

发布时间:2023-01-05  

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的重要参数的设置也使得其功能进一步增强。读者也可以仿效文中的步骤对其他型号的开发板进行制作,为以后的开发带来了方便。在制作过程中要注意的是接口参数的设置问题和越界问题。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    stm32必须要移植系统吗;STM32是意法半导体(STMicroelectronics)推出的一系列32位ARM Cortex-M微控制器(MCU),其采用了先进的嵌入式技术,广泛......
    UCOS2_STM32移植详细过程 (一);Ⅰ、概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台: 系统平台:µC/OS-II(最新......
    设备驱动程序的修改[6]。 (3)文件系统移植。用nfs作为根文件系统。 (4)应用程序设计。通过Qt/Embeded设计开发用户图形界面。 嵌入式移动无线PDA终端......
    的风力发电监控系统的截图。 5 结束语 本文根据一个特定的目标平台,介绍了如何构建基于Linux 2.6.16的嵌入式开发平台,介绍了移植的主要技术和整个流程,并在Qt/Embedd下开......
    stm32f407 easyflash移植过程记录;EasyFlash是一款开源的轻量级嵌入式Flash存储器库,非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源......
    基于STM32平台的μC/OS-II上的μC/GUI移植过程解析;μC/GUI是一种专为嵌入式应用设计的通用图形接口软件。本文详细介绍了μC/GUI的结构框架和基于STM32平台的μC/OS-II......
    64位处理器的可移植嵌入式实时操作系统。由于其源代码是公开的,因而有越来越多的设计人员开始关注ECOS操作系统。ECOS最大的特点是模块化,内核可配置。最小版本的ECOS只有几百字节,非常适合小型嵌入式......
    基于S3C2410处理器对Windows CE 5.0操作系统实现BSP移植;1、引言 在当今后PC时代,嵌入式系统应用得越来越广泛,嵌入式产品充斥着许多领域,日常生活的手机,MP4,PDA等都属于典型的嵌入式......
    能稳定地运行在开发板上。U-Boot引导程序是嵌入式Linux系统软件开发中的一个重要环节。在此通过分析U-Boot的代码结构和启动过程,并针对开发板系统的硬件资源,通过分析与调试,实现了U-Boot的移植......
    LPC2119简介 μC/OS-II在LPC2119上的移植;本文在分析实时嵌入式系统mC/OS-II和LPC2119芯片的基础上,对mC/OS-II向处理器上移植......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>