Ciao linoma grazie per la risposta.
Bella domanda...ma un po incasinata da spiegare.
Sto cercando di inserire due firmware parzialmente diversi su un unico micro.
I due hanno in comune la parte in assembler per lo startup, la tabella degli interrupt e i driver SPI (mi servono per l'accesso ad una flash esterna in fase di inizializzazione periferiche)
Per in comune intendo che in tutti e due i fw (ognuno dei qualli ha il suo .ind) i componenti (codice) sono presenti in entrambi, quindi vengono praticamente riscritti dall'ultimo fw che viene caricato (con un jtag) ma il primo fw caricato se li ritroverà nello stesso posto dove crede che siano (anche se ribadisco sono stati riscritti).
Il primo deve rimanere in pianta stabile sul micro e non deve essere mai toccato, il secondo invece deve poter essere riscritto dal primo (in fase di accensione ovvero prima che il primo faccia il salto al main del secondo e subito dopo le inizializzazioni delle periferiche che mi servono)
Tutto questo viene fatto in modo da creare un "flasher" che mi caricherà il secondo firmware quando all'accensione ne troverà uno in flash esterna diverso da quello che è scritto in flash interna del micro.
Mi serve che le funzioni comuni dell' SPI siano allocate precisamente ad un certo indirizzo e che il linker per ogni fw le linki proprio lì, altrimenti si incricca tutto (ho già fatto molti test e mi è capitato che il secondo fw si aspettasse che una funz fosse in un certo indirizzo mentre invece non era li. La sezione era corretta per via dell' __attribute__ di cui sopra ma non l'indirizzo nella sezione).
Mi servirebbe capire come organizzare le funzioni all'interno di una sezione.
Cosa intendi per "copiare tu manulamente il tuo codice nelle zone di memoria che vuoi"?
Mi posti un esempio?
Grazie linoma.