Softune FUJITSU

Il sistema di sviluppo integrato Softune, marchio di fabbrica di Fujitsu ltd, è destinato a rispondere alle esigenze di numerosi sviluppatori di software nell’ambito della programmazione dei microcontrollori.

Lo sviluppo di programmi per l’applicazione di sistemi richiede al programmatore la modifica del codice sorgente e l’esecuzione di un debug. Una volta eseguito il debug il programmatore esegue le opportune modifiche richieste dal software. SOFTUNE WORKBENCH V6 è un software di supporto completo che permette di sviluppare programmi per la famiglia di microcontrollori FR e F2MC-16LX di Fujitsu. Come anticipato è un software completo in quanto ingloba le funzioni di: gestore di sviluppo, simulatore e debugger. Softune è nato per rispondere alle esigenze di numerosi programmatori di microcontrollori, la semplicità di utilizzo e la presenza di numerose applicazioni rendono Softune un software di buon livello (figura 1).

Figura 1: evoluzione di Softune

Figura 1: evoluzione di Softune

Nato negli anni 90 con la prima versione (V1) si è poi evoluto molto velocemente aumentando l’efficienza, migliorando la struttura e integrando numerose applicazioni (C/C++ compiler). I requisiti  richiesti  sono i seguenti:

Sistema operativo Windows XP/2000/98/Me/NT 4.0

CPU Pentium

Memoria 64 MB

Spazio su disco: 180 MB

Le funzionalità di base sono:

Project management

Help: dopo aver selezionato una parola, possono essere visualizzate delle informazioni ciccando il tasto F1.

Tools links: sorgenti commerciali, editor disponibili per l’utente

C/C++ compiler

ICE bus di comunicazione: RS 232

ICE Real-time: la massima velocità della MCU.

I registri  con i quali Softune può interagire per ogni tipo di MCU, sono:

Accumulator A

Status Register

Status Pointer

Bank Registers

General Purpose Registers

Flags

IP (PCB:24 bit PC register)

SP (24 bit register)

Figura 2: struttura di Softune

Figura 2: struttura di Softune

Le caratteristiche di Softune, visualizzate in figura 2, possono essere elencate nel modo seguente:

Moduli per il debugger

Supporto per il codice C/C++, Assembler, Linkage Kit

Moduli per facilitare l’uso di REALOSTM

Softune si compone delle seguenti funzioni di gestione:

Project file: contiene tutte le informazioni di cui il programma ha bisogno (figura 3).

Figura 3: Project file.

Figura 3: Project file.

Common directory: sviluppo simultaneo di programmi diversi (figura 4).

Figura 4: Common directory.

Figura 4: Common directory.

Built-in Editor: un semplice editor che si compone di diverse funzioni tra le quali autoindentazione e l’enfatizzazione di parole proprie del codice.

Error Jump: gli errori commessi vengono visualizzati in una finestra.

Online Help: un supporto online per Softune.

Nell’ambito della compilazione C/C++ Softune si dimostra un ottimo compilatore: la presenza di un editor con il riconoscimento automatico delle varie sintassi dei linguaggi C/C++ aiuta l’utente nella stesura del programma.

L’utente può liberamente cambiare la schermata di lavoro visualizzando solo le informazioni necessarie. Softune (figura 7) supporta 3 tipi di debugger che potranno essere scelti in base alla situazione. Nella figura 5 sono visualizzate le tecniche di debugger.

Figura 5: Debugger.

Figura 5: Debugger.

 

Figura 7: struttura Softune.

Figura 7: struttura Softune.

Caratteristica fondamentale è la presenza di moduli per il supporto del linguaggio C/C++:

Softune C Checker: necessario per migliorare  il codice, eliminare gli errori di programmazione.

Softune C Analyzer: esamina la struttura del programma, crea una propria struttura, analizza la possibilità di migliorare l’efficienza del programma stesso.

Dal punto di vista del compilatore, vi è a disposizione il Softune C/C++ compiler che supporta i seguenti  codici: C/C++/EC, C++ mode (compatibile con ANSI/ISO C++), EC++ mode, C mode: ANSI/ISO C. Nell’ambito della compilazione C/C++ Softune si dimostra un ottimo compilatore:
la presenza di un editor con il riconoscimento automatico delle varie sintassi dei linguaggi C/C++ aiuta l’utente alla stesura del programma. Altri punti di forza un’intuitiva interfaccia grafica per il  settaggio delle opzioni e un’esauriente guida (figura 6).

Figura 6: C/C++ compiler.

Figura 6: C/C++ compiler.

Procedura di sviluppo programmi

La procedura di sviluppo di programmi con Softune (figura 8) si compone delle seguenti fasi:

➤ Settare le condizioni di operabilità.

➤ Disegnare  il progetto.

➤ Creare il programma ed eseguirlo.

➤ Debugger del programma.

Figura 8: Softune Package

Figura 8: Softune Package

Softune è nato per rispondere alle esigenze di numerosi programmatori di microcontrollori, la semplicità di utilizzo e la presenza di numerose applicazioni rendono Softune un software di buon livello.

Esempi di progetti che Softune può creare sono elencati in figura 9.

E’ prevista la creazione di un monitor di debugger, ma per poter far ciò vi è bisogno dei seguenti programmi (figure 10 e 11):

➤ Inizializzazione della routine target system.

➤ I/O driver per la comunicazione.

Nell’ambito della comunicazione LAN e USB si seguono delle operazioni di con figurazione per Softune in modo da poter utilizzare le rispettive librerie. Le funzioni di stream sono implementate nella libreria sdtio (Standard I/O library), richiamabili per mezzo delle funzioni elencate nel file header stdio.h. La funzione di stream out printf() utilizzata soprattutto in fase di debug, consente infatti di convertire il valore dei dati secondo una tabella di formattazione. Nel mondo embedded in genere questa funzione viene re-indirizzata verso una porta seriale utilizzando una periferica UART inter na al microcontrollore. Durante lo svolgimento del programma è possibile trasmettere delle stringhe di caratteri via RS232 ad un PC e visualizzarle a video utilizzando appositi programmi (Es. Hyperterminal). E’ comunque possibile decidere di indirizzare le stringhe verso altri dispositivi (Es. LCD), creando delle funzioni a basso livello (Driver) che si interfacciano verso il dispositivo desiderato. Nel “manuale C” di Softune queste funzioni sono denominate LOW LEVEL FUNCTION e nel caso di printf() viene utilizzata la funzione write(). Per utilizzare la funzione printf() è necessario eseguire le seguenti operazioni:

➤ aggiungere  i moduli C LOW LEVEL.C e SBRK.C;

➤ impostare nel file START.ASM  il valore di CLIBINIT su ON;

➤ includere  il file header stdio.h dove viene chiamata printf.

La libreria standard chiama la funzione sbrk() per allocare  il buffer (heap memory) per ogni stream, in ordine su stdio, stdout e stderr; la dimensione per ogni blocco viene passata come parametro di ingresso ed è di 512 bytes (totale 1536 bytes), se la dimensione supera le dimensioni del buffer (heap) lo stram relativo non viene aperto. La soluzione ASAP consente di utilizzare la libreria standard, riducendo in modo considerevole la quantità di memoria necessaria. Per questo motivo è stata modificata la funzione sbrk() in modo da allocare memoria solo per il buffer dello stream stdout. Oltre a questo è stato studiato un altro metodo che sfrutta la funzione sprintf() e semplifica ulteriormente tale implementazione, sprintf() è identica alla printf() ma indirizza la stringa formattata su un buffer e non si appoggia su altre funzioni driver. Il risultato  è la funzione mystream_printf(), che usa gli stessi parametri di ingresso della printf() e formatta i dati verso il buffer di memoria relativo a stdout; per utilizzarla non serve né aggiungere i  moduli C LOWLEVEL.C e SBRK.C, né impostare nel file START.ASM   il valore di CLIBINIT su ON, ma solo includere  i file di header relativi. La funzionalità di stream out su seriale nelle librerie standard trasmette la stringa di stream su RS232 utilizzando un’UART in modo sospensivo, attendendo per ogni dato la fine della trasmissione; questo si traduce nell’introduzione di ritardi di decine di millisecondi, che alterano in modo sensibile le tempistiche di esecuzione del flusso di programma. Un’ulteriore miglioria introdotta con questa soluzione consiste nel fatto che lo svuotamento del buffer verso il dispositivo non è sospensiva: la trasmissione avviene in interrupt e non in polling. In caso di monitor di variabili di applicativo con tempi di refresh di millisecondi, è possibile inserire dove necessario le chiamate a printf() e mystream_printf() senza alterare le tempistiche del flusso di programma standard, avvicidandosi quindi alla condizione di reale funzionamento.

 

 

Scarica subito una copia gratis

Scrivi un commento

Send this to a friend