【記錄】啓動文件

對於C程序,用戶程序通常在main函數開始,而在調用main函數之前,還需要執行一些初始化操作,主要包括軟件初始化和硬件初始化兩部分。2440的啓動文件名爲crt0.S。

軟件初始化

  1. 設置棧指針
    SP指向某塊內存,SRAMSDRAM
  2. 設置返回地址
  3. 調用main
  4. 清理工作

硬件初始化

  1. 關看門狗
  2. 初始化時鐘
  3. 初始化SDRAM
@******************************************************************************
@ File:crt0.S
@ 功能:通過它轉入C程序
@******************************************************************************       

.text
.global _start
_start:
            ldr     r0, =0x53000000     @ WATCHDOG寄存器地址
            mov     r1, #0x0                     
            str     r1, [r0]            @ 寫入0,禁止WATCHDOG,否則CPU會不斷重啓

            ldr     sp, =1024*4         @ 設置堆棧,注意:不能大於4k, 因爲現在可用的內存只有4K
                                        @ nand flash中的代碼在復位後會移到內部ram中,此ram只有4K
            bl      main                @ 調用C程序中的main函數
halt_loop:
            b       halt_loop

參考

JZ2440開發板資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章