全国服务热线:400-0859-208

位置:长沙粤嵌嵌入式IT培训机构 > 学校动态 > 嵌入式基础了解微控制器引导过程

嵌入式基础了解微控制器引导过程

来源:长沙粤嵌嵌入式IT培训机构时间:2022/8/16 11:39:26

      嵌入式软件开发中较容易被忽视的过程之一是微控制器引导过程。原因是硅工具链已经变得非常善于提供和抽象引导过程,因此嵌入式开发人员通常不会考虑它。不幸的是,这可能导致对微控制器如何启动、如何初始化以及较终如何找到自己熟悉的主要功能缺乏了解。本文将探讨引导过程,并阐明幕后发生了什么。

  微控制器启动过程从简单地给系统通电开始。一旦电压轨稳定下来,微控制器就会在复位向量中查找flash中可以找到启动指令的位置。复位向量是闪存映射中的一个特殊位置。

  微控制器加载存储在复位向量中的地址,然后CPU加载并执行其中包含的指令。这些较初的指令并不是开发人员创建的main的开始。相反,这些是关于如何启动微控制器的说明。

  通常发生的件事是将存储在flash中的向量表复制到RAM中。它们被复制到创建可执行程序时在链接器文件中指定的位置。将向量表复制到RAM的一个原因是从RAM执行比从flash执行更快。这有助于减少系统中任何中断调用的延迟。根据微控制器的特定架构,可能会有更新向量表寄存器的指令,以便微控制器知道RAM表的起始位置。


嵌入式开发:嵌入式基础–了解微控制器引导过程


  接下来嵌入式开发人员将初始化的数据部分复制到 RAM 中,这通常是存储在链接器的 .data 部分中的变量。 初始化数据的示例是静态、全局和静态局部变量,这些变量在编译时提供了初始化值,这些是显式定义,例如 int Var = 0x32;。

  在复制数据部分之后,还会复制 .bss 部分。 .bss 部分包含未显式初始化或已初始化为零值的变量。 一个简单的例子就是变量 static int Var; 将包含在本节中。

  较后,微控制器会将任何RAM功能从闪存复制到RAM。同样,由于执行速度稍快,有时从RAM而不是从flash执行某些功能是值得的。这些函数通常由开发人员决定,并在编译程序之前特意放在链接器文件中。

  这整个过程通常被称为“C Copy Down”。 如果不执行此复制,将无法正确设置 C 环境以执行程序。 通常,一旦完成复制,微控制器就会跳转到开发人员应用程序开始的主程序的开始。

  微控制器引导过程实际上相对简单。虽然它经常是用汇编语言或其他一些晦涩难懂的方式编写的,因此嵌入式开发人员很难清楚地理解微控制器实际上是如何进入main的。相反,它看起来像一个非常复杂且几乎不可知的过程,这使得引导代码的定制开发成为一个潜在的痛苦过程。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/5631/news/554894/违者必究! 以上就是长沙粤嵌嵌入式IT培训机构 小编为您整理 嵌入式基础了解微控制器引导过程的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-0859-208