2047|0

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何让基于ARM的嵌入式Bootloader实现自动升级 [复制链接]

作为一种32位的高性能、低成本、低功耗的嵌入式RISC微处理器,ARM微处理器目前已经成为应用最广泛的嵌入式微处理器。嵌入式系统由硬件和软件两部分组成,软件部分主要包括Bootloader、内核和文件系统。但由于Bootloader与处理器的体系结构和具体嵌入式板级设备的配置密切相关,至今没有一个完全通用的Bootloader可以直接应用于各种嵌入式系统中,因此Bootloader成为运行嵌入式Linux系统设计的一个关键问题。下面由卓跃教育为您介绍如何让基于ARM的嵌入式Bootloader实现自动升级的。
    通常在嵌入式系统中,首先通过专用烧录器将Bootloader烧写到目标板的Flash中,然后在Bootloader中,将内核映像文件和文件系统映像文件通过串口和网络下载并烧写到Flash中。若需对内核或文件系统升级,则按上述方法重新烧写新的Kernel,Romfs直接覆盖原来的Kernel,Romfs。这种方法中,一方面必须将目标板和主机通过串口线或网线相连,需到现场去升级,比较麻烦;另一方面,通过串口或网络烧写映像文件,速度很慢。本文分析Bootloader的结构和主要任务,并针对实际项目开发中用到的SigmaDesigns公司的EM8624L芯片(ARM7TDMI处理器+uClinux)扩充Bootloader功能,实现了通过CF存储卡或硬盘对内核或文件系统映像文件的自动升级。对需要经常为Kernel,Romfs升级的嵌入式系统来说,克服了传统升级方法的局限,简化了升级方法,提高了升级速度。
    大多数Bootloader都包含两种不同的操作模式:1)启动加载(Bootloading)模式; 2)下载(Downloading)模式。
    基于ARM的芯片多数为复杂的片上系统(SoC),这类复杂系统里的多数硬件模块都是可配置的,因此大多数Bootloader都分为stage0和stage1两大部分。Bootloader中stage0的主要任务如下:屏蔽所有中断,初始化相关GPIO(GeneralPurposeIO),初始化SDRAM,拷贝Bootloader和Kernel到SDRAM中,关闭数据Cache,跳转到Stage1执行等。Stage1的主要任务如下:初始化计时器,初始化网络,初始化Flash,装载内核映像和文件系统映像,初始化命令控制台等。
    基本原理
    本实验对Bootloader的功能进行了扩充,加入自动升级的功能。即:用户需要对目标板的内核或文件系统进行升级,只需要将新的映像文件拷贝到CF存储卡或移动硬盘中,然后将CF卡或移动硬盘插入目标板相应的插槽,每次重启目标板时,先启动Bootloader,初始化硬件环境后,在应用程序运行前,判断是否存在要升级的文件,如果存在则先把Flash指定的位置的内容擦除掉,然后再把要升级的内核或文件系统的映像文件写进相应的位置,写完后立即删除CF存储卡或移动硬盘上的升级文件,即完成升级。
此帖出自信息发布论坛
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Microchip 直播|利用motorBench开发套件高效开发电机磁场定向控制方案 报名中!
直播主题:利用motorBench开发套件高效开发电机磁场定向控制方案
直播时间:2025年3月25日(星期二)上午10:30-11:30
快来报名!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表