Narzędzia użytkownika

Narzędzia witryny


studia:magisterskie:1sem:mikroprocesory

To jest stara wersja strony!


Zajęcia 3

RCC_AHB1ENR				EQU		0x40023830			;adres rejestru APB1 clock enable
GPIOG_MODER				EQU		0x40021800			;itd.
GPIOG_OTYPER			EQU		0x40021804
GPIOG_ODR				EQU		0x40021814
 
		THUMB
 
		AREA    vector_table, DATA, READONLY		;tablia wektorow przerwan  - niepelna!
 
				DCD     0x2000FFFF					;wartosc wskaznika stosu pod adresem 0x00000000
				DCD     reset_handler 				;komorka 0x00000004 - adres procedury obslugi przerwania reset
 
		ALIGN			
		AREA	program_data, DATA, READWRITE		;dane inicjowane wartoscia - tablica 8 liczb 32bitowych
 
delay_tab		DCD 0x0004, 0x0001, 0x0001, 0x0001, 0x0001
 
		ALIGN				
		AREA	program_code, CODE, READONLY		;kod programu
 
		ENTRY										;punkt wejsciowy - adres 1 instrukcji (ldr)
reset_handler				
 
 
 
				LDR		R3,= delay_tab
				LDR		R4,[R3], #4
				MOVS	R1, #0		
tab_loop
				LDR		R0,[R3], #4
				MOVS	R2, #32
main_loop
				EOR		R1, R1, R0	;R1=R1xR0
				LSR 	R0, R0, #1
				SUBS 	R2, R2, #1
				BNE		main_loop
 
				SUBS	R4, R4, #0 
				BNE		tab_loop
 
				AND 	R1, R1, #1
 
endless_loop
				B		endless_loop
 
				END

Zajęcia 4

		THUMB
 
		AREA    vector_table, DATA, READONLY		;tablia wektorow przerwan  - niepelna!
 
				DCD     0x2000FFFF					;wartosc wskaznika stosu pod adresem 0x00000000
				DCD     reset_handler 				;komorka 0x00000004 - adres procedury obslugi przerwania reset
 
		ALIGN			
		AREA	program_data, DATA, READWRITE		;dane inicjowane wartoscia - tablica 8 liczb 32bitowych
 
delay_tab		DCB 0x0004, 0x0002, 0x0001, 0x0005, 0x0001
		ALIGN				
		AREA	program_code, CODE, READONLY		;kod programu		
		ENTRY		
reset_handler		;punkt wejsciowy - adres 1 instrukcji (ldr)
		LDR		R1,=delay_tab
		LDRB	R2,[R1],#1
		MOV		R3,#0
petla_loop
		LDRB	R0,[R1],#1
		CMP		R0,R3
		IT		HI
		MOVHI	R3,R0
		SUBS	R2,R2,#1
		BNE		petla_loop
endless_loop
		B		endless_loop
		END

Zajęcia 5

RCC_AHB1ENR				EQU		0x40023830			;adres rejestru APB1 clock enable
GPIOG_MODER				EQU		0x40021800			;itd.
GPIOG_OTYPER			EQU		0x40021804
GPIOG_ODR				EQU		0x40021814
 
				THUMB
 
		AREA    vector_table, DATA, READONLY		;tablia wektorow przerwan  - niepelna!
 
				DCD     0x2000FFFF					;wartosc wskaznika stosu pod adresem 0x00000000
				DCD     reset_handler 				;komorka 0x00000004 - adres procedury obslugi przerwania reset
 
		ALIGN			
		AREA	program_data, DATA, READWRITE		;dane inicjowane wartoscia - tablica 8 liczb 32bitowych
 
delay_tab		DCB 0x0002, 0x0001, 0x0005, 0x0001
		ALIGN				
		AREA	program_code, CODE, READONLY		;kod programu		
		ENTRY		
reset_handler		;punkt wejsciowy - adres 1 instrukcji (ldr)
 
		MOV		R0,#0x0004
		LDR		R1,=delay_tab
		BL		maks		; skok do labelki maks
maks
		PUSH 	{R4, R5}	; wrzucenie na stos zeby ich nie zgubic 
		MOV		R4,#0x80000000
petla_loop
		LDRB	R5,[R1],#1	;ladowanie pierwszego elementu
		CMP		R5,R4	;porownanie
		IT		GT		
		MOVGT	R4,R5
		SUBS	R0,R0,#1
		BNE		petla_loop
		MOV 	R0, R4
		POP		{R4, R5}	;pobranie ze stosu
		BX 		LR			;skok do LR (adresu do ktorego ma wrocic funkcja)
 
endless_loop
		B		endless_loop
		nop
	END
studia/magisterskie/1sem/mikroprocesory.1459876305.txt.gz · ostatnio zmienione: 2016/04/05 19:11 przez 149.156.112.6