嵌入式系统中微控制器的Bootloader设计

点击下面下载论文:

下载链接
下载

 

苹果和一堆书在桌子上与黑板在背景中

 

抽象:

微控制器已经渗透到我们日常生活的每一个角落,从控制烤箱的简单8位设备到强大的32位DSP(可为我们提供我们都已习惯的丰富媒体和娱乐功能)。没有微控制器,我们的生活不仅会变得不那么令人兴奋,而且我们将失去对世界的控制,这是我们无法再没有的生活。每年售出数十亿个微控制器,并且数量持续攀升。

这些基于微控制器的产品在出货数百万个并且需要进行软件“增强”时会发生什么情况?每次更新软件时,是否需要将每个单元都退还给制造商?电视,蓝光播放器和其他设备是否定期退还给制造商,以便客户可以继续在他们的设备上运行最新最好的软件?这些问题的明显答案绝对不是,而主要原因是大多数系统在板载时都带有引导加载程序。

引导加载程序是一种应用程序,其主要目的是允许在不使用特殊硬件(例如JTAG编程器)的情况下更新系统软件。在某些情况下,它也是最早可以检查嵌入式系统完整性的点。引导加载程序管理系统映像。嵌入式引导加载程序有许多不同的大小和风格。他们可以通过各种协议进行通信,例如USART,CAN,I2C,以太网,USB,并且存在的协议数量还在不断增加。具有引导加载程序的系统至少有两个程序映像共存于同一微控制器上,并且必须包含执行检查以查看是否正在进行更新软件的检查的分支代码。

在产品开发的初始阶段,引导加载程序经常被开发团队所忽略。这样做的主要原因是引导加载程序不是要出售给客户的主要最终产品,但是引导加载程序可能是该产品中最重要的部分。引导加载程序使公司可以使用仅满足其最终功能集的一部分的软件来启动产品,然后在产品投放市场后向其产品添加功能。它还允许他们修复在系统被广泛发布后发现的错误。

对于嵌入式软件工程师而言,引导加载程序需要全面了解处理器的工作方式,如何利用其内存以及如何在最低级别上对处理器进行工作。引导加载程序开发可能是一项极具挑战性的工作,但绝对是一项有益的工作。一旦开发人员完成了该过程,通过遵循一种通用且一致的引导加载程序设计方法,每个附加的引导加载程序将变得越来越容易实现。

本文的目的是分解开发引导加载程序所需的组件,并以一种易于理解的方法进行介绍,以使读者可以用来实现自己的引导加载程序。尽管引导加载程序是小型程序,但它们通常会带出最糟糕和最讨厌的错误,这些错误可能会对开发人员造成极大的威胁。程序员不仅必须深入研究闪存编程,还需要深入研究存储器映射,可重定位的向量表,复制功能,闪存分区,代码分支以及许多其他任务,这些任务可以首先似乎是巨大的,几乎不可能在短期内克服。

 

下载全文:

下载链接
下载

One thought 上 “嵌入式系统中微控制器的Bootloader设计”

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.