【发布时间】:2021-12-03 06:01:42
【问题描述】:
你好 stackoverflow 社区,
有人可以帮我理解启动代码和重置处理程序之间的区别吗?什么时候启动我们的微控制器叫哪一个?当我们重置我们的微控制器时,调用的是哪一个?
我知道启动代码可以在 startup.s 文件位中找到我们在哪里可以找到重置处理程序?
谢谢!
【问题讨论】:
-
对于裸机系统,
startup_code == reset_code。它也被称为“引导代码”,通常将引导加载程序用于更复杂的系统。但是,启动代码是所有系统的术语,包括操作系统托管系统,如 vxWorks、Linux 等。启动代码的工作是清除 bss 并设置堆栈并调用 C++ 的静态构造函数和析构函数(在应用程序启动之前)。 “重置代码”必须执行相同的任务,但它涉及更多并且取决于所使用的硬件。即使使用操作系统,也有在main()之前运行的代码,这也称为启动代码。
标签: assembly arm microcontroller