当前位置:首页 > 嵌入式 > 嵌入式新闻
[导读] 世界上很少有什么项目能给嵌入式固件开发人员提供足够多的开发时间。事实上,嵌入式固件开发就好像气体一样,会占据它所在的整个空间。而这往往意味着项目结束阶段的测试和

 世界上很少有什么项目能给嵌入式固件开发人员提供足够多的开发时间。事实上,嵌入式固件开发就好像气体一样,会占据它所在的整个空间。而这往往意味着项目结束阶段的测试和质量评估承受压力,进而提高风险。项目经理为如何跟上项目计划进度发愁,嵌入式设计人员和测试工程师也面临开发时间和测试覆盖质量之间的矛盾。要是所有人都能实现自己的目标该多好。要是硬件设计能在代码完成前就进一步推进该多好。要是固件测试在生产构造阶段也能继续进行该多好。要是整个团队都能明确如果设计情况不好,他们总是能够通过现场升级实现重大修改该多好。这样,所有人晚上都能睡个安稳觉,而通过适当利用嵌入式引导加载程序(bootloader),这完全有可能实现。

首先我们先明确一下有关术语。引导加载程序是一段常驻微处理器中的代码,有时也位于只读存储器(ROM)中(在工厂制造时编写)或者位于板载闪存存储器的预留区域。可加载引导代码能载入内存并作为正常工作期间在微处理器上运行的主应用代码。可加载引导代码可通过引导加载程序更新。产品固件的现场升级正是通过板载引导加载程序实现的。

那么,什么是引导加载程序呢?引导加载程序就是位于给定微控制器上受保护程序存储器中的一部分代码。它通常是加电启动或重启后运行的第一个软件,往往针对具体处理器和电路板。引导加载程序可视为一种“笨”代码,因为它并不了解需要执行什么应用,甚至也不了解器件功能是什么。引导加载程序专门用来理解如果通过任意数量的通讯协议与外部进行通讯(这些协议包括UART、I2C、SPI、CAN、以太网等),也可用来了解微控制器的存储器映射。引导加载程序在发挥作用时,负责与外部或主机进行通讯;读取主机发送的数据文件;更新它所在的微处理器,从而运行所提供的最新应用代码。

 

 

图1:典型的嵌入式硬件架构。

引导加载程序可以在接收到人工操作员(也就是手动重启)或外设设备(即系统主机)的启动信号后开始工作,视具体嵌入式系统而定。引导加载程序信号首先确认引导加载程序本身是否有效,明确当前器件应用是否有效,与主机通讯并载入提交的新应用,随后根据指令执行应用闪存重写。大多数现代微控制器都能对自己的闪存重新编程。典型的引导加载程序在几微秒内就能完成这一工作。不过,存储器尺寸较大情况下,该时间就会大幅延长,有时甚至要花几秒钟才能完成一次更新。一旦完成加载引导,引导加载程序必须确认加载引导镜像,并将控制权交给加载引导代码。用于中断矢量的指针也必须进行设置。典型情况下,引导加载程序将进行软重启,以便让应用掌握控制。图2给出了引导加载程序的逻辑流程实例。

 

 

图2:引导加载程序的逻辑流程。

由于引导加载程序是在制造过程中被编程到器件中,并且不是器件工作所必需的首要应用,因此实际上可以把它看作是“开销”代码。项目经理和嵌入式设计人员必须要考虑引导加载程序所带来的风险保护功能与其所占用的代码空间相比是否值得。由于这段代码要占用空间,许多设计人员需要尽可能减小引导加载程序的存储器占用量,从而将用于应用代码的存储器空间实现最大化。引导加载程序至少应提供:通讯通道、擦写并重新编程闪存存储器的方法以及确认和执行新应用代码的方法。

此外,引导加载程序应该能够检测、报告和处理加载引导操作过程中出现的错误,如断电、通讯损失、闪存写入错误等。一般通过存储应用的校验和或循环冗余代码(CRC)来实现闪存错误保护功能。加载引导操作开始后,这些位就会被清空。如果新的应用成功下载并安装,校验和就会被更新。如果下载过程中出错(通讯损失、断电等),那么引导加载程序会检测无效的校验位,且不会开始应用操作,而是与主机通讯,等待有效的加载引导操作。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

May 20, 2024 ---- 据TrendForce集邦咨询研究,三大原厂开始提高先进制程的投片,继存储器合约价翻扬后,公司资金投入开始增加,产能提升将集中在今年下半年,预期1alpha nm(含)以上投片至年底将...

关键字: 晶圆 HBM 存储器

北京2024年5月16日 /美通社/ -- 5月10日晚,2024中国品牌日晚会在新华社全媒体矩阵播出,50个入选品牌在当晚揭晓,极氪名列其中,成为首度上榜的中国造车新势力代表。 图为北京时间5月10日 21:30 ,...

关键字: 吉利 COM HTML 代码

无论您是在研究如何使用 10GigE 还是寻求所需考虑事项的建议,本文均提供有实践,帮助确保单相机 10GigE 视觉系统设置顺利并拥有良好性能。 我们列出了主机系统配置、布线和相机设置的实践。

关键字: 视觉系统 CPU 存储器

存储器是计算机系统中的关键组件,负责存储程序指令和数据,是实现计算和信息处理的基础。根据其工作原理、存储容量、访问速度、稳定性以及持久性等诸多特性,存储器可以被细分为多个类别。本篇文章将详细介绍存储器的主要分类,并探讨各...

关键字: 存储器 RAM

通往定制高端 3.5 英寸系统的更快、更可持续的途径

关键字: 处理器 嵌入式设计 OEM

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

Apr. 03, 2024 ---- 4月3日7时58分在台湾花莲县海域(北纬23.81度,东经121.74度)发生7.3级地震,震源深度12千米。根据全球市场研究机构TrendForce集邦咨询于第一时间调查各厂受损及...

关键字: 存储器 晶圆代工

2024年3月26日,中国-- 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)发布了一项基于 18 纳米全耗尽绝缘体上硅(FD-SO...

关键字: 处理器 微控制器 存储器

该产品线提供了并行SRAM的低成本替代方案,容量高达 4 Mb,具有143 MHz SPI/SQI™通信功能

关键字: SRAM 存储器 MCU
关闭
关闭