Vai al contenuto

Sostituzione CPU basate su ARM7 con nuove versioni basate su Cortex M7

Home Forum Controllori SlimLine e Netsyst (LogicLab) Sostituzione CPU basate su ARM7 con nuove versioni basate su Cortex M7

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #80963
    Roberto
    Partecipante

    Devo sostituire su un vecchio impianto2 moduli CPU MPS046A XTarget 8.0, con due nuovi moduli CPU MPS054 XUnified.

    Oltre alle conversioni che dovrò fare di funzioni vecchie, avevo implementato la comunicazione UDP che utilizzava le funzioni Sysfopen, SysSktListen ecc.. Sono funzioni ancora presenti per fa comunicare 2 Moduli CPU o si deve usare altro ?

    Riguardo allo spazio di memoria, sui vecchi programmi ero al limite, con i nuovi moduli CPU ho più spazio di programma e dati?

    Ecco il report di compilazione dei programmi attuali.

    Used code size: 13480h ( 77 KByte)
    Free code space: 4B80h ( 18 KByte)
    Total code space: 18000h ( 96 KByte)
    
    Used data space: 186Ch ( 6 KByte)
    Free data space: 794h ( 1 KByte)
    Total data space: 2000h ( 8 KByte)
    
    Used retain data space: 0h ( 0 KByte)
    Free retain data space: 3E8h ( 0 KByte)
    Total retain data space: 3E8h ( 0 KByte)
    #80968
    Sergio Bertana
    Amministratore del forum

    Per quanto riguarda la comunicazione one-to-one tra moduli CPU puoi utilizzare il FB DataTransfer che in base al FB di gestione stream di comunicazione permette di comunicare sia in UDP che in TCP. L’esempio ST_DataTransfer che trovi nell’articolo ha gia realizzate sia la comunicazione server che client, ti basterà copiare la parte server in un sistema e la parte client nell’altro.

    Aggiungo per completezza anche se non riguarda la tua applicazione che per implementare una comunicazione TCP tra più moduli client verso un modulo server sono disponibili i FB TCPDataExchClient e TCPDataExchServer.

    In riferimento alla memoria ti rimando a questo articolo, come vedi i modelli Cotex M7 disper quanto riguarda il codice dispongono standard di 131Kb di memoria programma, quindi 35Kb in più della versione attuale, inoltre la compilazione dei programmi sui sistemi Cortex M7 è più ottimizzata come vedi:

    • Compilazione 1000 istruzioni logiche: ARM7:12Kb, CortexM7:8Kb
    • Compilazione 1000 istruzioni matematiche fixed point: ARM7:18Kb, CortexM7:13Kb
    • Compilazione 1000 istruzioni matematiche float point: ARM7:39Kb, CortexM7:29Kb

    Quindi per la dimensione del codice non hai sicuramente problemi.

    In riferimento alla memoria dati la dimensione disponibile standard è la stessa per entrambi i sistemi (8Kb), sui CortexM7 è disponibile una opzione per estenderla a 16Kb. Dai dati di compilazione del tuo progetto vedo che hai ancora liberi 1940 (794h) bytes quindi credo siano ampiamente sufficenti. Ti rimando al capitolo Ottimizzazione memoria RAM che trovi in fondo alll’articolo della knowledge base che ti ho linkato.

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.