C中需要main函数,用于微控制器

Need of main function in C, used in microcontrollers

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

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

根据 C99 标准,main 环境中的 main 函数不是强制性的。在微控制器中一般启动初始化代码是从reset调用vector.This代码执行全局变量初始化,堆栈初始化等然后跳转到main函数。

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

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