Newsgroup: it.hobby.elettronica.digitale
Titolo: ARMx

Salve a tutti,
qualcuno ha esperienza con ARM7 e aRM9?
-- 
Il Razziatore,
"Lo sviluppo di una nazione si misura anche dallo stato della sua rete 
ferroviaria". Camillo Benso Conte di Cavour
"Per tutto quanto non previsto nel presente regolamento il capostazione 
deve usare senno e ponderatezza." Regolamento d'esercizio FS
-----------------------------------------------
MSN   : 
IlRazz...@netscape.net
ICQ   : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://mpp.iwebland.com

 qualcuno ha esperienza con ARM7 e aRM9?
Sì!
Ciao

Francesco Sacchi ha scritto:

Io sto per inizare a giocare con un ARM7 ( Delle Philips mi pare ma non 
ricordo :P ) qual'è stata la tua esperienza? C'è qualche cosiglio che ti 
senti di darmi, devo stare attento a qualcosa
insomma che ne pensi? :D


 senti di darmi, devo stare attento a qualcosa
Così in modo generico non mi viene in mente nulla.
Anzi no, "usa la forza" o qualcosa del genere :-)
Ciao

Francesco Sacchi ha scritto:

Che ambiente usi?


 Che ambiente usi?
io ho lavorato per un po' di tempo con LPC2138 (ARM7) usando Keil uVision 3.
-- 
bikerfab
Viaggi in bicicletta, report foto e informazioni
Travelling by bicycle, report, pics and information
http://bikerfab.altervista.org/

 Che ambiente usi?
Sviluppo sotto Linux.
Compilo i sorgenti con il gcc. Come IDE uso KDevelop, ma da alcuni 
giorni sono passato a Code::blocks.
Ciao


E il debug? Usi GDB? Come gli dici di usare il JTAG e tutto il resto, 
voglio dire se io voglio mettere un brackpoint sul codice o un watch 
come faccio? Uhmm Code::blocks? Mi informero grazie. ( Anche se devo 
dire che KDev non e che mi faccia impazzire )


 giorni sono passato a Code::blocks.
Mi aggrappo qui... secondo te ha senso usare Code:Blocks anche per gli 
AVR? L'ho già installato e mi sembra interessante (a parte l'odiosa 
evidenziazione della sintassi di default!) anche perché avrei lo stesso 
ambiente sia sotto Windows che sotto Linux e in più sia per gli AVR che 
per gli ARM (quando li userò...).
In pratica lo userei al posto di AVRStudio. Forse quello che si viene a 
perdere sono l'albero dei registri (per me utile quando non ricordo al 
volo un nome) e l'integrazione con i programmatori ISP. Qui ancora devo 
vedere come risolvere.
Il debugger per il gcc funziona senza problemi?
Ciao!
Marco / iw2nzm

 Marco / iw2nzm

 finestra dei watch ma nulla di particolare
Ottimo! Ovviamente mi riferivo al gcc per AVR non l'ho specificato ma 
era inteso.
Grazie, vedo di provare a usarlo e a cambiare i colori :)
Ciao!
Marco / iw2nzm

 
sorry, dimentico che fai essenzialmente 'embedded', non ho ancora 
provato con i compilatori per i micro .


 provato con i compilatori per i micro .
No problem, è colpa mia che non l'ho specificato :)
Ciao!
Marco / iw2nzm

 Il debugger per il gcc funziona senza problemi?
GCC è un compilatore non centra niente con il debugger, il Debugger ( 
credo ) è GDB a meno che per l'ambito embedded non ci sia qualche altro 
  "attrezzo". Tramite il GCC facciamo un crosscompilazione ovvero su un 
PC ( x86 ) compiliamo per un altra archidettura ( PIC, ARM, PowerPC ecc 
). La stessa cosa bisogna fare anche in fase di debug. Tramite il 
debug-in-circut bisogna andare a fare lo step-by-step dentro il uC 
comandadolo dall'IDE del PC.
E proprio questo anello ( per così dire ) che mi manca e da cui nasceva 
la mia domanda :)


 come faccio?
Se compri il debugger/programamtore segnalato da me qualche post fa 
vedrai che esso si controlla con un programma chiamato OpenOCD. Lanci 
OpenOCD e lui ti apre un socket su una porta locale. Poi avvii il gdb 
e gli dici di effettuare debug in remoto connettendosi alla porta di 
OpenOCD e il gioco è fatto. Breakpoint e watch li metti dalla normale 
interfaccia grafica della tua IDE.
Ciao

 Il debugger per il gcc funziona senza problemi?
Per quanto riguarda gli ARM ha qualche problemino con il debug in 
remoto, però funziona meglio di KDevelop.
Inoltre sì, l'ho scelto anche io per avere un ambiente unico per tutti 
i microcontrollori e tutti i sistemi operativi.
Pensavamo di fare un installer ufficiale per BeRTOS proprio con 
code::blocks quando saremo abbastanza mastri (per adesso forniamo 
Eclipse, bleah!).
Ciao

 interfaccia grafica della tua IDE.
Da quel che so Code::blocks è free O__o...  bisogna compilare qualcosa o 
è già incluso tutto il necessario per lavorare con gli ARM?


 è già incluso tutto il necessario per lavorare con gli ARM?
Forse qui ti posso rispondere io. Francesco correggi se sbaglio :)
Code::Blocks è libero ed è solo l'interfaccia di sviluppo (IDE). Per 
compilare per gli ARM o per qualsiasi altro target supportato basta 
installare il compilatore relativo.
Se vai sotto Settings > Compiler and debugger settings hai una combobox 
con i vari possibili compilatori. Selezioni quello che hai installato e 
verifichi che il percorso sia corretto.
A questo punto quando crei un nuovo progetto potrai specificare quale usare.
Ciao!
Marco / iw2nzm

 Eclipse, bleah!).
Lo attendo (-iamo) con ansia :)
Marco / iw2nzm

 
Si dopo ci ero arrivato da solo :D Così sono andato a scaricarmi GNUARM 
( 
www.gnuarm.com
  ) e l'ho installato. E subito iniziano i problemi... 
per gli AVR c'è un progetto già fatto che mi permette di selezionare ( 
ad esempio ) quale CPU usare, mi permette di digli se c'è un RAM esterna 
e bla bla bla insomam di configurare il progetto a puntino, per ARM 
tutto questo non c'è. Ho creato io il tutto da un progetto vuoto. Pero' 
appena lo apro mi dice "non ci sono i settaggi per questo compilatore" o 
qualcosa del genere... e già questo mi puzza comunque faccio un 
banalissimo programma
int main ( void ) {
    for ( ; ; ) {
    }
}
si esatto un banalissimo loop. Compilo il tutto inizia a macinare e ... 
mi crea un EXE :| anche abbastanza grandicello ( un 100 di KB ) il che 
mi sembra molto ma di molto strano... forse perché ci sono le istruzioni 
di debug... uhmm... Ho fatto qualcosa di sbagliato?


 di debug... uhmm... Ho fatto qualcosa di sbagliato?
Io uso codeblocks solo come IDE, per la compilazione ho i miei makefile.
In pratica configuro codeblocks per lanciare make con i vari target e 
lui ... lo fa :-)
Tutto il resto (scelta del compilatore, target cpu, file da 
compilare...) sono specificati nella nostra infrastruttura di make.
Ciao

 di debug... uhmm... Ho fatto qualcosa di sbagliato?
uhm... sicuro di avere impostato il GNU ARM come compilatore e non il 
generico GCC per windows?
Inoltre, verifica di avere le binutils e che siano funzionanti. Io ho 
scaricato WinARM (anche se sembra vecchiotta: 20060606) che come il 
fratello WinAVR ha tutto l'occorrente e anche alcuni esempi già pronti.
Se da riga di comando ti sposti nella cartella di uno di questi esempi e 
dai un make dovresti avere verificare la corretta compilazione.
Da Code::Blocks anche io ho ancora difficoltà a definire le regole 
(rules) per gli ARM, ma piano piano ci arriveremo.
Rilancio con una domanda, visto che siamo comunque IT nel thread: c'è 
qualche schedina di sviluppo (non troppo costosa) per ARM che vale la 
pena acquistare per le prime prove?
Grazie!
Marco / iw2nzm

 Io uso codeblocks solo come IDE, per la compilazione ho i miei makefile.
Uhmmm capisco... non hai mai provato a fare configurarlo in modo che lo 
faccia lui il makefile? ( Anche se devo ammettere che di soltio i 
makefile creati dagli ide fanno abbastanza pena magari C::B li genera in 
modo migliore ).
E sempre tramite GDB che flashi tutto sulla Flash del ARM e/o nella sua RAM?


 (rules) per gli ARM, ma piano piano ci arriveremo.
Okay se trovo qualcosa te lo dico, sperando che tu faccia lo stesso :)


 
Ho controllato O_o non ci sono esempi, o almeno non c'è una directory 
"example"... :uhm eppure ho fatto l'installazione full... O_o dove sono 
gli esempi di solito?


 gli esempi di solito?
Tu hai scaricato GNU ARM, io WinARM:
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/WinARM-20060606.zip
che contiene GNU ARM più una serie di altre cose tra cui gli esempi.
Come fare l'upload nel target non ne ho idea :) Spero vi sia un plugin 
per C::B altrimenti siamo costretti a usare ugualmente un altro 
programma esterno. Stesso discorso per gli AVR: spero vi sia un plugin 
per lo stesso scopo.
Comunque non posso provare l'upload perché fisicamente non ho ancora un 
ARM in giro! Per questo chiedevo se vi era una schedina di sviluppo 
interessante da acquistare.
Tipo:
http://microcontrollershop.com/product_info.php?products_id=677
http://www.gaotek.com/index.php?main_page=index&cPath=118_16
Ma per evitare di andare a casaccio... magari qualcuno ha già esperienza 
in proposito.
Ciao!
Marco / iw2nzm

 
Aspettiamo che risponda Francesco Sacchi a tal proposito.


 Aspettiamo che risponda Francesco Sacchi a tal proposito.
Io ho usato solo le demo board di Atmel per la serie AT91SAM7S e 
AT91SAM7X, purtroppo non ne conosco altre.
Ciao

Francesco Sacchi ha scritto:

Uhmm e come le programmi? Hai mai provato uLinux visto che usi Linux?


 
Dopo un po' di tribolazione ( sono su windows, i makefile sono per linux 
) sono riuscito a creare il mio bel file hex da 1.61KB... pero' devo 
dire che mi crea un bel po' di file spazzatura... dovro farmi anch'io un 
makefile ispirati a questi...
Quindi il compilatore è okay... l'IDE si configura... il problema ora è 
come infilare questo HEX dentro all'arm tramite JTAG e mettere tutte le 
configurazioni a puntino ( lavoro non da poco! )


 Uhmm e come le programmi? Hai mai provato uLinux visto che usi Linux?
Le programmo tramite l'interfaccia jtag specificata qualche post fa.
Se con uLinux ti riferisci a uCLinux posso dirti che non l'abbiamo mai 
  mai provato  perché, per applicazioni medie, usiamo il nostro RTOS. 
Per applicazioni più corpose usiamo direttamente Linux, ma non me ne 
occupo direttamente io.
Ciao

 mai provato  perché, per applicazioni medie, usiamo il nostro RTOS.
Si mi riferisco prorpio a lui :) Capitosco va beh...


 qual'è il comando?
Per debuggare in RAM semplicemente fai partire il debug e lui fa tutto. 
Per flashare lanci l'openocd e lui fa tutto. Per adesso mi tengo una 
shell aperta per lanciare questi comandi, ma volendo con un po' di 
script bash nel makefile puoi lanciare la programmazione semplicemente 
dicendo a CB di compilare un target diverso. Sugli AVR faccio così.
Ciao

Francesco Sacchi ha scritto:

Anch'io pensavo di usare 2 target del makefile che so
make install per metterlo sulla flash e
make debug per metterlo in ram
o magari sempre install ma vedendo se gli viene passato qualche parametro...
uhm non mi è chiaro come comunicare a OpenOCD quale file hex deve 
prendere...
cioè io faccio
openocd file.hex e lui capisce e manda in flash? dall'help non 
sembrerebbe... oppure c'è un modo per dire nel file di confiugrazione 
"Metti in Flash questo file"? Che poi GDB per funzionare ha comunque 
bisogno di OpenOCD che funge in background... no?


 bisogno di OpenOCD che funge in background... no?
Sì, esatto.
Ciao

 
Ho letto i settaggi, ma non l'ho trovata. Mi puoi copiare un file di 
configurazione tuo? Così lo copio :D


 configurazione tuo? Così lo copio :D
Questa è la cartella con tutti gli script per ARM che usiamo su BeRTOS:
http://www.bertos.org/browser/trunk/bertos/cpu/arm/scripts
Ciao


OOoooh ora si che ci siamo! Grazie di tuttooooo ^______^
