MAIN函數同樣是被人調用,也同樣須要返回。咱們一般在啓動代碼中完成這一工做,而啓動代碼通常出於效率高的目的都以彙編語言編寫。函數
在main函數以前,須要寫啓動文件,完成的功能包括:(1)設置棧;(2)設置main的返回地址;(3)調用main;(4)返回到指定地址後,清理工做。指針
所謂設置棧,就是將棧指針指向某塊內存;若是內存是SRAM,則不須要初始化即能使用,若是不是片內SRAM,而是SDRAM,則在此以前還須要初始化SDRAM。同時,在此,不單單須要初始化SDRAM,還有其它相關硬件初始化。具體包括:關看門狗;初始化時鐘;初始化SDRAM。這些都是在關硬件初始化。內存
而一開始所說的設置棧,設置main返回地址等等都是軟件初始化。效率
硬件初始化至少包括關看門狗;初始化時鐘;軟件
硬件初始化與軟件初始化共同完成啓動文件。硬件