2440的启动方式

betball贝博app 嵌入式linux 389 次浏览 没有评论

Nand启动

芯片内部有4k的SRAM(性能很好,但是很贵),外接了64MB的SDRAM和很大的Nand Flash

  • Nand启动模式中,上电时Nand Flash的前4K的内容会自动拷贝到芯片内部的4K SRAM中,SRAM的起始地址为0
  • CPU从0地址开始执行
  • 可以像内存一样读数据,但是不能写(先擦除再写入)
  • Nor启动

    配套的开发板没有Nor Flash,CPU可以外接Nor Flash

  • Nor Flash是类似串行接口,0地址在Nor Flash
  • CPU从0地址开始执行
  • 假设2440接了NOR和Nand两个存储器,Nor启动时,CPU访问的零地址指向BANK0,CPU会从NOR Flash开始执行。Nand启动时,Bank0失效,Nor Flash无法使用,零地址指向片内SRAM(stepping stone),其中的内容为Nand前4K的内容,然后从零地址开始运行。

    若程序大于4K时,大于4K的内容要从NorFlash中拷贝到SDRAM,然后从SDRAM中执行程序。

    crt0.s为启动文件

    启动文件要做的事情:

  • 硬件初始化(1.关闭开门狗2.初始化时钟3.初始化SDRAM) 然后进行软件初始化
  • 设置栈(将SP指针指向某块内存),如果使用的是SDRAM,需要初始化
  • 设置main函数的返回地址
  • 调用main函数
  • 清理工作
  • 链接地址:运行时,程序应该存放的位置。

    发表评论

    邮箱地址不会被公开。

    Go