新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C語言程序執行的第一條指令,并不在 main 函數中

        C語言程序執行的第一條指令,并不在 main 函數中

        作者: 時間:2016-11-10 來源:網絡 收藏
        C語言程序執行第一條指令,并不在main函數中。當我們生成一個C程序的可執行文件時,編譯器總是在我們的代碼前加一段固定的代碼——crt0.o,它是編譯器自帶的一個文件。此段代碼設置C程序的堆棧等,然后調用main函數。很可惜,在我們的裸板上,這段代碼無法執行,所以我們得自己寫一個。這段代碼很簡單,只有3條指令。crt0.s代碼:

        1 .text

        本文引用地址:http://www.104case.com/article/201611/317089.htm

        2 .global _start

        3 _start:

        4ldrsp,=1024*4@設置堆棧,注意:不能大于4k(棧區是向下增長的)

        @nand flash中的代碼在復位后會自動

        @移到內部RAM(stepping stone)中,它只有4k

        5blmain@調用C程序中的main函數

        6 halt_loop:

        7bhalt_loop



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 霍邱县| 孟连| 曲松县| 类乌齐县| 凤山市| 泰和县| 吉首市| 专栏| 唐河县| 陕西省| 深水埗区| 吉木乃县| 许昌市| 樟树市| 宣汉县| 留坝县| 尼木县| 水城县| 长寿区| 樟树市| 伊春市| 大连市| 泽库县| 射洪县| 高邮市| 铜川市| 牡丹江市| 和顺县| 襄城县| 靖远县| 来凤县| 如皋市| 威远县| 台东市| 白山市| 海安县| 济宁市| 仁寿县| 什邡市| 日土县| 兴仁县|