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

📄 meminit.s

📁 嵌入式开发的实例
💻 S
字号:
;**************************************************************************************************
;*                                                                          
;* Copyright (c) 2001 - 2003 Winbond Electronics Corp. All rights reserved.      
;*                                                                         
;* FILENAME
;*     meminit.s
;*
;* VERSION
;*     1.0
;*
;* DESCRIPTION
;*     This program demonstrates how to initial W90N740 Memory controller. It will to loaded to 
;*     the on-chip RAM (0xFFE00000) for executing.
;*
;* DATA STRUCTURES
;*     None
;*
;* FUNCTIONS
;*     None
;*
;* HISTORY
;*     04/10/2003		 Created by PC30 WSChang
;*
;*     04/21/2003        V1.0 Modified by PC30 MNCheng
;*
;* REMARK
;*     None
;*     
; *************************************************************************************************

regPDID		EQU		0xFFF00000	;Product Identifier Register

;*********************************************************************************************
;*
;* EBI Control Registers
;*
;*********************************************************************************************
regEBICON	EQU		0xFFF01000	;EBI control register 
regROMCON	EQU		0xFFF01004	;ROM/FLASH control register 
regSDCONF0	EQU		0xFFF01008	;SDRAM bank 0 configuration register 
regSDCONF1	EQU		0xFFF0100C	;SDRAM bank 1 configuration register 
regSDTIME0	EQU		0xFFF01010	;SDRAM bank 0 timing control register  
regSDTIME1	EQU		0xFFF01014	;SDRAM bank 1 timing control register  
regEXT0CON	EQU		0xFFF01018	;External I/O 0 control register 
regEXT1CON	EQU		0xFFF0101C	;External I/O 1 control register 
regEXT2CON	EQU		0xFFF01020	;External I/O 2 control register  
regEXT3CON	EQU		0xFFF01024	;External I/O 3 control register 
regCKSKEW	EQU		0xFFF01F00	;Clock skew control register 

    
	AREA MEM_INIT, CODE, READONLY
	ENTRY
	
; Set up the bootROM & DRAM Bank0 & DRAM Bank1
 	LDR	r0, =MEM_CONFG   ; point the parameters address
	LDR	r1, =regEBICON   ; point to the registers address
	LDMFD	r0,{r2-r7}   ; load the parameters
	STMIA	r1,{r2-r7}   ; write to the registers

; Set up External Bank 0
	LDR	r0,=0x08003FFE   ; base=0x4000000, size=256KB, 16-bit
	LDR	r1,=regEXT0CON
	STR	r0,[r1]
	
; Set up other External Banks if necessary
	;;;

; Adjust clock skew

    ; Check version number of W90N740 to set the clock skew
    LDR		r0, =regPDID     ; Product Identifier Register
    LDR		r0, [r0]    
    LDR		r1, =0x3F000000  ; bit 29 ~ 24
    ANDS	r0,r0,r1
    BEQ		version0
    LDR		r1, =0x01000000
    CMP		r0, r1
    BEQ		version1
    B		unknow_version
version0
	LDR		r0, =0x0FF007A
    B		update_clkskew
version1    
	LDR		r0, =0x0FF0039
    B		update_clkskew
update_clkskew
	LDR		r1, =regCKSKEW
	STR		r0,[r1]		
unknow_version
	
	
	MOV		r0,#0x18
	SWI		0x123456  ; exit
	
0	B	%0

MEM_CONFG
	DCD	0x000509c0    ; EBICON : auto-refresh, clock enable
	DCD	0xfe020FF0    ; ROMCON : base=0x7F000000, size=1MB, 
	DCD	0x000090e3    ; SDCONF0: base=0, size=8MB, 32-bit, col=10
	DCD	0x00000000    ; SDCONF1: disabled.
	DCD	0x00000292    ; SDTIME0: tRCD=3, tRDL=3, tRP=3, tRAS=3 MCLKs
	DCD	0x00000000    ; SDTIME1: N/A

	END
		

⌨️ 快捷键说明

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