APP下载

基于MPC8548E的固件设计

2012-09-19崔迎炜

电子设计工程 2012年21期
关键词:设计

贾 亮, 岳 潇, 崔迎炜

(1.沈阳航空航天大学 电子信息工程学院,辽宁 沈阳 110136;2.北京方天长久科技有限公司 北京 100084)

U-Boot(Universal Boot Loader)是德国 DENX 小组开发的开放源码项目,它支持多种CPU体系结构的开发板,并且支持多种嵌入式操作系统内核,U-Boot已经成为功能最多、灵活性最强的开放源码BootLoader。作为一种通用的Boot Loader,U-Boot可以非常方便地移植到其他硬件平台上[1-2]。文中是基于MPC8548E的嵌入式目标板(即FTC7110)和UBoot源码资源来进行设计的,分析了U-Boot的目录结构和启动流程,同时对U-Boot源码设计以及设备自检程序的设计也做了相关的介绍,最后讲解如何通过设置环境变量来引导内核的启动。

1 开发板的硬件配置

FTC7110板卡基于mpc8548e作为处理器,板上资源有2个 网 口 、Nor Flash、Nand Flash、FPGA、CPLD、PHY 芯 片BCM5482s、DDR2、SRIO 交换机、PCI桥片等。 图 1是本次设计的嵌入式目标板卡FTC7110的主要硬件资源结构框图。

图1 FTC7110硬件结构框图Fig.1 Structure diagram of the hardware of FTC7110

2 U-Boot目录结构

U-Boot源程序包在顶层目录下一共有17个子目录,它们分别用于存放和管理不同的源程序。目录结构如下[3]:

3 U-Boot启动流程分析

U-Boot的启动大致可以分为两个阶段。第1个阶段在Nor Flash中执行,主要由汇编语言编写。第2阶段主要用C语言编写的,用于实现较复杂的硬件设备的初始化,同时也增加了代码的可移植性。

U-Boot运行启动流程如图2所示,U-Boot在复位启动后执行的第1个文件是 start.s,它位于arch/powerpc/cpu/mpc85xx中,接下来进行U-Boot启动的第1个阶段,完成一些针对MPC8548E的硬件初始化,主要包括初始化内核e500、清楚指令cache和数据 cache、设置中断向量、清除和建立一些寄存器、设置HID寄存器、配置MMU、初始化堆栈等,为系统创建一个有序可靠的初始环境,然后就进入到U-Boot启动的第2个阶段,首先进入第1个C语言函数cpu_init_early_f中,在这里主要是来初始化TLB和LAW,为系统中的硬件设备来映射对应的地址空间。……

登录APP查看全文

猜你喜欢

设计
二十四节气在平面广告设计中的应用
何为设计的守护之道?
《丰收的喜悦展示设计》
基于PWM的伺服控制系统设计
基于89C52的32只三色LED摇摇棒设计
基于ICL8038的波形发生器仿真设计
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
从平面设计到“设计健康”