Newsgroup: it.hobby.elettronica.digitale
Titolo: Linux e scheda ARM9: consigli?

Qualcuno ha mai fatto girare un Linux full (non uClinux) su una scheda con 
processore ARM9?
Ne esistono veramente per tutte le tasche e per tutti i gusti. Cercavo qualche 
esperienza positiva.
Naturalmente voglio evitarmi di sbattere la testa con la modifica del kernel e 
la stesura di driver particolari. L'ideale sarebbe qualche schedina piccola 
piccola che avesse già un kernel funzionante con i driver per tutte le 
periferiche necessarie, in primis Ethernet 10/100 ed eventualmente LCD 
controller con touch screen, I/O generici, ingresso keypad e roba simile.

 qualche esperienza positiva.
guarda se questo fa al caso tuo:
http://www.atmel.com/dyn/corporate/view_detail.asp?ref=&FileName=AT91SAM9_Timesys_9_18.html&SEC_NAME=Product
non l'ho visto di che si tratta precisamente ma mi è arrivata ieri per posta 
e te l'ho rigirata.
ciao
coals 

controller con touch screen, I/O generici, ingresso keypad e roba simile.
L'unico svantaggio è che per lo sviluppo si deve usare il C++ eventualmete con
il QTdesigner, ma stiamo cercando di compilare Gambas  
http://www.gambas.it/
  ,
avere un quasi VB, che sarebbe una drastica riduzione dei tempi di sviluppo, che
con il C++ sono elevati.
Guarda se dal pdf soddisfa le tue esigenze.
--
ciao
  Stefano

 con il C++ sono elevati.
Come mai devi usare il C++? Non hai un Linux full con il GCC?
Non poter programmare in C sotto Linux è un'eresia... sempre che non si utilizzi 
qualche libreria scritta proprio in C++.

qualche libreria scritta proprio in C++.
Il vantaggio di usare Linux su una scheda del genere con display 800*600 a
colori è che hai le possibilità grafiche di un PC, non siamo più nel mondo dei
microcontrollori.
Il C++ è un evoluzione del C, puoi naturalmente usare anche il C e il GCC, ma se
devi lavorare con oggetti grafici la cosa diventa lunga e difficile, meglio
usare componenti già pronti come le QT libs.
 
http://trolltech.com/products/qt/features/designer
http://www.digitalfanatics.org/projects/qt_tutorial/it/
Le QT contengono componenti come pulsanti, lisbox, barre di scorrimento files
manager, ecc. ma ogni volta devi fare le attivazioni a mano e andarti a vedere
le proprietà nella documentazione e cercare quella giusta.
Insomma un casino, poi nelle routines devi usare il C++ che a me piace poco,
ancora meno del C.
Morale: per fare un applicazione del cavolo che in Visual Basic farei in un ora
ci metto un giorno, e sono sempre li a cercare di interpretare i messaggi di
errore del compilatore.
Ci sarebbe anche la possibilità di usare Mono
 
http://www.mono-project.com
 
per emulare il framework di .NETe quindi usare 
VB.NET
 o C# come IDE con tutti i
vantaggi del caso, ma ci sono delle limitazioni nelle funzioni e la gestione
della grafica con X11crea problemi. (non mi sono occupato direttamente della
cosa ma mi hanno detto così)
Comunque per Mono non è ancora detta l'ultima parola, e poi c'è ancora Gambas
che è sempre sul punto di funzionare.
--
ciao
  Stefano

 che è sempre sul punto di funzionare.
Secondo me ti sembra di perdere tanto tempo con le librerie del mondo Linux (QT, 
  GTK, wxwidgets, ecc.) perchè non hai alcuna esperienza. Ci sono programmi 
interi che fanno uso di queste librerie e non penso che i programmatori si 
sbattono così tanto per usare i tasti e le listbox.
Anch'io programmo in VB e ammiro tantissimo la sua semplicità... ma non sai 
quante volte mi ha fatto bestemmiare per le sue limitazioni.
Se l'ambiente e le librerie sono fatte bene, come in Linux, puoi solo avere 
vantaggi sviluppando nativamente con esse... almeno questo è quello che penso io.
Com'è la storia delle QT? Sapevo che avevano una licenza un po' strana... si 
possono usare per applicazioni commerciali senza problemi?

 ?
Sono PXA255 o 270 quindi stessa architettura degli ARM9, hanno diverse 
schedine di espansione (per LCD e ethernet ad esempio), ci gira linux 
2.6 e sono piccoli.


La Fox Board non è ARM9 ma bella potente e c'è giò Linux dentro
Magari già la conosci, ho un amico c'ha sviluppato tante cosucce sopra.
Non arriva a 1000 Mb/s però la NIC.
(FOX Board, a complete Linux system in just 66 x 72 mm)
www.acmesystems.it
Io per la Fox ho fatto la libreria per Eagle, che trovi da scaricare dal 
sito :))
ciao
coals 

possono usare per applicazioni commerciali senza problemi?
C'è la versione open source che è free (la versione per Linux) mentre non lo è
quella per Windows, anche se si trova qualche clone in giro.
http://trolltech.com/products/qt/licenses
--
ciao
  Stefano

 Alla fine sai che 2 ...
 >
 > Forse se lo usassi diverse ore tutti i giorni alla fine riuscirei a digerirlo,
 > ma preferisco spendere meglio il mio tempo.
Non ho lavorato molto sotto Linux per ambienti grafici quindi non ti so dire 
molto... quello che vedo è che ora nascono come funghi applicazioni grafiche 
stupende per Linux e spesso portabili su Linux e Windows. Possibile che tutti 
questi sviluppatori che, tra l'altro, lavorano spesso aggratisse, si devono 
sbattere come dici tu?

Andrea D'Amore ha scritto:

In realtà ci sono centinaia di produttori di schede per ARM9, Xscale, AVR32, 
i.MX, PowerPC, ecc. ecc.
Avevo ristretto la cerchia ad ARM9 giusto perchè era una tecnologia abbastanza 
trasversale tra tutti i produttori... ma mi rendo conto che è un criterio 
alquanto discutibile.
Gli XScale sono una versione ARM9 strana... non ho mai capito perchè. Poi ora 
sono Marvell ma curiosamente la documentazione si trovo solo ancora sul sito 
Intel. Mbah!
Questi Gumstix sembrano essere fatti bene, ma mi perdo tra le mille varianti di 
schede madri e schede di espansione. Io volevo solo una 10/100Mbps e un TFT con 
touchscreen. E' possibile?
Sembra che ci siano le expansion board LCD-ready, cioè dovrebbero avere un 
connettore dove si infila direttamente l'LCD. Però le schede LCD-ready non hanno 
Ethernet. Poi non ho capito se supportano un qualsiasi TFT oppure solo gli 
smart-LCD (quelli con framebuffer integrato).
Ho capito che posso aggiungere anche più expansion board ad una motherboard, 
quindi potrei aggiungere ad una verdex una scheda per Ethernet ed una scheda per 
l'LCD.
Forse si può fare questa combinazione (correggimi se sbaglio):
   verdex XM4 (129$) + netCF-vx (65$) + consoleLCD-vx (49$) = 243$
Mi sembra un po' tanto, a mio modo di vedere.
Giusto come esempio:
 
http://www.armkits.com/Product/mini2410III.asp
a soli 129$.

 La Fox Board non è ARM9 ma bella potente e c'è giò Linux dentro
La conosco, la conosco. Ogni tanto me la propongono.
Il fatto è che non ha il supporto per l'LCD. Poi non mi fido del processore 
della Axis, rispetto ai ben più blasonati Cirrus Logic, Samsung, Atmel, ecc.

 qualche esperienza positiva.
Io ho partecipato ad alcuni porting, ma sempre su schede proprietarie e 
a lavoro già iniziato.
Ti posso dire che mi sono trovato molto male con un ARM920T della 
Freescale (documentazione e tool di sviluppo insufficienti) e molto bene 
con gli XScale della Intel.
In ogni caso, se prevedi di spippolare con linux embedded, prima o poi 
ti toccherà mettere le mani nel kernel, ti posso assicurare che non è 
così difficile ed in più è molto divertente :-)
Ecco una buona lettura per iniziare:
http://www.xml.com/ldd/chapter/book/
Ciao

 Alla fine sai che 2 ...
Il fatto è che le Qt sono pensate per un sistema di progettazione 
diverso. In VB e linguaggi simili l'utente disegna la finestrina con il 
mouse, appiccica un po' di codice qua e là e in 3 minuti fa l'applicazione.
Questo va bene se tutto sommato le cose da fare sono semplici perchè, 
altrimenti, appena l'applicazione diventa complessa, il tutto diventa 
così disorganico che il codice diventa completamente non manutenibile, 
non riusabile, non facilmente testabile e non debuggabile.
Il tempo che si risparmia durante la progettazione viene più che 
riperso durante il mantenimento dell'applicazione stessa.
Io personalmente, non uso mai il Qt designer per disegnare la gui, 
scrivo direttamente il codice. Questo ti consente di fare molte cose che 
con il designer non fai (aggiungere roba dinamicamente in primis), di 
avere più controllo e, se l'applicazione è grossa, permette di 
risparmiare moltissimo tempo riusando il codice.
Certo richiede un certo investimento iniziale, ma viene tutto ampiamente 
ripagato con il tempo.
Ciao

 che è sempre sul punto di funzionare.
Se non avete problemi di performance, vi consiglio di lasciare stare 
Gambas (che è poco diffuso e fine a se stesso) e di concentrarsi sul 
porting di Python.
E' molto produttivo ed ha anche i binding per le Qt (tramite PyQt).
Inoltre è molto semplice da imparare, è portabile (potete provare 
l'applicazione su PC, anche su windows, prima di metterla sulla scheda) 
e sta prendendo molto piede in questo momento.
Sarebbero di sicuro delle conoscenze totalmente riusabili in molti 
ambiti, al contrario di quelle necessarie per Gambas.
Ciao

 strana... si possono usare per applicazioni commerciali senza problemi?
Le Qt sono distribuite con doppia licenza.
Le puoi usare come GPL (sia su Linux che su Windows), ma la tua 
applicazione deve essere GPL.
Le puoi usare anche in applicazioni closed source proprietarie, ma 
allora devi pagare un prezzo che va in base al numero di sviluppatori 
che le usano (all'incirca 8-900 euro a sviluppatore).
Ciao

sbattere come dici tu?
Probabilmente sono abituati a lavorare così e gli va bene.
Dopotutto quando le auto non avevano il servosterzo e il servofreno la gente
guidava lo stesso girando lo sterzo o pigiando con forza il pedale, adesso se mi
capita di usare una di quelle auto che ho guidato per anni mi trovo malissimo.
--
ciao
  Stefano

ripagato con il tempo.
Credo che il tempo che ci metterei per fare una cosa del genere in modo
produttivo, ammesso di riuscirci, sarebbe superiore a quello che mi manca per la
pensione.
Mi rendo conto che è un affermazione grave soprattutto perchè non si sa se ed a
che età riuscremo ad andarci in pensione   ;-*)
--
ciao
  Stefano

ambiti, al contrario di quelle necessarie per Gambas.
Ma Gambas è basic, le conoscenze le ho già e anche se il francese tarda a
rilasciare la 2.0 se riuscissi a complarlo bene ti faccio vedere dove metto Qt e
company.
--
ciao
  Stefano

 che età riuscremo ad andarci in pensione   ;-*)
Almeno tu non sei un Bamboccione :D
Quando andrai in pensione non ci lasciare però, rimani qui, non ti paghiamo 
ma sei in mezzo ad amici!!!
:P
coals 

ma sei in mezzo ad amici!!!
Non ci penso nemmeno, anzi con piů tempo libero sarei sempre su Internet e nei
ng.
--
ciao
  Stefano

 company.
Ok magari con le conoscenze che hai farai il tuo lavoro alla svelta, ma poi?
Gambas è praticamente sviluppato da una sola persona (il francese che 
citi più altri amici nostalgici), e quando si stufa che fai?
Se tra 1 anno ti chiedono di aggiornare il kernel della scheda e Gambas 
non ci gira più?
Il VB è un linguaggio morto da anni, nessuno penserebbe mai di usarlo 
per un progetto nuovo.
Lo sai che VB è ufficialmente abbandonato dalla Microsoft da 5 anni?
Capisco che tu lo conosca già e che sia faticoso imparare cose nuove, ma 
questo è il nostro mondo, non decidiamo noi quali tecnologie sono 
obsolete o no.
Per fare un paragone elettronico è come se conoscessi solo lo Intel 8080 
e volessi sviluppare una nuova applicazione con quello!
Python, viceversa, è abbastanza nuovo, ed ha milioni di persone che lo 
usano e lo sviluppano nel mondo. E' semplice come il VB e, ma è più 
supportato, ci sono migliaia di esempi e binding per le cose più 
disparate, anche elettronicose (seriale, parallela, schede di 
acquisizione national, etc...).
Ciao

 pensione.
Secondo me sei troppo pessimista. Se deciderai di darci un'occhiatina 
vedrai che le cose sono molto più semplici di quello che sembrano :-)
Ciao

 
http://www.xml.com/ldd/chapter/book/
Non ho molto tempo, quindi almeno all'inizio non vorrei spippolarmi il kernel e 
i driver, vorrei dedicarmi all'applicazione.
Quindi non hai esperienze positive su qualche modulo acquistabile già pronto?

 interpretato č dannatemente lento. 
Se non ho capito male python genera bytecode a runtime, ci sono delle VM 
veloci (JIT?) e sopratutto si puň precompilare il sorgente.

 veloci (JIT?) e sopratutto si può precompilare il sorgente.
Esistono dei JIT (Psyco per esempio), ma non sono troppo veloci, e no, 
non si può precompilare il sorgente come si fa con Java.
Questo perchè Python, a differenza di Java, è completamente dinamico nei 
tipi ed anche... nel codice!
Puoi addirittura far eseguire all'interprete stringhe e file letti a 
runtime!
Per quanto riguarda i tipi, se definisci una funzione così:
def somma(a, b):
	return a + b
Puoi usarla per sommare *qualsiasi* cosa: interi, float, stringhe, 
oggetti vari, e ogni combinazione dei precedenti.
Questo ti da delle possibilità infinite, ma c'è un prezzo da pagare, che 
è la velocità di esecuzione. La funzione di cui sopra non può essere 
compilata perchè non si sa su che tipo di dato lavori a priori.
Quello che fanno i JIT è produrre una versione ottimizzata e tipizzata 
ogni volta che la funzione viene chiamata. E questo può dare dei 
benefici se il tuo codice la chiama sempre con gli stessi tipi in 
ingresso, ma non è detto che succeda.
In ogni caso, a meno di dover fare algoritmi matematici super 
ottimizzati, in genere il problema della velocità non si pone.
E quando si pone, è molto facile importare dll esterne o parti di codice 
scritte in C ad hoc.
Inoltre esiste un'implementazione di Python che gira su piattaforma .net 
(Ironpyhton) che quindi consente interoperabilità tra tutti gli altri 
linguaggi .nettosi (c# in primis).
Ciao

 pronto?
No, mi spiace, moduli già fatti non he no mai usati, ma se dovessi 
farlo, ne sceglierei uno con un microcontrollore Atmel (AT91 con core 
ARM9), per adesso mi sono sempre trovato bene con loro. Avevo visto 
qualcosa in giro (schede di sviluppo con porting già fatto) intorno 
100$, ma non riesco più a trovarlo :-(
Ciao

acquisizione national, etc...).
Magari alla fine proverò anche questa strada, adesso ne ho altre aperte.
--
ciao
  Stefano