cache.s

来自「凌阳SPCE3200多媒体开发板自带源程序。共安排了32个子目录」· S 代码 · 共 85 行

S
85
字号

//#include ".\System\SystemDefine\os_isr.h"

.text
.global CacheSelectType
.global CacheCurrType
.global DCacheInvaEtr
.global DCacheFrcWrtVa
.global DCacheFrcWrtInva

CacheSelectType:
		li		r5, 0x01
		cmp.c	r4, r5
		bne	SelectWriteThrough
		
		
	SelectWriteBack:
		mfcr	r5, cr4
		li		r7, 0x80
		andri	r6, r5, 0x80
		cmp.c	r7, r6		// Check under Write-Back mode?
		bne		ToggleWBFnc
		
		br		r3
		
	SelectWriteThrough:
		mfcr	r5, cr4
		li		r7, 0x80
		andri	r6, r5, 0x80
		cmp.c	r7, r6		// Check under Write-Back mode?
		beq		ToggleWBFnc
		
		br		r3
		
	ToggleWBFnc:
		la		r7, ToggleWBFnc
		cache	0x1F, [r7, 0]	// force write out dirty entry and set invalid
		nop
		nop
		nop
		cache	0x1D, [r7, 0]	// toggle write-back function
		
		br		r3
		
		
		
CacheCurrType:
		mfcr	r5, cr4
		li		r7, 0x80
		andri	r6, r5, 0x80
		cmp.c	r7, r6		// Check under Write-Back mode?
		bne	WriteThroughMode
		
		li		r4, 0x01	// Write-Back Mode
		br		r3
		
	WriteThroughMode:
		li		r4, 0x00	// Write-Through Mode
		br		r3
		
		
		

DCacheInvaEtr:
		la		r4, DCacheInvaEtr
		cache	0x18, [r4,0]
		br r3

DCacheFrcWrtVa:
		la		r4, DCacheFrcWrtVa
		cache	0x1E, [r4,0]
		br r3

DCacheFrcWrtInva:
		la		r4, DCacheFrcWrtInva
		cache	0x1F, [r4,0]
		cache	0x18, [r4,0]
		br r3
	

	



⌨️ 快捷键说明

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