× MSP430, Microcontrollori 16 bit Ultra Low Power

HELP MSP430

9 Anni 1 Mese fa #11 da Mauro Laurenti
Risposta da Mauro Laurenti al topic HELP MSP430
sembrerebbe pero' che cerchi libmath, che effettivamente e' ottimizzata sia in velocita' che dimensioni.
Non usarla potrebbe anche far eccedere il codice, ma sembra strano che tu ottenga un errore di dimensione quando il codice non e' stato generato a causa di errori.

Non ho letto la user guide di libmath e non sono certo dei percorsi da includere.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
9 Anni 1 Mese fa #12 da elpablito
Risposta da elpablito al topic HELP MSP430
@ Mauro

Mi è già capitato con in G2553 la libreria che non trova è un "Warning" per cui prosegue e si inK... poi esce dal pasticcio con
fine della memoria.
Ma la domanda è: viene chiamata una math.h e non libmath.h, chi tira in ballo quest'ultima e libc.a ? sono opzioni del linker?
Andrò a leggere la user guide.
E ti ripasso la patata.

Paolo

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • elpablito
  • Platinum Member
  • Platinum Member
Di più
9 Anni 1 Mese fa #13 da elpablito
Risposta da elpablito al topic HELP MSP430
@ Mauro

Sembra debba rimangiarmi quanto detto prima. A seguito ulteriori indagini scopro che:

MSPMathlib is active by default in CCSv5.5+ for all new projects on all supported devices. For imported
projects, it is used only if the project already uses MSPMathlib or if it has been manually enabled.
To disable MSPMathlib: Remove libmath.a under Project → Properties → Build → MSP430 Linker → File
Search Path in the "Include library file or command file as input (--library, -l)" field.
To enable MSPMathlib: Add libmath.a under Project → Properties → Build → MSP430 Linker → File
Search Path in the "Include library file or command file as input (--library, -l)" field. Important: Put libmath.a
before other libraries that may be listed here.

Ho quindi disabilitato libmath.a ed è quindi scomparso il warning è invece rimasto l'errore concernente il limite della memoria per il codice.
Rimangono però questi due interrogativi il primo è : questa benedetta libmath.a è o non è quella definita negli include come
math.h e relativo math.c ? Se non fosse come faccio a includere libmath
Il secondo interrogativo è invece questo.
E' vero che forse chi ha scritto quel software, probabilmente non era così interessato a perder più di tanto tempo visto che comunque quell'esempio nelle mani di un professionista sarebbe stato OK, ma che non possa girare sulla CPU suggerita perchè
non ha memoria a sufficienza mi sembra un'esagerazione anche perchè è la documentazione ufficiale del costruttore.
Sarei più propenso a credere che sia ciò che dicevo prima, con il G2553 la formula del calcolo di un angolo(usata anche qui) usava oltre 10KB. Quindi penso che ancora ci sia una magagna da qualche parte, quasi certamente legata al codice di matematica.
Aspetterò che uno dei due eventuali partner dia una mano.
Paolo

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • elpablito
  • Platinum Member
  • Platinum Member
Di più
9 Anni 1 Mese fa #14 da elpablito
Risposta da elpablito al topic HELP MSP430
-> Mauro
Io giro a ruota libera e ti passo eventuali miei punti di vista a te poi fare un po' di ordine.
1) Il programma all'origine aveva un compilatore 4.0.1 invece dell'attuale 4.3.1, non credo però che ciò possa influire.
2) La storia del libmath.a è da approfondire, ma sembrerebbe che tu non debba includere niente perchè già inclusa di default
qualora esista nelle opzioni del linker, vedi post precedente.
3) "exceeds code size limit" è un'altra bella storia da investigare, tutto è possibile, non credo possa essere più grande di
125KB, se sei curioso prova a ricompilarlo e e a guardare la "MEMORY ALLOCATON" da cui risulterebbero occupati 26K dei 48K
della FLASH mentre gli alri 82K di FLASH2 sino intonsi. Non esiste quindi una parte in rosso di memoria non allocata bahhh!!!
Perchè si è fermato a 26K e poi ha detto che non c'è più flash ?? Oppure è MEMORY ALLOCATION che racconta balle per qualche
motivo ?? Doppio BAH !!!
Proseguo a smanettare, poi ti dico. Comunque qualcosa prende per il, personale punto di vista.
A puro scopo informativo l'equivalente programma che gira su in Arduino Mini e, secondo me, è grande più o meno quanto questo, è di circa 30K.
Paolo

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • elpablito
  • Platinum Member
  • Platinum Member
Di più
9 Anni 1 Mese fa #15 da Mauro Laurenti
Risposta da Mauro Laurenti al topic HELP MSP430
Un problemino che mi viene in mente e' il fatto che CCS e' fornito sotto licenza gratuita fino a un codice 16K mentre senza limiti, ma solo per prova, per 3 mesi (se memoria non mi inganna).
In ogni modo se fai uso delle schede di sviluppo launchpad, questo limite dovrebbe essere rimosso (sempre se memoria non mi inganna).

Ho avuto un problema simile una volta, aggiungendo una ISR, anche senza codice. La dimensione passava da 20K su un micro a 64K ad una situazione di "exceeds code size limit".
Non ho mai risolto, non avendo mai indagato. Non escludo che la radice del problema sia la stessa e comunque indipendente dall'ISR o libmath. Personalmente ho CCS senza limiti, quindi il problema non era imputabile al limite di 16K.
...ma un problema alla volta si risolve tutto.

Comunque ti consiglio di includere ed usare la nuova libreria matematica (solo se fai uso della famiglia MSP430F5xx).

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro LaurentiMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login