Show Posts
Pages: [1] 2 3 ... 10
1  International / Software / Re: Assembly inline on: August 08, 2012, 05:46:37 pm
Eccomi qua, niente non funziona, compila senza errori, ma l'hex generato, flashato, non produce nessun risultato.  smiley-sad
A me sembra che sia tutto ok, ma a quanto pare sbaglio qualcosa, o qualche errore grossolano oppure manca qualche libreria che credo invece inclusa.
Per arrivare a questo punto ho dovuto mettere la cartella driver e la cartella tvtext in libraries e lo sketch nella sketchfolder

Posto l'archivio contenente i file modificati e l'output generato in compilazione, intanto continuo a sbatterci la testa, ma a questo punto la vedo dura, comunque, sto cercando di compilare i sorgenti scaricati dal sito benryves con avrstudio 5 ed anche li da numerosi errori, mah!
2  International / Software / Re: Assembly inline on: August 07, 2012, 04:32:53 pm
Scusate, ma stavo usando una versione del file che non includeva il file di configurazione, questi gli errori:

C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S: Assembler messages:
C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S:38: Error: register name or number from 0 to 31 required
C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S:148: Error: constant value required
C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S:189: Error: constant value required
C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S:191: Error: constant value required
C:\Users\Francesco\Documents\Arduino\libraries\driver\driver.S:289: Error: constant value required

 smiley
3  International / Software / Re: Assembly inline on: August 07, 2012, 03:16:09 pm
Eccomi, credo di esserci, o quasi..
Per arrivare a questo punto ho dovuto mettere il file .h della chiamata esterna e il file .S contenente assembly nella cartella library/driver, il resto della libreria è nella cartella dello sketch, grazie per avermi schiarito un po' le idee, tra le altre avevo confuso la possibilità di aprire un tab .S (non possibile) con l'effettiva compilazione dello stesso in caso di chiamata, comunque, ricevo una miriade di errori, ma almeno ho capito che prova a compilare.
Gli errori:[cancellato]
Il file l' ho postato sopra se volete dare un occhiata.
Grazie.
4  International / Software / Re: Compilare sorgenti IDE Arduino - win on: August 05, 2012, 06:01:12 pm
Si quelle istruzioni le ho seguite, ti ripeto compila la 10 e la 101, ma non parte l'exe, quando sto al pc ti posto il link da cui ho scaricato i sorgenti della 0017, grazie.
5  International / Software / Re: Compilare sorgenti IDE Arduino - win on: August 05, 2012, 09:59:57 am
Ti segnalo questo mio post:
http://arduino.cc/forum/index.php/topic,111451.msg838050.html#msg838050

L'ho scritto principalmente per Linux ma ci sono un paio di link ad integrazioni per Windows

Grazie Leo, io li ci sono, la 1 l'ho compilata seppur non funzionante, posso lanciare ant sia da shell win sia da cygwin, il fatto è che nella cartella build della 0017 non c'è build.xml, ora non sono al pc, ma dovrei ricevere errore file build.xml mancante quando lancio ant.
L' unica cosa che non ho fatto è settare la var d'ambiente ANT_OPTS, grazie.
6  International / Software / Re: Compilare sorgenti IDE Arduino - win on: August 05, 2012, 09:36:26 am
 La domanda sull'assembly inline è un altra cosa, ad essere sincero il tuo link non l'avevo visto, avevo letto un altro post in cui avevo capito che serviva modificare il codice sorgente, invece la 0017 a quanto pare già prevede la possibilità di compilare .S file faccio un po' di prove, grazie.
7  International / Software / Re: Compilare sorgenti IDE Arduino - win on: August 05, 2012, 07:27:47 am
No, io non ho mai ricompilato l'IDE.
Però se spieghi il motivo per cui ti serve ricompilare la 0017, forse possiamo trovare una soluzione alternativa.
La 0017 la trovi su --> http://arduino.cc/en/Main/Software --> http://files.arduino.cc/downloads/arduino-0017.zip

Io vorrei riuscire ad aprire nell'ide un file .S, a quanto pare nelle vecchie versioni dell'ide era possibile, ma non trovo riscontro, comunque esiste luminair già pronto solo che quando avvio l'exe, windows passa da aero a basic e non succede altro, così visto che quello che serve a me è modificare un pezzettino in una riga, ho pensato di farlo da solo e ricompilare.
Solo per preparare l'ambiente ho tribolato parecchio, di Java non so nulla, ma visto che si tratta solo di ricreare l'eseguibile, mi sono imbarcato.
Ora nella versione 1 o 101, non ricordo adesso, è presente un file build, su cui fare ant (come detto compila, ma dopo lo splash niente) mentre nella 0017 questo file non c'è, e non so proprio come fare.
È sempre possibile aprire il .classpath in eclipse, ma non riesco a fargli riconoscere ant, quindi pure li niente.
8  International / Software / Compilare sorgenti IDE Arduino - win on: August 05, 2012, 04:54:42 am
Come da titolo vorrei sapere se qualcuno compila l'ide da windows, ho provato a compilare con ant la versione 1.0, build success, ma quando avvio il file arduino.exe nella cartella work, dopo lo splash screen crasha.
Ora il problema più grande è che devo compilare la 0017 e nel pacchetto che ho scaricaro il file build.xml è mancante! C'è un altro modo oppure devo generare quel file in un altro modo?
La prova con la 1.0 era solo per vedere se java e ant erano installati correttamente.
Voi avete mai ricompilato??
9  International / Software / Re: Assembly inline on: August 01, 2012, 06:41:25 pm
Eccomi qua, ho scaricato i sorgenti, trovato i files da modificare, ora, scusate la domanda, quale è il file da compilare?? ci capisco veramente troppo poco di java..
Abbiate pazienza!!
10  International / Software / Re: Assembly inline on: July 31, 2012, 07:31:25 pm
Grazie ci ero arrivato anche io, adesso sono al lavoro col cellulare, domani scarico i sorgenti, quello è l'ultimo tentativo, inserire tutto quell'assembly inline a patto che venga compilato è troppo difficile per me, luminair (versione mod dell'ide che accetta file .S) crasha apena avviato.
Grazie dell'interessamento comunque, ci aggiorniamo, ciao!
11  International / Software / Re: Assembly inline on: July 31, 2012, 07:13:56 am
Grazie Mauro, volevo chiederti, magari mi sono perso io qualche pezzo, questi file Target, Compiler dovrebbero essere comunque in una sottocartella della IDE Arduino-00XX ??
Io non li trovo proprio, ho esaminato cartella per cartella la 0022 e la 0023 e non ci sono, tu hai parlato di sorgenti, sono fuori strada?
12  International / Software / Re: Assembly inline on: July 30, 2012, 06:31:35 pm
Stavo vedendo proprio quello, ma mannaggia non trovo il file da modificare, dal forum:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1222355444
I am using .S assembler files in my core. follower is right, you have to modify you IDE.
A first step is to find this line in Target.java:
if (files.endsWith(".c") || files.endsWith(".cpp"))
and replace it with this line:
if (files.endsWith(".S") || files.endsWith(".c") || files.endsWith(".cpp"))
and then you have to modify the Compiler.java and get the .S files into the build process.
I have a modified Arduino IDE that can compile the assembler files, I will try to create a patch if you are still interested.

sarebbe l'ideale, ma il file Target.java non lo trovo..
13  International / Software / Re: Assembly inline on: July 30, 2012, 05:36:37 pm
non credo che basti mettere tutto tra parentesi, ogni comando deve essere tra " ", ma devono essere nei posti giusti!!, il codice c'è, devo provare a renderlo digeribile e vedere che succede, secondo me è tutto qua, alla fine è scritto in C per essere flashato su un 168, provato sul 328p l'hex va benissimo, magari creare una versione a 16mhz..
leo sei una garanzia!
14  International / Software / Re: Assembly inline on: July 30, 2012, 05:26:53 pm
Code:
output_scanline_loop:                                ; Clock out the rest of the scanline.

; (6)
nop                                              ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]

.ifeq TVTEXT_CHARACTER_WIDTH-8

; Shift out an extra two pixels.
rjmp .                                           ; [2] <- [2] after.

; (7)
nop                                              ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
.if TVTEXT_SQUASHED_HORIZONTALLY
nop                                              ; [1] <- [1] after.
.else
rjmp .                                           ; [2] <- [2] after.
.endif

; (8)
nop                                              ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]

.endif
lpm r_font_row,Z                                 ; [3] <- One of these clock cycles is used below.

; (1)
/* One clock cycle left over from LPM */         ; [1] \_ [2] before.
eor r_font_row,r_font_invert_mask                ; [1]
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
ldi ZL,8                                         ; [1] \_ [2] after.
rol r_font_row                                   ; [1] /

; (2)
ld r0,X+                                         ; [2] <- [2] before.
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
mul r0,ZL                                        ; [2] <- [2] after. (Multiply character index by 8).

; (3)
rol r_font_row                                   ; [1] \_ [2] before.
nop                                              ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
add r0,r_font_data_l                             ; [1] \_ [2] after.
adc r1,r_font_data_h                             ; [1] /  Offset font data row by scanline number.

; (4)
movw ZL,r0                                       ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
.if TVTEXT_SQUASHED_HORIZONTALLY
nop                                              ; [2] <- [2] after.
.else
rjmp .                                           ; [1] <- [1] after.
.endif

; (5)
rol r_font_row                                   ; [1] \_ [2] before.
dec r_characters_left                            ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
brne output_scanline_loop                        ; [2/1] \_ [2] after.
nop                                              ; [1]   /

; Output final pixel(s).
; (6)
nop                                              ; [1]
rol r_font_row                                   ; [1]
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]

.ifeq TVTEXT_CHARACTER_WIDTH-8

; Shift out an extra two pixels.
rjmp .                                           ; [2] <- [2] after.

; (7)
nop                                              ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
.if TVTEXT_SQUASHED_HORIZONTALLY
nop                                              ; [1] <- [1] after.
.else
rjmp .                                           ; [2] <- [2] after.
.endif

; (8)
nop                                              ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]

.endif

pop r0                                           ; [2] (Restore character under cursor part 1).

; Blank rest of scanline.
st Y,r0                                                  ; [2] (Restore character under cursor part 2).
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_invert_mask ; [1]

active_display_skip_scanline:

pop XH
pop XL
pop r_font_invert_mask
pop r_font_row
pop r_characters_left
pop r_font_data_h
pop r_font_data_l
pop r1
pop r0

jmp exit_timer1_compa_vect_no_store

A me per come sta andando mi sembra fattibile, certo aggiustare tutto questo codice sarebbe un problema, qua è spiegato abbastanza però ho poca dimestichezza : http://www.nongnu.org/avr-libc/user-manual/assembler.html
Se a qualcuno interessa aiutare magari posto gli altri file che ho modificato.
Probabilmente a causa del quarzo differente non sarà possibile flashare l'hex su Arduino (semmai con Arduino), ma visto che devo usare altre librerie scritte per l'IDE in questione, mi piacerebbe portare a termine il tutto.
Grazie, grandi come sempre!!
15  International / Software / Re: Assembly inline on: July 30, 2012, 05:26:23 pm
Code:
; 8uS of back porch.
active_back_porch:
sbi _SFR_IO_ADDR(TVTEXT_SYNC_PORT),TVTEXT_SYNC_BIT ; [1]

; Have we finished scanning the active display? [25]
lds YL,scan_region_repeat+0             ; [2]
lds YH,scan_region_repeat+1             ; [2]
adiw YL,1                               ; [2]
sts scan_region_repeat+0,YL             ; [2]
sts scan_region_repeat+1,YH             ; [2]
brne active_display_not_finished        ; [2/1]

active_display_finished:
ldi ZL,lo8(pm(short_vsync_sync))        ; [1] \.
ldi ZH,hi8(pm(short_vsync_sync))        ; [1]  |
ldi YL,6                                ; [1]  |_ [7]
sts scan_region_repeat,YL               ; [2]  |
jmp active_display_exit                 ; [2] /'
active_display_not_finished_delay:
rjmp .                                  ; [2] \.
rjmp .                                  ; [2]  |_ [6]
rjmp .                                  ; [2] /'
active_display_not_finished:
ldi ZL,lo8(pm(active_sync))             ; [1] \_ [2]
ldi ZH,hi8(pm(active_sync))             ; [1] /

rjmp .                                  ; [2] \.
rjmp .                                  ; [2]  |_ [5]
nop                                     ; [1] /'

active_display_exit:
ldi YL,lo8(cycles_us(t_active_picture)) ; [1] \_ [2]
ldi YH,hi8(cycles_us(t_active_picture)) ; [1] /

sts timer1_compa_handler+0,ZL           ; [2] \.
sts timer1_compa_handler+1,ZH           ; [2]  |_ [8]
sts _SFR_MEM_ADDR(OCR1AH),YH            ; [2]  |
sts _SFR_MEM_ADDR(OCR1AL),YL            ; [2] /'

push r0
push r1
push r_font_data_l
push r_font_data_h
push r_characters_left
push r_font_row
push r_font_invert_mask
push XL
push XH

active_display:

; Delay by the screen offset value.
lds r_characters_left,tvtext_offset_x
inc r_characters_left
1: dec r_characters_left
brne 1b

; Is the screen inverted?
lds r_font_row,tvtext_flags                              ; [1]
clr r_font_invert_mask                                   ; [1]
sbrc r_font_row,TVTEXT_INVERTED                          ; [2/1]
ser r_font_invert_mask                                   ; [1]
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_invert_mask ; [1]

; Are we on the screen?
lds r_characters_left,scanline_counter+1
or r_characters_left,r_characters_left
breq 1f
jmp active_display_skip_scanline
1:

.if TVTEXT_SKIP_ALTERNATE_ROWS
lds r_characters_left,scanline_counter+0 ; [2]
sbrc r_characters_left,0                 ; [2/1]
jmp active_display_skip_scanline         ; [2]
.endif

; Handle the cursor.
lds YL,cursor_cell+0 ; [2]
lds YH,cursor_cell+1 ; [2]
ld r0,Y              ; [1]
push r0              ; [2]
lds r0,cursor_char   ; [2]
st Y,r0              ; [2]

; Get font data offset.
ldi r_font_data_l,lo8(tvtext_font_data)
ldi r_font_data_h,hi8(tvtext_font_data)

; Offset the font data by the scanline number.
lds XL,scanline_counter+0
lsr XL
andi XL,7
clr XH
add r_font_data_l,XL
adc r_font_data_h,XH

; Calculate the position in the text buffer:
lds XL,scanline_counter+0  ; [2]
swap XL                    ; [1]
andi XL,15                 ; [1]
ldi XH,TVTEXT_BUFFER_WIDTH ; [1]
mul XH,XL                  ; [2]

ldi XL,lo8(tvtext_buffer) ; [1]
ldi XH,hi8(tvtext_buffer) ; [1]
add XL,r0                 ; [1]
adc XH,r1                 ; [1]
; Fetch first character.

ldi ZL, 8             ; [1]
ld r0, X+             ; [2]
mul r0, ZL            ; [2] Multiply character index by 8.
add r0, r_font_data_l ; [1] \_ Offset font data row by scanline number.
adc r1, r_font_data_h ; [1] /
movw ZL, r0           ; [1]

; Display first five columns of first character and fetch second one.

; (1)
lpm r_font_row,Z                                 ; [3]
eor r_font_row,r_font_invert_mask                ; [1]
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
nop                                              ; [1]
rol r_font_row                                   ; [1]

; (2)
rjmp .                                           ; [2] <- [2] before.
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
ldi ZL,8                                         ; [1] \_ [2] after.
rol r_font_row                                   ; [1] /

; (3)
ld r0,X+                                         ; [2] <- [2] before.
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
mul r0,ZL                                        ; [2] <- [2] after. (Multiply character index by 8).

; (4)
rol r_font_row                                   ; [1] \_ [2] before.
add r0,r_font_data_l                             ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
nop                                              ; [1] \_ [2] after.
adc r1,r_font_data_h                             ; [1] /  Offset font data row by scanline number.
; (5)
movw ZL,r0                                       ; [1] \_ [2] before.
rol r_font_row                                   ; [1] /
out _SFR_IO_ADDR(TVTEXT_PICTURE_PORT),r_font_row ; [1]
ldi r_characters_left,TVTEXT_BUFFER_WIDTH-1      ; [1] \_ [2] after.
nop                                              ; [1] /

Pages: [1] 2 3 ... 10