Assembler v AVR GCC

C,C++,C#

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
styro
Stály člen
Stály člen
Príspevky: 137
Dátum registrácie: 14 Dec 2012, 14:10
Bydlisko: TT, BA

Assembler v AVR GCC

Príspevok od používateľa styro » 24 Dec 2015, 19:03

Vedel by mi niekto poradiť, ako pomocou AVR GCC prekladať čistý stroják? Pre android som nenašiel žiadny kompiler assembleru pre AVR procesory, ale AVR GCC tam existuje. Na PC sa hrajem v AVR Studiu, chcel by som si rovnaké programy v assembleri prekladať aj v AVR GCC na tablete.
0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Assembler v AVR GCC

Príspevok od používateľa Sender » 24 Dec 2015, 19:56

Ve vyšších programovacích jazycích je na to obvykle nějakej příkaz.V Pascalu např asm end;
Pro AVR GCC by to mělo fungovat nějak takto:
asm(
"mov r0, r0\n\t"
"mov r0, r0\n\t"
"mov r0, r0\n\t"
"mov r0, r0"
);
0

Používateľov profilový obrázok
styro
Stály člen
Stály člen
Príspevky: 137
Dátum registrácie: 14 Dec 2012, 14:10
Bydlisko: TT, BA

Re: Assembler v AVR GCC

Príspevok od používateľa styro » 24 Dec 2015, 20:47

To by síce asi išlo, ale predpokladám že by tam stále musel byt main(). Ja by som skôr potreboval vedieť, či by sa dalo priamo preložiť napr. takéto volačo:

Kód: Vybrať všetko

/*
 Kamera_1.asm
 *
 *  Created: 15.3.2013 17:25:15
 *   Author: 
 *
 * Blikac na falosnu kameru
 *   V roznych intervaloch rozsvecuje LED na prednom cele kamery
 *   Blikacie rezimy sa prepinaju stlacanim tlacitka
 *
 */ 
 ;
 		.include "tn15def.inc" 

 ; definicia registrov a portov

		.def CNT1=R17			;citace pre casove slucky
		.def CNT2=R18
		.def CNT3=R19
		.def WRK=R20			;pracovny register

		.equ LED_W=PORTB		;vystupny port pre LED (bit 4)
		.equ LED=4
		.equ DDR=DDRB			;riadenie portu pre LED a tlacitko
		.equ TLAC_R=PINB		;port tlacitka (bit 3)
		.equ TLAC=3				;bit tlacitka FIRE, prepinanie rezimov blikania


; Uvodna inicializacia procesora

		.org 0

START:
;		ldi WRK, low(RAMEND)
;		out SPL, WRK			;nastavenie SP
;		ldi WRK, high(RAMEND)
;		out SPH, WRK			;na koniec SRAM
;		ser WRK
;		out OSCCAL, WRK
		ldi WRK, 1<<LED			;bit LED vystup, ostatne vstup
;		ser WRK
		out DDR, WRK			;nastav
		ser WRK					;same 1
		out LED_W, WRK	 		;zhasni LED a pripni odpory na ostatne bity portu
;		rcall WAIT_1S			;pockaj 1 sekundu

; Hlavny program

MAIN:
		cbi LED_W, LED			;rozsviet LED
		rcall WAIT_S5
		sbi LED_W, LED			;zhasni LED
		rcall WAIT_2S
		rjmp MAIN

;Casove slucky



WAIT_5S:						;slucka 5 sekund
		ldi CNT1, 50			;napln citac
		rjmp WAIT1				;a hup ho na 100 milisekundovu slucku
WAIT_2S:						;slucka 2 sekundy
		ldi CNT1, 20			;napln citac
		rjmp WAIT1				;a hup ho na 100 milisekundovu slucku
WAIT_1S:						;slucka 1 sekunda
		ldi CNT1, 10			;napln citac
		rjmp WAIT1				;a hup ho na 100 milisekundovu slucku
WAIT_S5:						;slucka 0,5 sekundy
		ldi CNT1, 5				;napln citac
		rjmp WAIT1				;a hup ho na 100 milisekundovu slucku
WAIT_S2:						;slucka 0,2 sekundy
		ldi CNT1, 2				;napln citac a pokracuje 100 milisekundovou sluckou
WAIT1:							;slucka 100 milisekund
		ldi CNT2, 100			;napln citac
WAIT2:	clr CNT3				;256 opakovani 4 taktov pri 1MHz
WAIT3:	nop
		nop
		nop
		dec CNT3
		brne WAIT3				;256x6
		dec CNT2
		brne WAIT2				;a to 10x
		dec CNT1
		brne WAIT1
		ret


0

Sender
Pokročilý člen
Pokročilý člen
Príspevky: 535
Dátum registrácie: 26 Máj 2008, 00:00

Re: Assembler v AVR GCC

Príspevok od používateľa Sender » 24 Dec 2015, 21:49

Obvykle to funguje tak,že překladač překládá do asm a až potom do *.hex .Zkusil bych prozkoumat celý AVR GCC včetně helpu.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Assembler v AVR GCC

Príspevok od používateľa peterple » 24 Dec 2015, 22:31

GCC má assembler ktorý sa volá AS a vie preložiť mraky procesorov, ale nikdy nenasleduje syntax výrobcu. Keby si naozaj chcel použiť assembler v AVR GCC tak nech sa páči

http://www.nongnu.org/avr-libc/user-man ... e_asm.html

Ešte že si napísal prečo to vlastne chceš. Riešenie tvojho problému je iný prekladač. A to konkrétne tento:

http://avra.sourceforge.net/

Používal som ho dovtedy dokiaľ nórsky študenti nemali poriadny assembler s podmieneným prekladom, ktorý mi hodne chýbal. Behá to na win aj na linuxe. Je to dosť staré ale také nenáročné veci ako si dal to hravo zvládne. Už si presne nepamätám ako to bolo s kompatibilitou. Tuším iba niektoré direktívy sa písali inak. Už je to hodne dávno čo som to používal.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
styro
Stály člen
Stály člen
Príspevky: 137
Dátum registrácie: 14 Dec 2012, 14:10
Bydlisko: TT, BA

Re: Assembler v AVR GCC

Príspevok od používateľa styro » 25 Dec 2015, 00:57

AVRU som si pozrel, ale netuším ako by som to mohol rozbehať na androide. Vzhľadom na to že projekt skončil v roku 2010 asi ťažko.
Používanie assembleru v AVR-GCC som pozeral, ale veľmi som z toho nezmúdrel. Preto som myslel, či neexistuje človek čo by to používal a vedel by mi poradiť ako sa to dá (a či vôbec).
Aby som to zhrnul: potrebujem assemblerovský program napísaný v AVR Studiu preložiť na tablete s androidom.
0

Používateľov profilový obrázok
dxr
Ultimate člen
Ultimate člen
Príspevky: 3968
Dátum registrácie: 05 Aug 2013, 20:21
Bydlisko: V strede nicoho
Kontaktovať používateľa:

Re: Assembler v AVR GCC

Príspevok od používateľa dxr » 25 Dec 2015, 07:42

AVRA treba najprv prelozit potom pouzit :) cize najprv na andoride naistalujes kompilator pre (asi eabi) ARM
potom to prelozis a az potom pouzijes :) AVR GCC ako pisal peterple len posle block pre AS
dokonca nerobi ziadnu kontrolu. este ktomu musis pisat ten asm s encodovanymi znakmi pre koniec riadku
a nakonci mas mapovanie premmenych a registrov. A je to AT&T konvencia ide to prepnut na intel syntax.

Na tablete co pouzivas CCTools?
0
Mahátma Ghándí: „Nejdřív tě budou ignorovat. Pak se ti budou smát. Pak proti tobě budou bojovat. Potom zvítězíš.“
čo viac dodať som taký a možeš to skúsiť vyhrať aj tak to vzdáš.. Obrázok
Arduino is popular becouse allow complex task with minimum investment

Používateľov profilový obrázok
styro
Stály člen
Stály člen
Príspevky: 137
Dátum registrácie: 14 Dec 2012, 14:10
Bydlisko: TT, BA

Re: Assembler v AVR GCC

Príspevok od používateľa styro » 25 Dec 2015, 14:08

Áno, nainštaloval som tam CCTools.
Ak to nepôjde jednoducho, tak nič. Len som myslel, že kedže dokážem z tabletu aj napáliť hex súbor, mohol by som v prípade potreby aj na cestách niečo poskúšať. Ale potreboval by som, aby to išlo v syntaxe ako používa AVR Studio.
0

Napísať odpoveď