您当前的位置:五五电子网电子知识单片机-工控设备源码-程序ARM启动代码研究(附源代码) 正文
ARM启动代码研究(附源代码)

ARM启动代码研究(附源代码)

点击数:7935 次   录入时间:03-04 12:03:42   整理:http://www.55dianzi.com   源码-程序
;** 
;** Created by   作 者:  Chenmingji 陈明计
;** Created Date  日 期:  2004/02/02 2004年2月2日
;**-------------------------------------------------------------------------------------------------------
;** Modified by  修 改: Chenmingji 陈明计
;** Modified date  日 期: 2004/02/02 2004年3月3日
;**-------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
ResetInit
;初始化外部总线控制器,根据目标板决定配置
;
;           LDR     R0, =PINSEL2
;   IF :DEF: EN_CRP
;        LDR     R1, =0x0f814910
;    ELSE
;        LDR     R1, =0x0f814914
;    ENDIF
;        STR     R1, [R0]

        LDR     R0, =BCFG0
        LDR     R1, =0x1000ffef           ;0x00001046
        STR     R1, [R0]

        LDR     R0, =BCFG1
        LDR     R1, =BCFG_CS3               ;0x1000ffef          ;0x1000ffef;;
        STR     R1, [R0]

        LDR     R0, =BCFG2
        LDR     R1, =0x2000ffef
        STR     R1, [R0]

;        LDR     R0, =BCFG3
;        LDR     R1, =0x00000CA0           ;0x2000ffef
;        STR     R1, [R0]
               
        BL      InitStack               ;初始化堆栈 Initialize the stack
        BL      TargetResetInit         ;目标板基本初始化 Initialize the target board
                                        ;跳转到c语言入口 Jump to the entry point of C program
      
        B       __main

;/*********************************************************************************************************
;** unction name  函数名称:  __user_initial_stackheap
;** Descriptions  功能描述:  Initial the function library stacks and heaps, CAN not deleted!   库函数初始化堆和栈,不能删除
;** input parameters  输 入:    reference by function library 参考库函数手册
;** Returned value    输 出 :   reference by function library 参考库函数手册
;** Used global variables 全局变量:  None 无
;** Calling modules  调用模块:  None 无
;** 
;** Created by   作 者:  Chenmingji 陈明计
;** Created Date  日 期:  2004/02/02 2004年2月2日
;**-------------------------------------------------------------------------------------------------------
;** Modified by  
;** Modified date  
;**-------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
__user_initial_stackheap    
    LDR   r0,=bottom_of_heap
;    LDR   r1,=StackUsr
    MOV   pc,lr

StackSvc           DCD     SvcStackSPACe + (SVC_STACK_LEGTH - 1)* 4
StackIrq           DCD     IrqStackSpace + (IRQ_STACK_LEGTH - 1)* 4
StackFiq           DCD     FiqStackSpace + (FIQ_STACK_LEGTH - 1)* 4
StackAbt           DCD     AbtStackSpace + (ABT_STACK_LEGTH - 1)* 4
StackUnd           DCD     UnDTStackSpace + (UND_STACK_LEGTH - 1)* 4

;/*********************************************************************************************************
;** unction name  函数名称:  CrpData
;** Descriptions  功能描述:  encrypt the chip
;** input parameters  输 入:    None 无
;** Returned value    输 出 :   None 无
;** Used global variables 全局变量:  None 无
;** Calling modules  调用模块:  None 无
;** 
;** Created by   作 者:  Chenmingji 陈明计
;** Created Date  日 期:  2004/03/27 2004年3月27日
;**-------------------------------------------------------------------------------------------------------
;** Modified by  修 改: 
;** Modified date  日 期: 
;**-------------------------------------------------------------------------------------------------------
;********************************************************************************************************/
    IF :DEF: EN_CRP
        IF  . >= 0x1fc
        INFO    1," The data at 0x000001fc must be 0x87654321. Please delete some source before this line."
        ENDIF
CrpData
    WHILE . < 0x1fc
    NOP
    WEND
CrpData1
    DCD     0x87654321          ;/*When the Data is 为0x87654321,user code be protected. 当此数为0x87654321时,用户程序被保护 */
    ENDIF
    
;/* 分配堆栈空间 */
        AREA    MyStacks, DATA, NOINIT, ALIGN=2
SvcStackSpace      SPACE   SVC_STACK_LEGTH * 4  ;Stack spaces for Administration Mode 管理模式堆栈空间
IrqStackSpace      SPACE   IRQ_STACK_LEGTH * 4  ;Stack spaces for Interrupt ReQuest Mode 中断模式堆栈空间
FiqStackSpace      SPACE   FIQ_STACK_LEGTH * 4  ;Stack spaces for Fast Interrupt reQuest Mode 快速中断模式堆栈空间

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:源代码  源码-程序单片机-工控设备 - 源码-程序

《ARM启动代码研究(附源代码)》相关文章>>>