Ciao Carlo,
  se la demo che stai utilizzando è: "examples/cortex_mx/lpc12xx/porting_examples/monostack/EEtest7"; i due array CORRETTI che devono essere utilizzati sono i seguenti:
Code: Select all
    EE_TYPENACT EE_th_rnact[EE_MAX_TASK] = {
        1U,              /* thread Task1 */
        4U               /* thread Task2 */
    };
    const EE_TYPENACT EE_th_rnact_max[EE_MAX_TASK] = {
        1U,              /* thread Task1 */
        4U               /* thread Task2 */
    };
Il primo tiene conto delle attivazioni residue a run-time.
Il secondo (costante che va in flash - cui accenava Paolo nei suo post) memorizza le attivazioni residue massime possibili.
Se 
 EE_th_rnact[1]  resta fisso a 
 4U , vuol dire che hai scritto male le due routine assembly previste per l'implementazione HAL della TerminateTask(): 
 void EE_hal_terminate_savestk(EE_TID tid);  ed 
 void EE_hal_terminate_task(EE_TID tid); /* NORETURN */ .
Puoi sicuramente reciclare tali funzioni da quelle già scritte per il Cortex-M0/4 che si trovano nei files:
- pkg/cpu/cortex_mx/src/ee_iar_oo.s (Cortex-M0 / NXP LPCXpresso LPC12xx / IAR)
- pkg/cpu/cortex_mx/src/ee_ccs_oo.s (Cortex-M4F / TI Stellaris LM4F232xxxx / TI CCS)
- pkg/cpu/cortex_mx/src/ee_keil_oo.s (Cortex-M4F / TI Stellaris LM4F232xxxx / Keil uVision)
Considera che ogni volta che un task termina (sia per chiamata diretta della TerminateTask(), sia per uscita diretta dalla sua funzione), il valore nell'array 
 EE_th_rnact  deve essere incrementato.
Questo viene fatto per mezzo della chiamata alla primiva si sistema 
 void EE_thread_end_instance(void)  situata in:
- pkg/kernel/oo/src/ee_thendin.c
Come consiglio ti invito, per mezzo di un debugger, a verificare se tale primitiva viene chiamata in entrambi i casi.
Ciao,
Giuseppe.