|
闂傚倸鍊烽懗鍫曞箠閹剧粯鍊堕柛顐犲劚绾惧鏌熼崜褏甯涢柣鎾寸洴閺屾盯顢曢顫盎闂佽楠忕换婵嬪蓟閿涘嫧鍋撻敐搴濈盎闁哄棛鍋ら弻鐔碱敍濞戞瑯妫冨Δ鐘靛仦閿氶悡銈囩磽娴h疮缂氭い鈹垮妼閳规垿鏁嶉崟顐℃澀闂佺ǹ臎閸パ咁唵闂佽法鍣﹂幏锟�
|
缂傚倸鍊搁崐鎼佸磹閹间礁纾圭憸鐗堝笚閸嬪绻濇繝鍌滃闁绘挻绻堥弻銊╂偆閸屾稑顏�
|
IC
|
闂傚倸鍊风粈渚€骞栭锕€绠犻煫鍥ㄦ惈閼板潡鏌涢敂璇插箻缂佲偓婵犲洦鍊甸柨婵嗛婢ф澘鈽夐幘宕囆ч柡灞诲姂閹倝宕掑☉姗嗕紦
|
缂傚倸鍊搁崐椋庢閿熺姴绐楁俊銈傚亾闁伙絽鍢茶灒婵炲棛鍋撳В锟�
|
濠电姷鏁搁崑鐐哄垂閸洖绠归柍鍝勬噹閻鏌涢幇闈涙灁闁逞屽墮閸婂潡寮幘缁樻櫢闁跨噦鎷�
|
闂傚倸鍊烽懗鑸电仚缂備胶绮〃鍛村煝閺傚簱妲堥柕蹇娾偓鍏呮偅闂備浇娉曢崳锕傚箯閿燂拷
|
闂傚倸鍊烽悞锕傛儑瑜版帒鍨傜憸鐗堝笚閸婅埖鎱ㄥΟ璺ㄧ翱濠殿喗濞婇弻銊╂偆閸屾稑顏�
|
闂傚倸鍊烽懗鍓佹兜閸洖鐤鹃柣鎰ゴ閺嬪秹鏌ㄥ┑鍡╂Ф闁逞屽厸缁舵岸寮幘缁樻櫢闁跨噦鎷�
|
闂傚倸鍊烽悞锕€顪冮崹顕呯唵闁逞屽墰缁辨帡骞撻幒婵堝悑閻庤娲樼划鎾诲极閹剧粯鏅搁柨鐕傛嫹
|
闂傚倸鍊风粈渚€骞栭锕€鐤柣妤€鐗婇崣蹇涙煟閹达絾顥夐柛姘秺閺屻劑鎮ら崒娑橆伓
|
婵犵數濮烽弫鎼佸磻閻愬搫鍨傞梻鍫熶緱閸ゆ洟鎮规ウ瑁も偓鈧柡瀣Ч閺屻劑鎮ら崒娑橆伓
|
闂備浇顕уù鐑藉极婵犳艾纾诲┑鐘叉搐缁愭淇婇妶鍛殨闁绘帒锕弻銊╂偆閸屾稑顏�
|
缂傚倸鍊搁崐椋庣矆娓氣偓閹矂宕掑⿰鍛紳濠殿喗枪閸╂牠宕曞澶嬬叆闁绘洖鍊圭€氾拷
|
闂傚倸鍊风粈浣虹礊婵犲倴缂氱憸鏃堛€侀弽顓炲耿婵$偟绮弫鐘绘⒑闁偛绉电€氾拷
|
|
闂傚倸鍊烽懗鍓佸垝椤栫偛鏄ラ柛顐犲劚閸屻劌霉閻樺樊鍎忕紒鐘虫緲椤潡鎳滈棃娑橆潓闂傚倸鍋嗛崹鍫曞蓟閵娾晜鍋嗛柛灞剧☉椤忥拷
|
闂傚倸鍊烽悞锕傛儑瑜版帒鍨傞柦妯侯槳缂傛氨鎲告惔銊ョ疄闁靛ň鏅涢悡娑㈡煕鐏炲墽鈽夋い顐節濮婅櫣鎹勯妸銉︾彚闂佺懓鍤栭幏锟�
|
LED闂傚倷娴囬褏鎹㈤幒妤€纾块柟杈剧畱缁狀垶鏌ㄩ悤鍌涘
|
闂傚倸鍊烽懗鍓佸垝椤栨粍鏆滈柟鐑橆殕閺呮繈鏌曟径鍫濆姉闁衡偓閿曞倹鐓冪憸婵嬪箯閿燂拷
|
您现在的位置: 华玉生活网 >> 技术文库 >> 无线 >> 正文>> 繁体中文

基于ARMS3C2410嵌入式系统的Bootloader分析与设计

蒋维(青海民族学院电子工程与信息科学系,青海省西宁市810007)0引言一个完整的嵌入式系统从软件角度看分为4层,分别是引导加载程序、操作系统内核、文件系统和用户应用程序。引导加载程序是系统上电后首先运行的代码。在PC机中引导加载程序由BIOS(基本输入输出系统)和位于MBR(主引导记录)的操作系统Bootload-er共同组成。而在嵌入式系统中一般没有BIOS那样的固件程序,整个系统的引导加载由Bootloader来完成。也就是说,Bootloader

蒋维

(青海民族学院电子工程与信息科学系,青海省西宁市 810007)


0引言

一个完整的嵌入式系统从软件角度看分为4层,分别是引导加载程序、操作系统内核、文件系统和用户应用程序。引导加载程序是系统上电后首先运行的代码。在PC机中引导加载程序由BIOS(基本输入输出系统)和位于MBR(主引导记录)的操作系统Bootload-er共同组成。而在嵌入式系统中一般没有BIOS那样的固件程序,整个系统的引导加载由Bootloader来完成。也就是说,Bootloader是在操作系统内核运行前执行的一段小程序,通过Bootloader的运行对系统板的CPU、SDRAM、Flash、串口等主要部件进行初始化,创建内核需要的一些信息并将这些信息传递给内核,从而将系统的软硬件环境带到一个合适的状态,最终调用操作系统内核,真正起到引导加载内核的作用。在没有操作系统的情况下,通过Bootloader程序,也可以下载简单应用文件到系统板运行。

1S3C2410开发版

S3C2410开发版是一款通用的ARM9开发版,其基本配置为CPU采用三星公司S3C2410 ARM920T,主频203MHz。集成有SDRAM控制器、NAND Flash控制器、SD卡控制器、USBHost和USB Device控制器、LCD控制器、IIC总线控制器、IIS总线控制器、SPI总线接口等。操作系统支持Linux2.4以上版本,且支持Windows CE。NAND Flash采用32 MB的K9F5608U,8位数据总线。SDRAM采用2片16M×16 bit的HY57V561620,组成32位总线。S3C2410将系统的存储空间分为8个Bank,共1 GB空间,其中Bank0~Bank5的开始地址固定,大小为128 MB,用于ROM或SRAM,Bank6与Bank7的大小是可编程的,用于ROM、SRAM或SDRAM。在这里,NAND Flash位于Bank0区,地址范围为0x00000000~0x01ffffff,2片SDRAM分别位于Bank6和Bank7区,地址范围分别为0x30000000~0x31ffffff和0x32000000~0x33ffffff。当核心板上电复位时,系统首先将NAND Flash开始的0~4 kB的程序映射到自己内部的SteppingStone区,并把其首地址设为Ox00000000,CPU从这个地址开始执行程序。

2设计流程

系统以三星公司的S3C2410为开发版,以ARMDeveloper Suite 1.2作为系统开发环境。使用ARM9-JTAG调试代理,开发流程如图1所示。


3启动流程分析与具体实现

3.1启动流程分析

系统加电复位后,CPU从复位地址0x00000000处取第1条指令执行,S3C2410开发版的NAND Flash被映射到这个预先设置好的地址上,在开发时可通过集成开发环境将Bootloader定位在复位地址开始的存储空间内。基于S3C2410开发版系统的启动流程如图2所示。

3.2 Bootloader的具体实现

一般Bootloader分为Stage1和Stage2两个阶段。Stage1阶段建立一个2410INIT.S文件,这是一个汇编语言文件,其文件功能是S3C2410启动代码、配置存储器、ISR、堆栈、初始化C向量地址等。具体所做的工作是设置异常向量表、初始化看门狗和外围电路、初始化存储器、初始化堆栈、初始化数据区、跳转到C程序的Main()函数。

3.2.1设置异常向量表

ARM的异常向量表放在0地址开始处:

由于每个中断只占据向量表中4个字节的存储空间,因此只能存放一条ARM指令。一旦系统运行有异常中断发生时,ARM处理器便把PC指针强制置为向量表中对应中断类型的地址值,从而跳到存储器其他位置的相应标号处执行。当硬件系统刚刚上电复位时,程序从0x00000000地址处跳转到标号为ResetHandler的程序处,接着便进入启动引导过程。

3.2.2初始化看门狗和外围电路

主要实现S3C2410的看门狗、中断、PLL和MPLL配置寄存器的初始化。

具体代码如下:

3.2.3初始化存储器

主要设置内存控制寄存器,具体代码如下:

其中SMRDATA的作用是设置存储器控制寄存器的值。具体定义可参考文献[2]。

3.2.4初始化堆栈

ARM有7种工作模式,而每一种模式所用堆栈是不同的,所以初始化堆栈必须初始化这7种模式下的堆栈。具体代码如下:

关于USERMODE等的具体定义为:


3.2.5初始化数据区

内核映像开始总是在Flash里面的,其中RO部分可以在Flash中执行,也可以转移到RAM中执行,而RW和ZI必须转移到RAM中执行。所以所谓数据区初始化就是完成必要的部分从Flash到RAM的数据传输和内容清零。

具体代码如下:



3.2.6跳转到C程序的Main()函数

这是Bootloader的Stage1部分的最后一个环节,是改变处理器模式,转入到C程序的人口操作。

具体代码如下:


3.2.7 Main()函数的具体实现

这部分是实现Bootloader的Stage2的功能,其文件功能为初始化系统频率、初始化I/O端口、初始化中断处理程序表、初始化串口、其他硬件的初始化、进入主程序。

Main()函数的主要代码如下:

4程序的在线仿真和烧写

4.1 程序的在线仿真

以上Bootloader程序通过ADS软件和JTJAG口在目标板上进行仿真,其步骤如下:
a)在ARM Developer Suite 1.2中打开boot.mcp工程文件。
b)对打开的boot.mcp工程文件下的所有汇编语言及C语言文件进行编译。
c)使目标板上电,打开ARM9-JTAG调试代理,软硬件连接正确将检测到ARM9内核。打开超级终端。
d)在AXD中下载并运行编译后生成的Boot.axf文件。

此时在显示器上显示目标板的启动信息。

4.2将程序固化到Flash中并在目标板上运行

a)进行并口驱动的安装与设置,并用JFLASH线将PC并口与目标板连接。
b)将要下载的.bin文件放到与SJF2410.exe同一个目录下,再编辑批处理文件。SJF2410_BIOS.BAT内容为:SJF2410/f:boot.bin。
c)执行批处理文件将bin文件通过JTAG烧写入Flash中。

5 结束语

Bootloader的修改和移植是针对具体的CPU和外围电路进行的,虽然市场上有很多成熟工具,移植起来简单快捷,但都存在一定的局限性,具体表现在代码量大、不够灵活。针对特定的目标板自己编写Bootloader,不仅代码量小,而且灵活性强,便于维护。


  • 扩展阅读
  • 上一个文章:
  • 【返回网站首页】 【返回无线】
  • 下一个文章:
  • 【字体: 】【】【发表评论】【加入收藏】【告诉好友】【打印此文
    文章 软件 电影 商品

    相关文章

    本站公告

    • 扫一扫,打赏给我们,谢谢!

      本站2016年12月16日起取消ruida.org.cn域名,该域名正式作废,该域名发布任何信息与本站无关。


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    专 题 栏 目

    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

    | 服务声明 | 充值中心| 华安五金电器 | 收费标准| 论坛| 留言| 实用查询| 会员中心| 下载帮助| 设为首页|

    技术支持:瑞达科技 即时交谈QQ:237013889 QQ群:13810759 E-Mail:237013889@qq.com
    非盈利网站,如有侵权,请来信来电告知,第一时间处理,谢谢!
    桂ICP备17008104号 华玉生活网网站统计
    tj