启动文件和2440启动方式相关知识

来源:互联网 发布:救世主大教堂知乎 编辑:程序博客网 时间:2024/05/21 08:43

   首先要对源代码进行编辑和编译,需要一个叫做启动文件的东西,它是由操作系统提供(自动生成)的,通常不为人知,今天我来为大家介绍一下启动文件和JZ2440的启动方式。


(1)启动文件包括硬件初始化和软件初始化两部分

    

软件初始化:

        <1>设置栈

        <2>设置main函数的返回地址

        <3>调用main

        <4>清理工作

注意:在<1>设置栈中,栈指针PC如果指向片内SRAM不需要进行初始化,指向片外SDRAM需要对SDRAM进行初始化 


硬件初始化:

        <1>关闭看门狗(定时器)

        <2>初始化时钟

        <3>初始化SDRAM

注意:如果不关看门狗,系统(CPU)会不断进行重启


举例:

  启动文件:


       LDR   R0,=0x53000000   //0x53000000是看门狗寄存器地址 
      MOV    R1,#0x0 
       STR    R1,[R0]      //禁止看门狗 
      LDR    SP,=1024*4   //设置堆栈(2440内部SRAM只有4K,此处不能大于4K) 
      BL     main         //调用main函数 
halt_loop:


    b       halt_loop;

bl指令 :跳转到main并把返回地址保存lr寄存器里


2440的启动方式:

               

2440的启动方式有两种:

         <1>Nand启动

              【1】前4K自动复制到片内SRAM中

              【2】CUP从SRAM的0地址执行 

        

     代码 -> Nand flash -> 片内SRAM -> 执行

    

         <2>NOR启动

              【1】0地址指向NOR flash

              【2】CPU直接从0地址执行


  


原创粉丝点击