main函数之前的事(略)

  MAIN函数一样是被人调用,也一样需要返回。我们通常在启动代码中完成这一工作,而启动代码一般出于效率高的目的都以汇编语言编写。

  在main函数之前,需要写启动文件,完成的功能包括:(1)设置栈;(2)设置main的返回地址;(3)调用main;(4)返回到指定地址后,清理工作。

  所谓设置栈,就是将栈指针指向某块内存;如果内存是SRAM,则不需要初始化即能使用,如果不是片内SRAM,而是SDRAM,则在此之前还需要初始化SDRAM。同时,在此,不仅仅需要初始化SDRAM,还有其它相关硬件初始化。具体包括:关看门狗;初始化时钟;初始化SDRAM。这些都是在关硬件初始化。

  而一开始所说的设置栈,设置main返回地址等等都是软件初始化。

  硬件初始化至少包括关看门狗;初始化时钟;

  硬件初始化与软件初始化共同完成启动文件。

原文地址:https://www.cnblogs.com/dudu1990/p/3393276.html