[OT ITA] Lo spamm bar (Part 1)

allora, ho fatto confusione.
ci sono 3 livelli: comunicazione, compilazione e debug
per la comunicazione puoi usare o stlink o openocd. Penso che userò openocd perchè è compatibile con molti altri protocolli e non solo gli stlink-v1 e v2
per la compilazione esistono un saccco di toolchain, oppure puoi fartela da solo. io ho scelto la gcc (arm-elf-gcc-base + arm-elf-newlib) perchè è un pacchetto ufficiale della mia distribuzione.
attenzione, cambiare stdint.h in stdint-gcc.h

per il debug sembrano usare un pò tutto gdb. esiste anche un'interfaccia grafica kdbg

LCzxk:
Dipende da quanto sei disposto ad alleggerire il portafoglio. Se è molto pesante non è un problema prendere una licenza, ma con la crisi che c'è credo che sia preferibile spendere i soldi in un altro modo.

Tenuto conto che tutti i pc arrivano con windows preinstallato e relativa licenza non credo sia un problema di costi, sopratutto se guardiamo il costo reale di una licenza oem di W7 home basic, circa 22 Euro.

Comunque io ho una discovery board con stm32f4. Avete qualche link da passarmi per sviluppare su questa board su Linux, perfavore?

Per Linux puoi usare solo gcc-arm, per giunta senza librerie ottimizzate per gli STM32 il che si traduce in eseguibili poco efficienti e pieni di bug.
Diverso è il discorso se usi un micro ARM di fascia alta dove puoi installare Linux, in questo caso il supporto è nettamente migliore.

uh non so se sono basate su gcc, ma ho visto molte tool-chain per linux, esempio codesurgery, e anche l'arm development studio (che usa una sua toolchain) è disponibile per ubutu & red hat (ma dovrebbe bastare poco per "traformare" i package per qualsiasi altra piattaforma, o ancora più facile installare un gestore di pacchetti che supporta i deb o gli rpm)

da quel che ho capito per gcc ne esistono due, la eabi e la elf

qualche news.
prima di tutto abbiamo scelto come editor Eclipse, con apposito plug-in:http://gnuarmeclipse.livius.net/blog/
le toolchain compatibili sono CodeSourcery G++ Lite(w, l, m), Yagarto(w, m), devkitPro(w, l, m), Summon(w, l, m), GNUARM(w cygwin, l, m), WinARM(w)
w= windows, l=linux, m=mac

questo sabato col mio compare ci abbiamo lavorato sopra, abbiamo priovato varie toolachain (summon e gnu arm embedded)
poi abbiamo dovuto sostituire openOCD con la versione nuova (non della toolchain) perchè in quella mancava il supporto per l'STLINK-v2, e di conseguenza abbiamo dovuto anche sostituire gdb con la nuova versione altrimentri era incompatibile con opwnODC. Sia OpenODC che GDB erano nella repository, quindi nulla di complesso (la summon arm, invece, è un programma che lanci e fa tutto da solo, se hai insatllato le dipendenze che si trovano nei repository. A rifare adesso il porcedimenti ci si mette 5 minuti+il tempo di compilare la toolchain, circa mezzora su un tricore a 2.8GHz)

quì una guida più completa che però installa la codesurgery: Engineering(DIY): STM32F3 Discovery + Eclipse + OpenOCD

il classico test di loop infinito, con tanto di debug da ide dello stato della variabile ha avuto successo, ora si litiga con il CMSIS.

Quì siamo in piena black magic e ci si sta studiando sopra, in pratica da quel che si è capoito è un layer che virtualizza la periferica così da renderla compatibile tra vari cortex, ed in olte fornisce le informazioni al debugger. Qui astro se vuoi darci qualche dritta su cosa dobbiamo studiarci, o anche farciu un'idea da dove dobbiamo iniziare e quali obbiettivi dobbiamo porci sul breve periodo ci fai un favore.

Mi dicono ora che passando dal link a cui sopra si è riusciti a far andare la CMSIS (in pratica si può scaricare il progetto con la pappa già pronta, ovvero i makefile, e funzionano benissimo senza problemi nonstante la diversa toolchain, a quanto pare la summon da problemi con le librie CMSIS e quindi si è passati ad usare la GNU) e si sta iniziando ad andare di blink.. in solo 2 giorni

ok, messo il turbo stasera.

leggo senza problemi i 3 sensori che ci interessano, mi son scritto il gyro da solo per poi accorgermi che il progetto del programma di default aveva già tutto dentro.. ctrl+c -> ctrl+v, sistematina veloce per un paio di diversi settaggi del progetto e via!

ora l'idea è di serivere i dati al PC, preferibilmente via USB. (voglio evitare di passare per device esterni)

Ora, da quel che ho capito facendo un cat sull'usb posso accedere ai dati "grezzi"; In questo modo vorrei poter usare la USB in modo simile alla Serial. (possibilmente senza dover studuare per forza lo standard che sono 600 e passa pagine solo la versione 1)

ah scusate se monopolizzo il topic, ma è un modo assi più complesso dell'arduino e ogni passo è come entrare in un mondo nuovo

lesto:
ah scusate se monopolizzo il topic, ma è un modo assi più complesso dell'arduino e ogni passo è come entrare in un mondo nuovo

Ti capisco. Io sono 4 giorni che cerco un modo per entrare nel mondo degli ARM e programmare la stm32f4discovery, ma ancora non so come fare. Arduino è molto più semplice, ma è poco potente e le cose complesse mi hanno sempre affascinato. Forse non riesco a trovare informazioni abbastanza semplici perché sono uno studente e non ho ancora le nozioni che mi servono per cominciare con questo tipo di microcontrollori, però ormai la scheda l'ho comprata e devo riuscire a far qualcosa.

segiio il linkche ho postato prima: http://engineering-diy.blogspot.it/2012/11/stm32f3-discovery-eclipse-openocd.html, copsì sei sicuro di avere un sistema funzionante su linux.
Da quì in poi c'è da divertirsi un sacco. Con gli esempi dei 2 sensori impari a fare andare 2 cose importantissime: la SPI e l'I2C. Le funzioni usate per i led sono un'ottima base per usare anche gli altri pin digitali.

Del DAC c'è un esempio nella libreria ufficiale, e anche di altrenperiferiche. Ma sulla USB solo un'esempietto su come simulare un mouse

Ok grazie! Adesso lo guardo. XD

LCzxk:
Ti capisco. Io sono 4 giorni che cerco un modo per entrare nel mondo degli ARM e programmare la stm32f4discovery,

Con Linux segui il consiglio di Lesto, con Windows il modo più semplice per partire è usare il MikroC AMR di Mikroelektronika, ha una vasta libreria di funzioni pronte che consentono di utilizzare immediatamente quasi tutte le periferiche e comunque puoi sempre accedere ai singoli registri macchina.
La versione free del compilatore produce eseguibili fino a 32k, non è molto però si riesce lo stesso a realizzare programmi interessanti e comunque ti consente di prendere confidenza con queste mcu di fascia alta.
Ci sarebbe pure l'ambiente di sviluppo per il multipilot 32 che è Arduino like al 100%, dovrebbe girare anche sotto Linux, già predisposto per il micro della STM32F4 visto che lo usano sull'ultima versione della loro board, non l'ho mai provato perché ho a disposizione l'MDK ARM di Keil, stupendo e sicuramente il miglior compilatore per ARM (solo Windows) presente sul mercato, però è molto costoso :frowning:

qualcuno qua si intende di sviluppo di applicazioni web enterprise utilizzando JEE, EJB, JSP e mySQL ???

cavde:
qualcuno qua si intende di sviluppo di applicazioni web enterprise utilizzando JEE, EJB, JSP e mySQL ???

mysql io :smiley:

mysql e oracle come db, php, asp classico e c# script lato server, js puro e applet java lato client.

Sono abbastanza contrario a framework stile jquery o altro, noto che spesso ci si porta dietro pesantezza (in termini di spazio e performance) e complessità (chi non conosce il framework se lo deve studiare facendo perdere di leggibilità il codice) per risolvere problemi per cui un paio di riche di codice in più e un minimo di riflessione potrebbero risolvere in modo più elegante.

Non è sempre così, ma spesso mi capita di vedere codici che mi ricordano la scura maria che porta i figli a scuola (a 100 metri) con l'hammer :slight_smile:

lesto:
mysql e oracle come db, php, asp classico e c# script lato server, js puro e applet java lato client.

oracle come db lo adoro, uso pl sql da quasi 2 anni ed ha delle potenzialità eccezzionali :grin:

altra cosa che evito.
non è portabilissimo, ed in oltre c'è il grosso rischio di mettere codice applicazione nel database, e sopratuttto se messo nelle stored procedure rende un casino leggere i codici scritti da altri (codice: chiamata sql alla procedure X, allora apri il DB, vedi che fa la procedure etc.. e considerando che di solito a lavoro i DB sono in remoto vuol dire apri il terminale/desktop remoto, che se è già aperto al 99% è in time out, lancia il programma, litiga con la rete interna lenta come il cuculo, etc...)

però le stored sono ottime per mantenere intera la struttuda DB (esempio: stored procedure cancella thread dato un ID cancella sia la tablla dei thread che la tabella dei messeggi legati a quel thread), però da questo punto di vista mi sembra mooolto fatto meglio (e più performante, visto che spesso le stored si fanno per le prestazioni) usare il NoSQL, non ho esperienza con questo sistema ma mi intriga molto e a breve lo studierò

come sospettavo, la fine del mondo è arrivata ma noi siamo già all'inferno xD

lesto:
come sospettavo, la fine del mondo è arrivata ma noi siamo già all'inferno xD

No, siamo tutti dentro matrix :grin:

in realtà non mi serve niente di professionale, è per un progetto in uni, nel quale dobbiamo utilizzare pagine JSP, Servlet, EJB3 e MySQL, però non ci hanno spiegato bene l'approccio per affrontare il progetto quindi dobbiamo un po arrangiarci per conto nostro. Dopo aver postato qui, sono riuscito a trovare guide e video su youtube e ho capito un po il meccanismo, sono riuscito a fare la parte di login di un utente sul sito. se ho qualche dubbio allora vi romperò le scatole :smiley:

Grande cavde sei partito in quarta! Così si fa, un punto di partenza e gambe in spalla
Astro io sono ancora fermo alla comunicazione sub, ora conosco il protocollo ma non le librerie sia lato pc che stm. Colpa di una donna xD

Niente fine del Mondo!!!
Mi tocca continuare a pagare il mutuo. ]:smiley: ]:smiley: ]:smiley:

lesto:
Grande cavde sei partito in quarta! Così si fa, un punto di partenza e gambe in spalla...

purtroppo non abbiamo molto tempo e dobbiamo partire quasi da zero sull'argomento :smiley:
riguardo l'autenticazione di un utente, se ho capito bene si utilizza un oggetto HttpSession, passato come parametro nelle request, per tenere traccia della sessione utente all'interno dell'applicazione, dato che HTTP chiude la connessione ogni volta. Però come si implementa questa cosa nelle pagine .jsp e nei servlet? (ovviamente intanto cerco anche su google)

EDIT: se implemento la cosa così: nel servlet che gestisce il login, quando un utente immette i dati di login corretti, viene preso dal database il suo ID (chiave primaria) e creato un oggetto HttpSession nel quale viene salvato con setAttribute("id", id) l'id appena creato. a questo punto il servlet fa il forward alla pagina del profilo personale dell'utente. Ora ogni pagina o servlet che sta dopo alla parte di login, prima di fare qualsiasi azione, prende l'oggetto session dalla request ricevuta, estrae il contenuto dell'id e controlla che quell'id sia contenuto nel database degli utenti, così facendo sono sicuro che la richiesta avviene da un utente registrato che ha fatto il login.