我一直在使用C作为嵌入式系统,但我对main()函数有疑问。
当微控制器启动时,控制器首先到达复位处理程序,从那里控制转到我需要的任何功能。如果我没有使用编译器库提供的初始化代码,我可以继续调用我想要的任何函数。那么,为什么我需要main()?我的IDE(Codewarrior)坚持使用main()。有什么想法吗?
答案 0 :(得分:2)
根据C99标准,“独立”环境不具备<h6>
功能。在微控制器中,通常从复位向量调用启动初始化代码。该代码执行全局变量初始化,堆栈初始化等,然后跳转到main
函数。
您可以修改启动向量位置或启动代码本身。您可以简单地决定不从启动代码调用main函数。
如果您使用自己的启动代码,请确保您的IDE设置已正确设置为不生成启动代码。