Come usare scheda madre pc + cpu + ram a mo' di scheda microcontrollore?

Vista la diffusione, la semplice reperibilita' ed il prezzo contenutissimo delle schede madri pc e dei processori da montarci, mi chiedevo se fosse possibile usarle per applicazioni dedicate, facendoci girare sopra dei programmi realizzati ad hoc Un po' quello che si fa con le varie fox-board, rabbit, ecc... Qualcuno ha mai tentato qualcosa del genere? Spunti, documentazione? Controindicazioni? Ciao e grazie RobertoA

Reply to
RobertoA
Loading thread data ...

Conscio delle conseguenze, "RobertoA" un bel dì scrisse:

In tantissimi. Dipende da cosa vorresti poi realmente farci alla fine... Ci sono pro e contro. Una scheda PC per poco che assorba tira giù parecchi Watts e non sempre questo è una nota positiva, tanto per intenderci...

--
System going down at 5 pm to install scheduler bug.
News 2002 [v 2.4] - [ StopDialers/PopDuster/SMTP Proxy -
http://www.socket2000.com ]
Reply to
Due di Picche

Per adesso vorrei capire come si fa, tanto per intenderci mi basterebbe farci girare il classico 'hello world' per vedere se tutto funziona Quello che non mi e' ancora chiaro e' il metodo per trasferire e debuggare i programmi, che ovviamente devono essere a bordo della scheda madre in prova Imagino che il firmware della scheda madre (perche' ipotizzerei di non usare bios proprietari ma tenere la motherboard come di fabbrica) debba avviare un programma 'monitor' A sua volta quest'ultimo dovrebbe avere le funzionalita' base di un sistema operativo e quindi permettere il caricamento di un programma (via porta seriale imagino sia la cosa piu' semplice), la sua esecuzione e soprattutto l'interruzione, l'inserimento di breakpoint, la possibilita' di visualizzare lo stato dei registri processore, stack pointer, ecc.. Ovviamente, il tutto senza usare emulatori hardware o aggeggi dal costo proibitivo, almeno per gli esperimenti Ciao e grazie RobertoA

Reply to
RobertoA

Il 09/01/2010 19:10, RobertoA ha scritto:

la cosa più semplice consiste nell'utilizzare la funzionalità esistente nel bios di boot da rete eviti di montare dischi e annessi e trovi OS e software già pronti

le prove le fai collegando con un cavo cross un altro PC su cui gira linux configurato come server

--
Saper dimenticare è un arte difficile, a me riesce naturale, rendendomi
un uomo fortunato che vive sempre nel futuro.
Reply to
blindonet

"RobertoA" ha scritto nel messaggio news:4b48c344$ snipped-for-privacy@newsgate.x-privat.org...

E' molto complicato fare quello che dici, dal momento che i compilatori dotati dell'interfaccia che ti serve (IDE) ci sono e c'e' solo l'imbarazzo della scelta, perche non usarli? Naturalmente puoi scegliere anche il S.O. dal DOS a Win. XP o Seven ma anche Linux per non spendere. Dipende anche dalle prestazioni del PC. Un compilatore valido anche per l'ambiente Linux e' Lazarus, un simil Delphi che usano un Pascal evoluto. Per gli I/O di solito si usa la parallela e/o la seriale.

giorgio

Reply to
Giorgio Padoan

Si, va benone per le prove E poi se decidessi di far girare la scheda in modo autonomo, dove potrei metterlo il programma? Scheda flash da montare su bus pci ? Chiavetta usb?

Per cavo cross intendi un cavo rs232? Ethernet? E per l'ambiente di sviluppo/debug sai darmi qualche informazione in piu'? Qualche link? Ciao e grazie RobertoA

Reply to
RobertoA

o

Opterei per far girare una versione small-Linux con boot da pen-drive USB. Una volta avviata pu=F2 funzionare in consolle remota sia da seriale che da rete. Prenderei a modello installazioni tipo firewall (IP-COP ad esempio) in cui basta accendere e spegnere la motherboard senza bisogno di tastiera, mouse, monitor.

Piccio.

Reply to
Piccio

In quel caso openwrt che ha una gran quantità di programmi disponibili tramite ipkg. Per la cronaca anche l'installazione di Debian che usavo era su un P2 headless, non c'è bisogno di una distribuzione particolare.

Reply to
Andrea D'Amore

Quello che mi interessa capire e' come far girare, sul sistema destinazione (m.b. pc+cpu+ram), un programma senza aver bisogno del sistema operativo di mezzo Quello che si fa di solito su una scheda con micro-processore/controllore per applicazioni industriali Se il sistema fosse dedicato a far girare un solo programma, il sistema operativo sarebbe solo un impiccio, ed impedirebbe di controllare finemente l'hardware sottostante Pensavo allo sfruttamento di una motherboard pc perche' la potenza di calcolo di questi sistemi ha raggiunto vette davvero impensabili ed in applicazioni di calcolo intensivo tipo il filtraggio digitale dei segnali, potrebbero offrire prestazioni molto Il tutto al costo di qualche decina di euro Ciao e grazie RobertoA

Reply to
RobertoA

Opterei per far girare una versione small-Linux con boot da pen-drive USB. Una volta avviata può funzionare in consolle remota sia da seriale che da rete. Prenderei a modello installazioni tipo firewall (IP-COP ad esempio) in cui basta accendere e spegnere la motherboard senza bisogno di tastiera, mouse, monitor.

----------------------------------------

E' proprio il sistema operativo che non voglio caricare Ciao e grazie RobertoA

Reply to
RobertoA

Il 09/01/2010 19:41, RobertoA ha scritto:

su penna è più semplice anche se devi superare i problemi dei contatti che tendono a cedere

anche se per praticità d'uso sarebbe meglio assegnargli un IP e accedervi via lan così come fanno le CANBUS automobilistiche

semplice cavo lan con i capi incrociati

formatting link

per iniziare linux ha tutti gli strumenti di base ti consiglio però di studiarti QNX è l'ambiente posix derivato commerciale per uso professionale in parole povere quello più usato in ambienti critici dove è richiesta la massima affidabilità (medicali automobilistici aerospaziali etc etc)

formatting link

sarebbe anche meglio che tu scegliessi un linguaggio sicuramente multi piattaforma quale java

su QNX gira tranquillamente

concludendo

utilizza linux in fase sperimentale come SO di studio e java come linguaggio di programmazione

poi passi a QNX conservando sintassi e ide di sviluppo dopo che inizi a fare i soldini

QNX è conosciuto come il SO senza blocchi il più usato negli ambienti embedded e che ovviamente ha il maggior numero di librerie specifiche se ti iscrivi alla newsletter ti giungeranno anche gli inviti ai corsi di aggiornamento che periodicamente svolgono in Italia

se proprio vuoi restate attaccato alla casa con le finestre devi studiarti Windows XP embedded

formatting link

anche se non ha neanche lontanamente l'affidabilità di QNX

--
Saper dimenticare è un arte difficile, a me riesce naturale, rendendomi
un uomo fortunato che vive sempre nel futuro.
Reply to
blindonet

C'e' ancora la versione free? QNX Neutrino, io l'ho usato una decina di anni fa, se non sbaglio =E8 stato il primo SO che funzionava anche in live cd, almeno che abbia visto io. Previsto anche per funzionare su flash. So che dopo tenevano la versione free abbastanza nascosta nel sito... poi non l'ho piu' usato perche' mancavano un po' di driver. Comunque molto bello e solido. Peccato che la versione commerciale costasse una cifra.

Reply to
grigio

I sistemi QNX che ha suggerito blindonet sono per applicazioni realtime e potrebbero andare bene.

Per sfruttare alcune caratteristiche non c'è bisogno di driver specifici rendendo quindi utile la presenza del SO?

Reply to
Andrea D'Amore

E' difficile. Una scheda madre ha un hardware talmente complesso che richiede una marea di software (driver) che dovresti scrivere tu, ammesso che tu riesca a trovare tutte le informazioni necessarie. Io direi che semplicemente una scheda da PC =E8 adatta a funzionare da PC e niente altro. Poi si tratta di vedere se un PC, inteso come hardware+SO, puo' fare quello che ti serve. Comunque la tua idea di base e' corretta, ma si scontra con la realta'.

Reply to
grigio

Se "..alcune caratteristiche.." saranno desiderate allora il driver bisognera' implementarlo direttamente nel programma Quello a cui penserei e' piu' una 'black-box' che comunica via rs232 o ethernet con l'esterno che ad una replica di un pc con innumerevoli periferiche collegate Ciao e grazie RobertoA

Reply to
RobertoA

E' difficile. Una scheda madre ha un hardware talmente complesso che richiede una marea di software (driver) che dovresti scrivere tu, ammesso che tu riesca a trovare tutte le informazioni necessarie. Io direi che semplicemente una scheda da PC è adatta a funzionare da PC e niente altro. Poi si tratta di vedere se un PC, inteso come hardware+SO, puo' fare quello che ti serve. Comunque la tua idea di base e' corretta, ma si scontra con la realta'.

--------------------------------------- Iporizzando di usare un canale per la comunicazione, tipo la porta ethernet, ed un canale per la visualizzazione dei dati, tipo la scheda video, gia' si avrebbe una cpu con i contromarroni a portata di mano E' chiaro che non mi interesserebbe attivare tutte quelle periferiche tipo raid, usb, acpi, e trappole varie Volevo solo trovare un sistema per sfruttare un'hardware a basso costo e disponibile ovunque, con prestazioni elevatissime Ciao e grazie RobertoA

Reply to
RobertoA

et,

si

o

Non mi sono spiegato bene, volevo dire che i driver sono necessari per far funzionare l'hardware anche al minimo. C'e' un mare di circuiti che non "si vedono" ma sono indispensabili, pensa alla gestione della RAM, del bus, della stessa CPU, che hanno bisogno di driver appositi altrimenti non funziona niente. Non parlo di periferiche tipo audio, video, rete, dischi, ecc. Dai un'occhiata a Gestione Periferiche di Windows, per avere un piccolo esempio delle periferiche di sistema. E poi, questo sistema immagino che dovra' pure interfacciarsi con qualcosa che non sia solo la rete, il video e la tastiera. Non credo che ti basterebbero quella decina di linee I/O della porta parallela, oltretutto piu' lenta di un PIC. Percio' avrai bisogno di collegarti al bus PCI, non so se ti rendi conto.

Reply to
grigio

Non mi sono spiegato bene, volevo dire che i driver sono necessari per far funzionare l'hardware anche al minimo. C'e' un mare di circuiti che non "si vedono" ma sono indispensabili, pensa alla gestione della RAM, del bus, della stessa CPU, che hanno bisogno di driver appositi altrimenti non funziona niente. Non parlo di periferiche tipo audio, video, rete, dischi, ecc. Dai un'occhiata a Gestione Periferiche di Windows, per avere un piccolo esempio delle periferiche di sistema. E poi, questo sistema immagino che dovra' pure interfacciarsi con qualcosa che non sia solo la rete, il video e la tastiera. Non credo che ti basterebbero quella decina di linee I/O della porta parallela, oltretutto piu' lenta di un PIC. Percio' avrai bisogno di collegarti al bus PCI, non so se ti rendi conto.

-------------------- No, non mi rendo conto ancora esattamente del lavoro da fare Sto cercando di raccogliere informazioni per capire se posso avvicinarmi a quest'idea Per quanto riguarda la gestione della ram, non credo ci sia niente da gestire nel senso che sara' il controller della ram a 'tenerla su' Il processore scrivera' e leggera' sulla ram disponibile, spero proprio che non sia lui a dover rinfrescare la ram Penso che sia piu' o meno la stessa cosa per il bus pci, ci saranno delle zone di memoria riservate per la comuncazione con le periferiche sul bus pci Almeno col bus Isa era cosi Per quanto riguarda la vga, anche li non e' che mi serve pilotarla con le sue prestazioni ottimali, mi basta 'vedere' qualcosa, e quindi gia' farla andare in vga standard sarebbe un bel successo Ma andrebbe altrettanto bene in modalita' ega o cga, e quindi niente driver di mezzo ma visualizzazione a colpi di scritture nella memoria video Discorso diverso per la comunicazione vi ethernet, li bisogna trovare una libreria gia' bella e pronta altrimenti ci metto anni a far parlare il pc col mondo esterno, comunque per iniziare credo che la rs232 sia la cosa piu' semplice, setti qualche registro e poi scrivi e leggi Sono perfettamente cosciente che mi mancano ancora molte informazioni, ma da qualche parte devo pur cominciare o per arrivare a fare quello che mi prefiggo oppure per convincermi che sia un lavoro improbo Ciao e grazie RobertoA

Reply to
RobertoA

cut...

he

No, ma la MMU la deve inizializzare. Anche la marea di registri per i modi di funzionamento e mappatura della RAM vanno inizializzati, senn=F2 rischi di non vedere neanche un byte. Il processore, poi, si rif=E0 al vecchio standard x86 che indirizzava solo 1 Mb, per cui ci sono mille pippate (A20 gate, memoria espansa, ecc) da settare ancor prima di eseguire un push o un pop.

pci

Il bus PCI indirizza i singoli connettori, l'ISA no. Ho seguito da riparatore l'evolversi fino al microchannel e l'EISA ed era un gran casino. Il bus PCI ancor di pi=F9. Niente di pi=F9 facile che ti trovi una EEPROM con le configurazioni delle schede inserite (IRQ, DMA, address riservati, ecc).

er

Dovrai accontentarti delle chiamate BIOS con un succulento 320x200 256 colori o al pi=F9 640x480 16 colori.

iu'

Allora devi sbrigarti perch=E9 la RS232 sta sparendo anche dalle schede madri.

da

Suggerisco un pen-drive col caro MS-DOS. Trovi ancora parecchia roba e gestisce la FAT32, molto comoda per interloquire con l'esterno.

Piccio.

Reply to
Piccio

"RobertoA" ha scritto nel messaggio news:4b48f481$ snipped-for-privacy@newsgate.x-privat.org...

La cosa e', come gia' detto, molto difficile da ottenere. Pensa ad un dual-core... dovresti avere l'enciclopedia dell'hardware ed il soft. del PC... Nei S.O. multitasking preemptive non sfrutti l'intera velocita' della CPU. Ma esistono dei DOS free o simili mediante i quali ti avvicini a farlo. Cmq rimanendo ad es. su Win. , se programmi su tale ambiente prova ad impostare la variabile SetProcessPriority (vado a memoria per il comando) vedrai come l'applicazione prende il volo.

ciao giorgio

Reply to
Giorgio Padoan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.