×
嵌入式开发 > 详情

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

发布时间:2020-06-28 发布时间:
|

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

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的中断屏蔽寄存器或状态寄存器来完成。

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于CAN总线与以太网的嵌入式网关电路设计