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

📄 changefreq.mac

📁 这是arm10上面的linux环境下的串口通信源程序,方便学习和调试
💻 MAC
字号:

	INCLUDE regClock.inc
	INCLUDE regBase.inc


; cpld register address define
FPGA_REGS_BASE_PHYSICAL		EQU			(0x08000000)
JSSR_OFFSET					EQU			(0x20)

;-----------------------------------------------------
;read hexswitch value
;-----------------------------------------------------
	MACRO
	getHexSwitch $w1, $w2

        ldr     $w2,  =FPGA_REGS_BASE_PHYSICAL
		ldr     $w1,  [$w2, #JSSR_OFFSET]
		mov     $w1,  $w1 ,LSR #8 
		and		$w1,  $w1, #0xf
        
	MEND

;-----------------------------------------------------
;read hexswitch value
;-----------------------------------------------------
; Hexswitch value:	0-3 		4-7 		8-11        12-15
; frequency:		300/200/100	400/200/100	200/200/100 xxx/400/100
 
	MACRO 
	changeFreq $w0, $w1, $w2
	
	getHexSwitch $w0, $w1

	cmp     $w0, #0x0              ; {300/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N15)
	cmp     $w0, #0x01              ; {300/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N15)
	cmp     $w0, #0x02              ; {300/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N15)
	cmp     $w0, #0x03              ; {300/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N15)

	cmp     $w0, #0x04              ; {400/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N20)
	cmp     $w0, #0x05              ; {400/200/100/100} 
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N20)
	cmp     $w0, #0x06              ; {400/200/100/100}	
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N10)
	cmp     $w0, #0x07              ; {400/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N20)

	cmp     $w0, #0x08              ; {200/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N10)
	cmp     $w0, #0x09              ; {200/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N10)
	cmp     $w0, #0x0a              ; {200/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N10)
	cmp     $w0, #0x0b              ; {200/200/100/100}
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M2 :OR: CCCR_N10)
	
	cmp     $w0, #0x0c              ; {xxx/400/100/100}	//For PXA255 only, run mode 400MHz
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M4 :OR: CCCR_N10)
	cmp     $w0, #0x0d              ; {xxx/400/100/100}	
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M4 :OR: CCCR_N10)
	cmp     $w0, #0x0e              ; {xxx/400/100/100}	
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M4 :OR: CCCR_N10)
	cmp     $w0, #0x0f              ; {xxx/400/100/100}	
	ldreq   $w2, =(CCCR_L27 :OR: CCCR_M4 :OR: CCCR_N10)
					
	ldr     $w1,  =CLOCKREGS_PHYSICAL_BASE
	str     $w2,  [$w1, #CCCR_OFFSET]

	;set cp14

	getHexSwitch $w0, $w2		; 8-15 = DOT (Run), 0-7 = !DOT(Turbo)

	cmp   $w0, #0x8         	; hex_switch
	bhi    changeover			;if run mode

	enterFCS r1		

	enterTurbo r1
	
  
	b   changeturbo
	
changeover
	mov $w1, #2             	; frequency change bit
	mcr p14, 0, $w1, c6, c0, 0	; write CCLKCFG

changeturbo

	MEND

	END

⌨️ 快捷键说明

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