MAIN函数同样是被人调用,也同样须要返回。咱们一般在启动代码中完成这一工做,而启动代码通常出于效率高的目的都以汇编语言编写。函数
在main函数以前,须要写启动文件,完成的功能包括:(1)设置栈;(2)设置main的返回地址;(3)调用main;(4)返回到指定地址后,清理工做。指针
所谓设置栈,就是将栈指针指向某块内存;若是内存是SRAM,则不须要初始化即能使用,若是不是片内SRAM,而是SDRAM,则在此以前还须要初始化SDRAM。同时,在此,不单单须要初始化SDRAM,还有其它相关硬件初始化。具体包括:关看门狗;初始化时钟;初始化SDRAM。这些都是在关硬件初始化。内存
而一开始所说的设置栈,设置main返回地址等等都是软件初始化。效率
硬件初始化至少包括关看门狗;初始化时钟;软件
硬件初始化与软件初始化共同完成启动文件。硬件