• 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      @ 返回
  • 相关阅读:
    查看linux命令类型
    理解bashrc和profile[转载]
    问题:ldconfig
    箭头函数
    闭包函数
    方法
    手把手教你使用百度地图(图解)
    变量作用域与解构赋值
    iterable
    Map和Set
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3559857.html
Copyright © 2020-2023  润新知