新闻中心

EEPW首页>嵌入式系统>设计应用> 基于S3C2440的WinCE Bootloader的分析与设计

基于S3C2440的WinCE Bootloader的分析与设计

作者: 时间:2011-03-08 来源:网络 收藏

摘要:针对BootLoader严格依赖于具体的硬件系统,并且从头开发一套适合特定硬件系统的BootLoader又相当复杂这一问题,分析设计了基于S3C2440的WinCE操作系统的引导程序的实现方法。结合飞凌公司的产品TE2440的硬件特性,对BootLoader启动的两个阶段和配置文件进行了详细的分析和设计,最终实现了系统引导加载程序的构建。为项目后续的开发奠定了良好的基础。
关键词:系统;引导程序;WinCE;EBoot

本文引用地址://m.amcfsurvey.com/article/150979.htm

Bootloader的开发是嵌入式系统开发必不可少的环节,一个好的Bootloader不仅可以给项目的后续开发工作带来很大便利,而且在项目开发结束后对用户使用产品也提供了很多方便。但是,由于嵌入式的硬件是无标准、非规范的,Bootloader的功能又是直接与微处理系统相关的,所以给开发人员的工作带来了许多不便。在实际的项目开发中,一般都需要对特定的硬件系统进行Bootloader的设计,可是从头开发一套系统的Bootloader是非常复杂并且耗时的,针对这一难点,微软公司推出的面向嵌入式应用领域的操作系统Windows CE体现了非常大的优势,Windows CE具有强大的操作系统功能、稳定可靠的性能、高度的模块化、可定制性、与桌面Windows平台一致的开发特性。它最大的优势是具有高度的模块化,可以提供与硬件无关的软件框架,把与硬件无关但是又代表普遍通用性的内容抽取出来,形成标准函数库。而与硬件相关的不具有通用意义的BootLoader代码则由开发人员具体负债开发,这样就给开发人员带来了相当大便利。并且开发出的Bootloader因是严格按照微软提供的模板开发,所以又有很好兼容性且效率高。
由于Bootloader的实现依赖于CPU的体系结构,因此从固态存储设备上启动的BootLoader大多都是两个阶段的启动过程。本文以飞凌嵌入式公司的产品TE2440为例,详细分析Windows CE BootLoader开发的两个阶段过程。TE2440的微处理器采用三星公司的S3C2440A,主频400MH-z,内置64 MB SDRAM和64 MB NANDFLASH,10 M网口,采用CS8900Q3。S3C2440支持2种启动模式:一种是从NandFlash启动;另一种是从NorF-lash启动,TE2440支持从NandFlash启动。

1 Bootloader的第一阶段分析
为了防止给后来的调试工作带来更多的麻烦,要尽量使第一阶段做尽可能少的工作,只要使CPU正常工作起来即可,然后把大量复杂的初始化工作留给第二阶段来做。第一阶段是在ADS(ARM Developer Suite)环境下开发的。S3C2440系统引导加载程序包括2440init,s、2440-lib.s函数库、2440lib.c函数库、mmu,c、dma,c函数库等几个主要的文件。因为与硬件密切相关。所以通常采用汇编语言编写,本文主要分析s3c2440系统在加电后的硬件设置处理过程,即2440init.s文件中的程序执行过程。
第一阶段主要包括如下步骤:
(1)进入启动程序的入口地址,禁止看门狗、屏蔽所有中断。因为为中断提供服务通常是操作系统设备驱动程序的责任,所以在Bootlo-ader的执行全过程中可以不必响应任何中断。中断屏蔽可以通过写CPU的中断屏蔽寄存器或状态寄存器来完成。
a.JPG

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 4 下一页

关键词:嵌入式

评论


相关推荐

技术专区

关闭