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

📄 sdram.s

📁 COG-VP12864液晶屏驱动代码及对应RTC实例
💻 S
字号:
#include "include\asm.h"#include "include\mipsreg.h"#include "include\cpureg.h"#include "include\soc.h"/* #include "cache.h" */#define SDRAM_START     0xA0000000#define SDRAM_BIT_9     0xA0000200#define SDRAM_BIT_10    0xA0000400#define SDRAM_BIT_11    0xA0000800#define SDRAM_BIT_12    0xA0001000#define SDRAM_BIT_20    0xA0100000#define SDRAM_BIT_21    0xA0200000#define SDRAM_BIT_22    0xA0400000#define SDRAM_BIT_23    0xA0800000#define SDRAM_BIT_24    0xA1000000#define SDRAM_BIT_25    0xA2000000#define SDRAM_16MB              0xA1000000 - 1#define SDRAM_32MB              0xA2000000 - 1#define SDRAM_64MB              0xA4000000 - 1#define SDRAM_128MB             0xA8000000 - 1#define CONFIG_EM_MASK  0x00c00000#define CONFIG_EP_MASK  0x0f000000#define SDTYPE_2_13_11				0xf#define	SDTYPE_2_12_11              0xb#define	SDTYPE_2_13_10              0xe#define	SDTYPE_2_12_10              0xa#define	SDTYPE_1_11_10              0x3#define	SDTYPE_2_13_9               0xd#define	SDTYPE_2_12_9               0x9#define	SDTYPE_1_11_9               0x2#define	SDTYPE_2_13_8               0xc#define	SDTYPE_2_12_8               0x8#define	SDTYPE_2_11_8               0x4#define	SDTYPE_1_11_8               0x1#define	SDTYPE_NOT_SUPPORTED        0x0#define	CC_MC_SDTYPE				0xbff807d0#define	SCU_SDRTR0	0xBFF807CA#define	SCU_SDRTR1	0xBFF807CB#define	SCU_SDRTYPE	0xBFF807D0#define	SCU_SDRMR0	0xBFF807CC#define	SCU_SDRMR1	0xBFF807CE#define	SCU_SDRMR2	0xBFF807CD#define	SCU_SDRMR3	0xBFF807CF/*e.g. CHECK_BIT_N(SDRAM_BIT_10)  if t9 == t8 ,bitn NOT exists  else bitn exists*/#define	CHECK_BIT_N(bitn)		\		nop;					\		li	t9, 0x00000055;		\		sb	t9, SDRAM_START;	\		li	t9, 0x000000aa;		\		sb	t9, bitn;			\		li	t7, SDRAM_START;	\		lb	t9, 0(t7);			\		li	t3, bitn;			\		lb	t8, 0(t7)		#define	SET_SDTYPE(sdtype)		\		li	t9,sdtype;			\		sw	t9,( CC_MC_SDTYPE )		LEAF(InitSDRAMType)	.set noreorder/**************************Try_2_13_11******************************/	Try_2_13_11:			SET_SDTYPE(SDTYPE_2_13_11)Check_bit_12:				CHECK_BIT_N(SDRAM_BIT_12)		beq	t8, t9, Try_2_13_10		nopCheck_bit_25:		nop		CHECK_BIT_N(SDRAM_BIT_25)		beq	t8, t9, Try_2_12_11		nop		li	v0,0x41		b	TestDone		nop/**************************Try_2_12_11******************************/		Try_2_12_11:		SET_SDTYPE(SDTYPE_2_12_11)Check_bit_24_1:		CHECK_BIT_N(SDRAM_BIT_24)		beq	t8, t9, SDRAM_NOT_FOUND		nop		li	v0,0x42		b	TestDone		nop/**************************Try_2_13_10******************************/		Try_2_13_10:		SET_SDTYPE(SDTYPE_2_13_10)Check_bit_11:		CHECK_BIT_N(SDRAM_BIT_11)		beq	t8, t9, Try_2_13_9		nopCheck_bit_24_2:		CHECK_BIT_N(SDRAM_BIT_24)		beq	t8, t9, Try_2_12_10		nop		li	v0,0x43		b	TestDone		nop/**************************Try_2_12_10******************************/Try_2_12_10:		SET_SDTYPE(SDTYPE_2_12_10)Check_bit_23_1:		CHECK_BIT_N(SDRAM_BIT_23)		beq	t8, t9, Try_1_11_10		nop		li	v0,0x44		b	TestDone		nop/**************************Try_1_11_10******************************/Try_1_11_10:		SET_SDTYPE(SDTYPE_1_11_10)Check_bit_22_1:		CHECK_BIT_N(SDRAM_BIT_22)		beq	t8, t9, SDRAM_NOT_FOUND		nop		li	v0,0x45		b	TestDone		nop/**************************Try_2_13_9******************************/Try_2_13_9:		SET_SDTYPE(SDTYPE_2_13_9)Check_bit_10:		CHECK_BIT_N(SDRAM_BIT_10)		beq	t8, t9, Try_2_13_8		nopCheck_bit_23_2:		CHECK_BIT_N(SDRAM_BIT_23)		beq	t8, t9, Try_2_12_9		nop		li	v0,0x46		b	TestDone		nop/**************************Try_2_12_9******************************/Try_2_12_9:		SET_SDTYPE(SDTYPE_2_12_9)Check_bit_22_2:		CHECK_BIT_N(SDRAM_BIT_22)		beq	t8, t9, Try_1_11_9		nop		li	v0,0x47		b	TestDone		nop/**************************Try_1_11_9******************************/Try_1_11_9:		SET_SDTYPE(SDTYPE_1_11_9)Check_bit_21_1:		CHECK_BIT_N(SDRAM_BIT_21)		beq	t8, t9, SDRAM_NOT_FOUND		nop		li	v0,0x48		b	TestDone		nop/**************************Try_2_13_8******************************/Try_2_13_8:		SET_SDTYPE(SDTYPE_2_13_8)Check_bit_9:		CHECK_BIT_N(SDRAM_BIT_9)		beq	t8, t9, SDRAM_NOT_FOUND		nopCheck_bit_22_3:		CHECK_BIT_N(SDRAM_BIT_22)		beq	t8, t9, Try_2_12_8		nop		li	v0,0x49		b	TestDone		nop/**************************Try_2_12_8******************************/Try_2_12_8:		SET_SDTYPE(SDTYPE_2_12_8)Check_bit_21_2:		CHECK_BIT_N(SDRAM_BIT_21)		beq	t8, t9, Try_2_11_8		nop		li	v0,0x4a		b	TestDone		nop/**************************Try_2_11_8******************************/Try_2_11_8:		SET_SDTYPE(SDTYPE_2_11_8)Check_bit_20:		CHECK_BIT_N(SDRAM_BIT_20)		beq	t8, t9, SDRAM_NOT_FOUND		nopCheck_bit_22_4:		CHECK_BIT_N(SDRAM_BIT_22)		li	v0,0x4b		beq	t8, t9, TestDone		nop/**************************Try_1_11_8******************************/Try_1_11_8:		SET_SDTYPE(SDTYPE_1_11_8)		li	v0,0x4c		b	TestDone		nopSDRAM_NOT_FOUND:		SET_SDTYPE(SDTYPE_NOT_SUPPORTED)STOP_LOOP:		b	STOP_LOOP		nopTestDone:		jr	ra		nop	.end    /* * InitSDRAM : void InitSDRAM(char c) */    LEAF(InitSDRAM).set noreorder	li	a0,SCU_SDRTR0/*	li	a1,0x1e			# 8M crystal */	li	a1,0x12			# 5M crystal	sb	a1,(a0)		li	a0,SCU_SDRTR1	li	a1,0x0	sb	a1,(a0)		li	a0,SCU_SDRTYPE	li	a1,SDTYPE_2_12_9	sb	a1,(a0)	li	a0,SCU_SDRMR0	li	a1,0x3b	sb	a1,(a0)		li	a0,SCU_SDRMR1	li	a1,0x3	sb	a1,(a0)		li	a0,SCU_SDRMR2	li	a1,0x80	sb	a1,(a0)	    j   ra    nop    .end     

⌨️ 快捷键说明

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