RSS

Samsung原版44B0X的Bootloader分析(2)

来源:网络 作者:匿名 时间:2007-01-06 Tag: 点击:

4)宏调用

通过了这部分的程序,我们可以发现,在每一个IRQ中断的入口地址处,都写入了一个与其相关联的IRQ服务程序的地址。

下面是具体的中断处理函数跳转的宏,通过上面的$HandlerLabel的宏定义展开后跳转到对应的中断处理函数(ISR)处理中断(对于向量中断)

HandlerFIQ            HANDLER HandleFIQ

HandlerIRQ           HANDLER HandleIRQ

HandlerUndef  HANDLER HandleUndef

HandlerSWI           HANDLER HandleSWI

HandlerDabort HANDLER HandleDabort

HandlerPabort HANDLER HandlePabort

HandlerADC          HANDLER HandleADC

HandlerRTC           HANDLER HandleRTC

HandlerUTXD1      HANDLER HandleUTXD1

HandlerUTXD0      HANDLER HandleUTXD0

HandlerSIO            HANDLER HandleSIO

HandlerIIC             HANDLER HandleIIC

HandlerURXD1      HANDLER HandleURXD1

HandlerURXD0      HANDLER HandleURXD0

HandlerTIMER5     HANDLER HandleTIMER5

HandlerTIMER4     HANDLER HandleTIMER4

HandlerTIMER3     HANDLER HandleTIMER3

HandlerTIMER2     HANDLER HandleTIMER2

HandlerTIMER1     HANDLER HandleTIMER1

HandlerTIMER0     HANDLER HandleTIMER0

HandlerUERR01     HANDLER HandleUERR01

HandlerWDT         HANDLER HandleWDT

HandlerBDMA1      HANDLER HandleBDMA1

HandlerBDMA0      HANDLER HandleBDMA0

HandlerZDMA1      HANDLER HandleZDMA1

HandlerZDMA0      HANDLER HandleZDMA0

HandlerTICK         HANDLER HandleTICK

HandlerEINT4567  HANDLER HandleEINT4567

HandlerEINT3 HANDLER HandleEINT3

HandlerEINT2 HANDLER HandleEINT2

HandlerEINT1 HANDLER HandleEINT1

HandlerEINT0 HANDLER HandleEINT0

结合1中的代码:

VECTOR_BRANCH

    ldr pc,=HandlerEINT0    ;mGA    H/W interrupt vector table 0x0000 0020

。。。。。。

我们很容易发现,这里通过向PC赋值的方法,直接跳转到处理HandlerEINT0的程序处

3.设置存储相关寄存器的程序

主要设置SDRAM,flash ROM 存储器连接和工作时序的程序,以及片选定义的程序;SMRDATA map在下面的程序中定义 ;SMRDATA中涉及的值请参考memcfg.s程序 ;具体寄存器各位含义请参考S3C44B0X Specification

  

;****************************************************

    ;*    Set memory control registers               *    

    ;****************************************************

    ldr       r0,=SMRDATA

    ldmia   r0,{r1-r13}

    ldr       r0,=0x01c80000  ;BWSCON Address

    stmia   r0,{r1-r13}

这是上面提到的对存储寄存器初始化的数据映射表(DATA Map)

SMRDATA DATA

       DCD 0x11110090   ;Bank0=OM[1:0], Bank1~Bank7=16bit, bank2=8bit;

      DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC))    ;GCS0

       DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC))    ;GCS1

       DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC))    ;GCS2
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点