|
技术文库首页
|
编程
|
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,不仅代码量小,而且灵活性强,便于维护。


瑞达币购买
桂山秋竹_唐年桂2023年
桂北云雾图_唐年桂202

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

    相关文章

    本站公告

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

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


      启用ruida.orghy928.net域名;

      瑞达网,瑞达科技网宣

    附页内镶内容
    健康养生 商场新品 股市K线、指标知识
     六种药酒配制法[11月7日]
     国公酒_散风祛湿,舒筋活络[3月8日]
     气血双补党参、麦冬、黄芪炖[11月29日]
     参桂再造丸_臂丛神经痛[11月29日]
     臂丛神经痛该怎样治疗[11月29日]
     舒筋络酊、百宝丹擦剂、参桂[11月29日]
     臂丛神经痛针灸治疗[11月29日]
     枳椇子_利水渗湿药[11月29日]
     三七、丹参、西洋参_颈椎病[8月17日]
     枸杞泡姜芽(嫩姜)的做法及功[5月20日]
     瑞达币购买
     桂山秋竹_唐年桂2023年新作品
     桂北云雾图_唐年桂2023年新作品
     广西2019年《高考指南》+《招生计
     金士科前置过滤器
     金牛前置过滤器
     USB口24系列编程器第二版含USB延
     液晶电视、液晶显示器图纸、维修
     彩电、显示器、DVD、EVD打印机等
     高清CRT彩电、显示器图纸刻录 4G
     [理财]各种短视频赚钱方法
     [会员]专业交易实战控制系统
     [理财]1分2分5分硬币回收价格表(20250123)
     [理财]1分2分5分硬币回收价格表(20230928)
     [理财]1分2分5分硬币回收价格表(20230624)
     [理财]2022 年新版1分2分5分硬币回收价格表…
     [理财]微信收款码如何开通商业版收信用卡费…
     [指标]R平方_基金指标
     [指标]标准差_基金指标
     [指标]平均回报_基金指标
    装修案例 网站建设 电器维修
     一般水电安装几个常用尺寸[1月29日]
     三相电表接法及度数的正确读…[5月8日]
     万能通用卧室房门锁更换步骤…[2月22日]
     乳胶漆的八大施工步骤及涂刷…[2月14日]
     旧墙翻新步骤及注意事项[2月14日]
     屋面防水施工工艺流程及注意…[1月16日]
     专利产品“防污吸气帽”新产…[1月8日]
     鲁班尺吉数对照表高清图片查…[10月29日]
     砂浆胶作用与危害[9月21日]
     4种处理水泥地面起砂方法[9月21日]
     网页html点击切换显示内容完[11月7日]
     动易SiteWeaver6.6网站管理系[7月31日]
     中国阴历农历JS支持 HTML网页[2月26日]
     java script error 容错处理[2月15日]
     几款还不错的网页特效显示日[2月14日]
     图片可以调大小的代码[12月14日]
     动易SW6.8网站系统改自适应支[11月20日]
     网站建设_套餐服务[12月4日]
     网站建设-费用明细[12月4日]
     不显示出来的代码[12月3日]
     联想 小新Air 14 2019笔记本…[6月15日]
     滚筒洗衣机脱水声音大原因及…[4月17日]
     智能电视不能开机强制恢复出…[1月16日]
     各大品牌智能电视机恢复出厂…[1月16日]
     洗衣机自己排水或不存水漏水…[6月15日]
     海尔冰箱出现-03还滴滴报警[5月29日]
     TCL电视通用教程安装教程[2月2日]
     TCL L43V7300A-3D液晶彩电出…[2月2日]
     先锋液晶电视LED-32B550无光…[1月17日]
     智能电视主板的应用与维修(…[1月11日]
    电器资料 下载 读书
     三个代码让电脑提速畅通秘籍[3月13日]
     视得安750D6对讲门铃工作原理…[9月13日]
     什么是量子芯片和光子芯片[5月14日]
     沃尔沃S90汽车遥控钥匙失灵的…[1月19日]
     LED显示屏瑞合信PLus单双色全…[12月22日]
     Windows 照片查看器无法显示…[8月6日]
     已经设置IE主页,但是打开还…[7月6日]
     如何调整空压机压力?空压机…[6月8日]
     剪映-视频编辑软件手机版使用…[5月28日]
     锂电池保护板作用及同口和分…[3月18日]
     [书籍]滕王阁序_原文_注释译文_白
     [书籍]《天工开物》明代宋应星初
     [电影]《抓娃娃》高清电影
     [联想]Lenovo S540-14API Compl 
     [书籍]《墨子》原文注释译文
     [LED条屏]瑞合信单双色/全彩控制系统
     [LED条屏]LED显示屏瑞合信手机APP6.
     [书籍]全本新注聊斋志异
     [书籍]广西2023年高考指南 招生计
     [书籍]个人防护手册(第二版)
     广西高考2024~2022年历史类([6月25日]
     凤阳花鼓[3月8日]
     《滕王阁序》[3月2日]
     卷一百二十八 艺文_杂记[2月24日]
     卷一百二十七 艺文_杂记[2月24日]
     卷一百二十六 艺文_国朝[2月24日]
     卷一百二十五 艺文_国朝[2月24日]
     卷一百二十四 艺文_五言排律[2月24日]
     卷一百二十三 艺文_历朝[2月24日]
     卷一百二十二 艺文_历朝[2月24日]
    珠宝玉器 在线电视台
     鸡血石与鸡血玉有什么区别[6月12日]
     鸡血玉[6月12日]
     鸡血石 (bloodstone)[6月12日]
     什么是莫桑石(Moissanite)[6月12日]
     可以戴钻石洗澡吗[1月22日]
     钻石如何保养才好呢?[1月22日]
     PT容易花的问题和钻戒保养问…[1月22日]
     切工 钻石的雕刻艺术[1月22日]
     如何保养好钻戒[1月22日]
     钻戒保养方法[1月22日]
     中央体育台
     中央新闻台
     宁夏卫视
     湖北卫视
     西藏卫视
     辽宁卫视
     河北卫视
     北京卫视
     政法频道
     农民频道
     湖南经视
     湖 南 台
     河南频道
     湖南卫视
     兵团卫视
     江苏卫视
     旅游卫视
     湖南都市
     七彩戏剧
     动漫秀场
     游戏风云
     法制天地
     魅力音乐
     新 娱 乐
     南 方 TV
     浙江卫视
     齐鲁频道
     山西影视
     东南卫视
     上海卫视
     贵州电视台
     重庆电视台
     山东卫视
     哪吒之魔童闹海《哪吒2》在线
     《抓娃娃》在线电影
     流浪地球2剧情介绍
     《万里归途》完整版
     《阿凡达2:水之道》耗资3.1
     2021港剧《梅艳芳》5集全.HD
     误杀2 -电影-完整版视频在线
     亲爱的/亲爱的小孩/打拐/家之
     《第一炉香》-电影-完整版视
     《扬名立万》-电影-完整版视
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论

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

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