Page 1 of 1

illegal value for MCU_DATA

Posted: Wed May 23, 2012 5:00 pm
by carlo.caione
Ciao di nuovo.
Stavo seguendo il consiglio di Nicola (qui http://erika.tuxfamily.org/forum/viewto ... d77d#p1406) e stavo tentando di integrare l' STM32F4xxxx nel generatore di RT-Druid seguendo la guida che mi era stata indicata. Sono arrivato praticamente all'ultimo punto della sezione "parsing the modified OIL implementation using XSLT".
Come indicato nel wiki ho modificato il file OIL e XSLT di esirisc per adattarlo alla mia architettura (diciamo che sul file XSLT ci sto ancora lavorando ma per provare solo la generazione dei file mi sono limitato alle ovvie sostituzioni di CPU_DATA e MCU_DATA).
Il problema è durante la fase di test dei file modificati non viene generato nulla perché mi spunta:

Code: Select all

STM32 is an illegal value for MCU_DATA. Expected one of SAMSUNG_KS32C50100, unibo_mparm, LPCXPRESSO, STELLARIS, PIC30, PIC32, ESI_RISC, LATTICE_PLATFORM, MSP430, PPCE200ZX, S12XS, MC9S12.

Sicuramente mi sta sfuggendo qualcosa.

Vi allego:
conf.oil ==> http://pastebin.com/sLN5hVYT
stm32.oil ==> http://pastebin.com/DNE1yFb9
stm32.xsl ==>http://pastebin.com/VEkgzAx9 (da modificare, per ora voglio solo verificare la generazione dei file di configurazione)

Ciao e grazie,

--
Carlo

Re: illegal value for MCU_DATA

Posted: Thu May 24, 2012 7:37 am
by nicola.serreli
Ciao,

l'errore che ti viene mostrato indica che RT-Druid non ha individuato il file stm32.oil.

Domanda: stai creando un nuovo plugin o stai usando l'interfaccia grafica per provare al volo la trasformazione xslt?
Nel primo caso, fai una copia del plugin esirisc e la metti dentro la cadroppins, stando attento a modificare il file plugin.xml cambiando al suo interno il nome dei file a cui hai cambiato nome (ad esempio stm32.oil ). Una volta completate le modifiche, se stai usando l'interfaccia grafica, devi ri-avviare eclipse per rendere operative.

Se invece stai usando l'interfaccia grafica per modificare e provare la trasformazione, ad oggi non c'e' un modo esplicito per dire ad RT-Druid che esiste un file oil aggiuntivo stm32.oil. Quello che puoi (e devi) fare in questo caso e' quello di unire i file conf.oil e stm32.oil, aggiungendo in cima anche tutta la parte "standard" che serve per il tuo esempio.
Quindi,
- apri la vista "Active_oil_implementation" e copi tutto il suo contenuto nella parte iniziale del file conf.oil
- prendi parte del contenuto di stm32 (quello che sta dentro "IMPLEMENTATION ee {" ... "};<fine del file>") e lo metti dentro conf.oil, all'inizio o alla fine del corpo di IMPLEMENTATION che hai copiato dalla vista


Il motivo di questa differenza di comportamento e' che RT-Druid cerca tutti i file *.oil indicati dentro i vari file plugin.xml, e li utilizza per creare un unica struttura IMPLEMENTATION. Questa struttura viene utilizzata per default se il file conf.oil non presenta al suo interno una sezione IMPLEMENTATION; se questo non e' vero, allora viene utilizzata solo ed esclusivamente la sezione IMPLEMENTATION presente nel conf.oil (e quindi devi aggiungere anche i pezzi che non gestisci in prima persona ma che deleghi alle componenti standard di RT-Druid)

spero di aver chiarito il problema.
Fammi sapere come va avanti,
a presto,
Nicola

Re: illegal value for MCU_DATA

Posted: Thu May 24, 2012 7:08 pm
by carlo.caione
nicola.serreli wrote:Ciao,
l'errore che ti viene mostrato indica che RT-Druid non ha individuato il file stm32.oil.
Domanda: stai creando un nuovo plugin o stai usando l'interfaccia grafica per provare al volo la trasformazione xslt?
In realtà ho seguito semplicemente la pagina wiki che mi hai indicato. Ovvero modificare i file di esirisc dopo averli spostati nella directory /dropins e poi stavo tentando di provare la trasformazione xslt usando l'interfaccia di eclipse (il "transformation test" nella view "Xslt writers configurators").
nicola.serreli wrote:Nel primo caso, fai una copia del plugin esirisc e la metti dentro la cadroppins,
Intendi /dropins vero?
nicola.serreli wrote:stando attento a modificare il file plugin.xml cambiando al suo interno il nome dei file a cui hai cambiato nome (ad esempio stm32.oil ). Una volta completate le modifiche, se stai usando l'interfaccia grafica, devi ri-avviare eclipse per rendere operative.
In realtà ho cambiato tutto il cambiabile. Infatti dopo aver riavviato Eclipse nella view "Oil Generators" mi trovo il mio stm32_writer correttamente abilitato. Anche nella view "Available xslt transformations for code generation" ho stm32. Confermo inoltre che nella view "Available xslt writers for code generation" ho stm32_writer. Quindi credo che tutti i file che ho modificato siano a posto.
Ciononostante quando vado a fare il "transformation test" con il mio conf.oil ottengo sempre lo stesso messaggio di errore.
nicola.serreli wrote:Se invece stai usando l'interfaccia grafica per modificare e provare la trasformazione, ad oggi non c'e' un modo esplicito per dire ad RT-Druid che esiste un file oil aggiuntivo stm32.oil. Quello che puoi (e devi) fare in questo caso e' quello di unire i file conf.oil e stm32.oil, aggiungendo in cima anche tutta la parte "standard" che serve per il tuo esempio.
Quindi,
- apri la vista "Active_oil_implementation" e copi tutto il suo contenuto nella parte iniziale del file conf.oil
- prendi parte del contenuto di stm32 (quello che sta dentro "IMPLEMENTATION ee {" ... "};<fine del file>") e lo metti dentro conf.oil, all'inizio o alla fine del corpo di IMPLEMENTATION che hai copiato dalla vista
Ok, la mia vista "Active Oil Implementation" è desolatamente vuota :)
nicola.serreli wrote:Il motivo di questa differenza di comportamento e' che RT-Druid cerca tutti i file *.oil indicati dentro i vari file plugin.xml, e li utilizza per creare un unica struttura IMPLEMENTATION. Questa struttura viene utilizzata per default se il file conf.oil non presenta al suo interno una sezione IMPLEMENTATION; se questo non e' vero, allora viene utilizzata solo ed esclusivamente la sezione IMPLEMENTATION presente nel conf.oil (e quindi devi aggiungere anche i pezzi che non gestisci in prima persona ma che deleghi alle componenti standard di RT-Druid)

spero di aver chiarito il problema.
Fammi sapere come va avanti,
a presto,
Nicola
Chiaro. Ci sarà sicuramente qualche inghippo da qualche parte.

Grazie ancora,
Ciao!

--
Carlo

Re: illegal value for MCU_DATA

Posted: Fri May 25, 2012 9:34 am
by nicola.serreli
Ciao,
carlo.caione wrote: Ok, la mia vista "Active Oil Implementation" è desolatamente vuota :)
punto interessante :)

Se apri la vista "Error log" o se apri il file .log in workspace/.metadata, sono abbastanza convinto che trovi indicazioni sul fatto che il file stm32.oil contiene un errore:
dovresti avere un errore del tipo

Code: Select all

java.lang.RuntimeException: com.eu.evidence.rtdruid.internal.modules.oil.implementation.OilImplCollector: Unable to parse oil file (oil_files/stm32.oil).
.....
Caused by: com.eu.evidence.rtdruid.internal.modules.oil.reader.ParseException: Encountered " "]" "] "" at line 45, column 9.
Was expecting:
    <name> ...
Quando avevo guardato il file, non mi ero accorto che alla riga 45 c'e' una virgola dopo la } e prima della chiusura della ] (il parser e' molto pignolo)

A presto,
Nicola

Re: illegal value for MCU_DATA

Posted: Tue Jun 05, 2012 6:35 pm
by carlo.caione
Ok, risolto (scusate gli sbattimenti ma io ed Eclipse (e Java in genere) non andiamo affatto d'accordo ;)
Comunque ora sembra filare tutto liscio, riesco di fatto a compilare tutti i progetti di porting (vari EEtest*) usando Eclipse/RT-Druid e sembrano funzionare correttamente.
Ripulisco un po' i vari *.mk e vi faccio avere il tutto.

Ciao e grazie,

--
Carlo Caione

Re: illegal value for MCU_DATA

Posted: Tue Jun 05, 2012 6:42 pm
by paolo.gai
Ottimo!!! :-)

PJ

Re: illegal value for MCU_DATA

Posted: Fri Jun 08, 2012 12:57 pm
by carlo.caione
Come vi passo il codice? Via SVN oppure volete darci prima una occhiata senza fare il merging?
Non ci sono grossi cambiamenti al core ovviamente, si tratta solo di Makefile/file in contrib/codice di esempio e poco altro...

Ciao!

Re: illegal value for MCU_DATA

Posted: Fri Jun 08, 2012 1:12 pm
by paolo.gai
Ciao,

Ti contatterà a breve Giuseppe via mail...

Ciao,

Paolo