欢迎来到天天文库
浏览记录
ID:39587274
大小:267.85 KB
页数:19页
时间:2019-07-06
《嵌入式开发教程之基于S3C2410A的嵌入式系统的U-Boot移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式开发教程之基于S3C2410A的嵌入式系统的U-Boot移植引言1嵌入式系统的软件组成1.1系统的软件组成1.2U-Boot分析2U-Boot的启动分析3U-Boot的移植方法3.1修改cpu/arm920t/start.S文件3.2修改board/smdk2410目录下文件3.3在include文件中设置NANDFLASH硬件参数3.4编译与运行4结语arm嵌入式处理器已被广泛应用于消费电子产品、无线通信、网络通信和工业控制等领域。其中,arm9的芯片更是以其低价格、低功耗、高性能在手持
2、设备中占据着重要市场。在嵌入式操作系统中,Linux,Vxworks,WinCE三足鼎立,其中Linux由于其开源性、稳定性、安全性、可裁减性更是一支独放。在嵌入式系统中,如何实现在arm9平台下Linux操作系统的引导工作是嵌入式技术开发的重要环节。引言1.1系统的软件组成嵌入式的软件系统主要由Bootloader、操作系统、文件系统、应用程序等组成。其中,Bootloader是介于硬件和操作系统之间的一层,其作用就好像PC机中的BIOS。系统加电运行后,由系统自动加载。通过这段程序,可以初始
3、化硬件设备,建立内存空间的映射图,从而将系统的硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好环境。对于一个嵌入式系统,通常BootLoader是依赖于硬件而实现的。对于不同类型的嵌入式芯片、不同的操作系统和外围接口都需要重新移植、修改和编译Bootloader。1嵌入式系统的软件组成嵌入式Linux系统中常用的Bootloader引导程序有U-Boot,redboot,blob和vivi等,其中U-Boot遵循GPL条款的开放源码项目,功能最为强大;U-Boot对PowerPC系列
4、处理器支持最丰富,同时还支持MIPS,x86,arm,Nios,XScale等诸多常用系列的处理器;U-Boot引导程序分为Stage1和Stage2两大部分,Stage1中主要包括设备初始化、中断设置、时钟设置和存储器初始化等工作,并且采用汇编语言实现,而一些通用功能大多采用C语言实现,放在Stage2中。1.2嵌入式开发教程之U-Boot分析Stage1的代码在CPU/arm920t/start.s中定义,它包括从系统上电后在0x00000000地址开始执行的部分。这部分代码系统启动后,从N
5、ANDFLASH自动加载到SDRAM中,它包括对S3C2410A中寄存器的初始化和将U-Boot的Stage2代码从FLASH拷贝到SDRAM。Stage2的起始地址是在Stage1代码中指定的。被复制到SDRAM后,就从第一阶段跳到这个入口地址,开始执行剩余部分代码。第二阶段主要是对内存的分配,对NANDFLASH以及对外围设备的初始化,其代码在lib-arm/board.C中。启动的流程分析如图1所示。2嵌入式开发教程之U-Boot的启动分析嵌入式开发教程(1)跳转到C语言程序之后,首先定义
6、初始化函数表,程序在lib-arm/board.e中,如下所示:嵌入式开发教程(2)初始化FLASH设备和显示FLASH设备信息;(3)初始化系统内存分配函数;(4)如果目标系统拥有NAND设备,则初始化NAND设备;(5)初始化显示设备;(6)初始化网络设备,填写IP地址、MAC地址等信息;(7)开启中断处理;(8)进入命令循环,接收用户从串口的命令输入。嵌入式开发教程本文选用交叉编译环境arm-linux-gcc-2.95.3,选用U-Boot-1.1.4版本作为移植平台。为了使U-Boot
7、支持新的开发板,一种简便的做法是在U-Boot已经支持的开发板中选择一种与目标板接近的,在其基础上进行修改。这里选用的是smdk2410的配置。3嵌入式开发教程之U-Boot的移植方法Start.s是采用汇编语言编写的U-Boot程序入口代码,完成对底层硬件的初始化,其中有一个很重要的功能是从NANDFLASH中把Stage2阶段的代码复制到SDRAM中。在此阶段,涉及到对NANDFLASH的读操作,在U-Boot中,没有对NANDFLASH读操作的驱动,采用以下方法实现:3.1修改cpu/ar
8、m920t/start.S文件嵌入式开发教程通过调用board/smdk2410/nand_read.C中的nand_read_11函数将Stage2阶段的代码复制到ram中。(1)增加对NANDFLASH的读驱动nand_read.c3.2修改board/smdk2410目录下文件(2)在smdk2410.C文件中添加对NANDFLASH初始化的程序在此主要是对主板的GPIO的一些设置,并加上对NANDFLASH初始化程序。嵌入式开发教程嵌入式开发教程(3)在该目录下的Makefile文件中添
此文档下载收益归作者所有