startup.a51中一般已经包含了main标号,初学者写汇编如果还包含启动文件,容易出现符号重定义错误。而且用汇编多半意味着编程者希望事必躬亲,从初始化到向量配置等等底层工作全部包干,这种情况下startup.a51在编程者眼中完全是垃圾。 而对于采用C/C++编写程序就是完全另一回事了。这类编程者多半对于硬件底层未见得需要了解得多么透彻,启动文件准备好了一个可预测的初始工作环境,方便高级语言在此基础上完成较为抽象的工作。
总的来说,启动文件的作用是:
1、初始化堆栈指针SP;
2、初始化程序计数器PC;
3、设置堆栈的大小;
4、设置异常向量表的入口地址;
5、设置C库的分支入口_main(最终用来调用main函数);