3

我已经将 C 用于嵌入式系统有一段时间了,但我对 main() 函数有疑问。

当微控制器启动时,控制首先到达复位处理程序,控制从那里转到我需要的任何功能。如果我不使用编译器库提供的​​初始化代码,我可以继续调用我想要的任何函数。那么,为什么我需要 main()?我的 IDE(Codewarrior)坚持使用 main()。有任何想法吗?

4

1 回答 1

2

根据 C99 标准main,“独立”环境的功能不是强制性的。在微控制器中,通常从复位向量调用启动初始化代码。该代码执行全局变量初始化、堆栈初始化等,然后跳转到main函数。

您可以修改启动向量位置或启动代码本身。您可以简单地决定不从启动代码中调用 main 函数。

如果您使用自己的启动代码,请确保您的 IDE 设置正确设置为不生成启动代码。

于 2015-06-25T10:06:22.317 回答