⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 romstart.s

📁 武汉创维特ARM7实验箱的全部源代码
💻 S
📖 第 1 页 / 共 2 页
字号:
#/*************************************************************************/
#/*                                                                       */
#/*     FILE                                        VERSION               */
#/*                                                                       */
#/*      romstart.s                              S3C44B0X 1.00            */
#/*                                                                       */
#/* Project name: UCLinux Boot Loader for S3C44B0X Main board             */
#/* Description:				                                          */
#/*	     Board initialization codes     	                              */
#/*	                    --  Configure Memory                              */
#/*                     --  Initialize Ports                              */
#/*                     --  ISR                                           */
#/*                     --  Stacks                                        */
#/*                                                                       */
#/* AUTHOR                                                                */
#/*                                                                       */
#/*      ShangJun,Liu                                                     */
#/* DATE:                                                                 */
#/*      2003-06-07                                                       */
#/*                                                                       */
#/* HISTORY                                                               */
#/*                                                                       */
#/*         NAME            DATE                    REMARKS               */
#/*         ShangJun Liu    2003-06-06 13:10                              */
#/*         ShangJun Liu    2003-10-22 08:25                              */
#/*************************************************************************/

#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     I/O PORT                                                          */
#/*************************************************************************/
.equ rBWSCON     ,	0x01C80000   /* bus width and wait status control */
.equ rBANKCON0   ,	0x01C80004   /* Boot ROM Control */
.equ rBANKCON1   ,	0x01C80008   /* BANK1 Control */
.equ rBANKCON2   ,	0x01C8000c   /* BANK2 Control */
.equ rBANKCON3   ,	0x01C80010   /* BANK3 Control */
.equ rBANKCON4   ,	0x01C80014   /* BANK4 Control */
.equ rBANKCON5   ,	0x01C80018   /* BANK5 Control */
.equ rBANKCON6   ,	0x01C8001c   /* BANK6 Control */
.equ rBANKCON7   ,	0x01C80020   /* BANK7 Control */
.equ rREFRESH    ,	0x01C80024   /* DRAM/SDRAM Refresh Control */
.equ rBANKSIZE   ,	0x01C80028   /* Flexible Bank Size */
.equ rMRSRB6     ,	0x01C8002c   /* Mode Register set for SDRAM */
.equ rMRSRB7     ,	0x01C80030   /* Mode Register set for SDRAM */

.equ rPCONA      ,	0x01d20000   /* Port A */
.equ rPDATA	     ,	0x01d20004

.equ rPCONB      ,	0x01d20008   /* Port B */
.equ rPDATB      ,	0x01d2000c

.equ rPCONC      ,	0x01d20010   /* Port C */
.equ rPDATC      ,	0x01d20014
.equ rPUPC       ,	0x01d20018

.equ rPCOND      ,	0x01d2001c   /* Port D */
.equ rPDATD      ,	0x01d20020
.equ rPUPD       ,	0x01d20024

.equ rPCONE      ,	0x01d20028   /* Port E */
.equ rPDATE      ,	0x01d2002c
.equ rPUPE       ,	0x01d20030

.equ rPCONF      ,	0x01d20034   /* Port F */
.equ rPDATF      ,	0x01d20038
.equ rPUPF       ,	0x01d2003c

.equ rPCONG      ,	0x01d20040   /* Port G */
.equ rPDATG      ,	0x01d20044
.equ rPUPG       ,	0x01d20048

.equ rSPUCR      ,	0x01d2004c   /* Special Pull-Up Registor Control Register */
.equ rEXTINT     ,	0x01d20050   /* External Interrupt Control Register */

#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     Interrupt Control                                                 */
#/*************************************************************************/
.equ INTCON     ,   0x01e00000
.equ INTPND	    ,	0x01e00004
.equ INTMOD	    ,	0x01e00008
.equ INTMSK	    ,	0x01e0000c
.equ I_ISPR	    ,	0x01e00020
.equ I_CMST	    ,	0x01e0001c
.equ I_PMST	    ,	0x01e00014

#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     Watchdog timer                                                    */
#/*************************************************************************/
.equ WTCON	    ,	0x01d30000

#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     Clock Controller                                                  */
#/*************************************************************************/
.equ PLLCON	    ,	0x01d80000
.equ CLKCON	    ,	0x01d80004
.equ LOCKTIME   ,	0x01d8000c
	
#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     Memory Controller                                                 */
#/*************************************************************************/
.equ REFRESH	    , 0x01c80024

#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     System configuration                                              */
#/*************************************************************************/
.equ SYSCFG	    , 0x01c00000
.equ NCACHBE0   , 0x01c00004
.equ NCACHBE1   , 0x01c00008


#/*************************************************************************/
#/* Constant Definitions                                                  */
#/*     Pre-defined constants                                             */
#/*************************************************************************/
.equ USERMODE    ,	0x10
.equ FIQMODE	 ,	0x11
.equ IRQMODE	 ,	0x12
.equ SVCMODE	 ,	0x13
.equ ABORTMODE   ,	0x17
.equ UNDEFMODE   ,	0x1b
.equ MODEMASK    ,	0x1f
.equ NOINT	     ,	0xc0

.equ TIMER0_INT  ,     0x00002000

.equ LOCKOUT	 ,		0xC0		/* Interrupt lockout value */
.equ LOCK_MSK	 ,		0xC0		/* Interrupt lockout mask value */
.equ MODE_MASK	 ,		0x1F		/* Processor Mode Mask */
.equ SUP_MODE	 ,		0x13		/* Supervisor Mode (SVC) */

.equ VECTOR_TABLE        ,   0x0c032000 /* just 16M Bytes SDRAM. */
.equ VIRTUAL_TABLE       ,   0x0c032000 /* just 16M Bytes SDRAM. */

.equ _ISR_STARTADDRESS   ,   0x0c7fff00 /*GCS6(nSCS0):16MByte SDRAM */
        
#/*************************************************************************/
#/* Import Modules                                                        */
#/*************************************************************************/
	.extern  HandlerIRQ
	.extern	Image_ZI_Base
	.extern	Image_ZI_Limit
	.extern	Image_RO_Base
	.extern	Image_RO_Limit
	.extern	Image_RW_Base
	.extern	C_data_Base
	.extern	C_data_Limit
	
	.extern	copy_code_to_ram
 
#/*************************************************************************/
#/* Entry of target                                                       */
#/*************************************************************************/
#		ENTRY
__entry :
		/* Jump to uclinux vector */
		B       ResetHandler                    /* for reset vector      */
		LDR     PC, =0x0c00000c                 /* Undefined instruction */
		LDR     PC, =0x0c000010		            /* SWI                   */
		LDR     PC, =0x0c000014        	    	/* Prefetch abort        */
		LDR     PC, =0x0c000018          		/* Data abort            */
		LDR     PC, =0x0c00001c         		/* Address exception     */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -