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

📄 cp15.s

📁 ucos 在 arm9 芯片上的移植
💻 S
📖 第 1 页 / 共 2 页
字号:
	;movs 	pc, r14
	mov 	pc, r14
;*****************************************************************
;*
;* Function Name
;*    ARM_disableFIQ
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Disable FIQ interrupt for ARM  
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_disableFIQ
ARM_disableFIQ
	stmfd 	r13!, {r0-r2}

	mrs r1, cpsr
	and r2, r1, #0x1F
	cmp r2, #0x11        		; see if currently in FIQ mode
	bne disableFIQ      		; If not in FIQ mode, continue
	ldmfd r13!, {r0-r2}
        bx r14         		

disableFIQ
	orr 	r1, r1, #0x40		; disable FIQ 
	msr 	cpsr_c, r1
	ldmfd 	r13!, {r0-r2}
        ;movs 	pc, r14
	mov 	pc, r14
;*****************************************************************
;*
;* Function Name
;*    ARM_enableFIQ
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Disable FIQ interrupt for ARM  
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_enableFIQ
ARM_enableFIQ
	stmfd 	r13!, {r0-r2}

	mrs 	r1, cpsr
	and 	r2, r1, #0x1F
	cmp 	r2, #0x11       
	bne 	enableFIQ       
	ldmfd 	r13!, {r0-r2}
        bx 	r14          	
                      
enableFIQ
	bic 	r1, r1, #0x40    	; enable FIQ 
	msr 	cpsr_c, r1
	ldmfd 	r13!, {r0-r2}
        ;movs 	pc, r14
	mov 	pc, r14
;*****************************************************************
;*
;* Function Name
;*    ARM_enableICache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Enable I-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_enableICache
ARM_enableICache
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
 	mov   	r0,#0x1000
	orr   	r1, r1, r0
	nop
	nop  
	mcr   	p15, #0, r1, c1, c0, #0
	nop
	nop
	ldmfd 	r13!, {r0-r1}
        movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_disableICache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Disable I-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_disableICache
ARM_disableICache
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
	mov   	r0,#0x1000
	bic   	r1, r1, r0
	nop
	nop  
	mcr   	p15, #0, r1, c1, c0, #0
	nop
	nop
	ldmfd 	r13!, {r0-r1}
        movs 	pc, r14
;*****************************************************************
;*
;* Function Name
;*    ARM_enableDCache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Enable D-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_enableDCache

	;warning MMU must be enabled and translation table setup before 
	;data cache can be enabled
ARM_enableDCache
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
	mov   	r0,#0x0004
	orr   	r1, r1, r0
	nop
	nop  
	mcr   	p15, #0, r1, c1, c0, #0
	nop
	nop
	ldmfd 	r13!, {r0-r1}
        movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_disableDCache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Disable D-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_disableDCache
ARM_disableDCache
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
	mov   	r0,#0x0004
	bic   	r1, r1, r0
	nop
	nop  
	mcr   	p15, #0, r1, c1, c0, #0
	nop
	nop
	ldmfd 	r13!, {r0-r1}
	movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_enableMMU
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Enable MMU on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_enableMMU
ARM_enableMMU
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
	mov   	r0,#0x0001
	orr   	r1, r1, r0
	nop
	nop  
	mcr   	p15, #0, r1, c1, c0, #0
	nop
	nop
	ldmfd 	r13!, {r0-r1}
	movs 	PC, R14

;*****************************************************************
;*
;* Function Name
;*    ARM_disableMMU
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Disable MMU on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_disableMMU
ARM_disableMMU
	stmfd 	r13!, {r0-r1}
	mrc   	p15, #0, r1, c1, c0, #0
	mov   	r0,#0x0001
	bic   	r1, r1, r0
	nop  	
	nop   	
	mcr   	p15, #0, r1, c1, c0, #0
	nop   	
	nop   	
        ldmfd 	r13!, {r0-r1}
	movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_flushCache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Flush I and D-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_flushCache
ARM_flushCache
	stmfd 	r13!, {r0}
	mov 	r0,#0
	mcr   	p15, #0, r0, c7, c7, #0
	nop
	nop
	ldmfd 	r13!, {r0}
	movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_flushICache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Flush I-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_flushICache
ARM_flushICache
	stmfd 	r13!, {r0}
	mov 	r0,#0
	mcr   	p15, #0, r0, c7, c5, #0
	nop
	nop
	ldmfd 	r13!, {r0}
	movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_flushDCache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Flush D-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_flushDCache
ARM_flushDCache
	stmfd 	r13!, {r0}
	mov 	r0,#0
	mcr   	p15, #0, r0, c7, c6, #0
	nop
	nop
	ldmfd 	r13!, {r0}
	movs 	pc, r14

;*****************************************************************
;*
;* Function Name
;*    ARM_cleanDCache
;* Inputs
;*    None
;* Outputs
;*    None
;* Return Codes
;*    None
;* Description
;*   Clean D-Cache on CP15 for ARM
;* Date:
;*    2008-03-06
;*****************************************************************/
	EXPORT  ARM_cleanDCache
ARM_cleanDCache
	stmfd 	r13!, {r0}
tc_loop
	mrc 	p15, #0, r15, c7, c10, #3
	bne 	tc_loop
	nop
	nop  
	ldmfd 	r13!, {r0}
        movs 	pc, r14

	END

⌨️ 快捷键说明

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