JZ2440开发笔记(7)——2440启动方式

  JZ2440的启动方式有两种,一种是从NOR FLASH中启动,还有一种就是从NAND FLASH中启动。

  如果从NOR FLASH启动,CPU会访问NOR FLASH的0地址,而0地址位于BANK0。

  如果从NAND FLASH启动,由于NAND FLASH地址和数据共用总线,因此BANK0失效,此时0地址访问片内的SRAM,CPU会把NAND的前4K完全拷贝到片内SRAM,然后从0地址运行。

  

  当2440上电时,NAND的前4K程序拷贝到SRAM中的0地址处,程序首先关闭看门狗,然后初始化存储管理器,最后将SRAM中的程序拷贝到SDRAM中,继续执行。如果NAND中的程序大于4K,那么SDRAM中的程序又会将NAND FLASH中的其它程序拷贝到SDRAM中。

  

.equ        SDRAM_BASE,         0x30000000
copy_steppingstone_to_sdram:
    @ 将SRAM的4K数据全部复制到SDRAM中去
    @ SRAM起始地址为0x00000000,SDRAM中起始地址为0x30000000
    
    mov r1, #0
    ldr r2, =SDRAM_BASE
    mov r3, #4*1024
1:  
    ldr r4, [r1],#4     @ 从SRAM读取4字节的数据,并让源地址加4
    str r4, [r2],#4     @ 将此4字节的数据复制到SDRAM中,并让目地地址加4
    cmp r1, r3          @ 判断是否完成:源地址等于SRAM的末地址
    bne 1b              @ 若没有复制完,继续
    mov pc,     lr      @ 返回
原文地址:https://www.cnblogs.com/zjzsky/p/3559857.html