21
1 UNIVERSITA’ DEGLI STUDI DI MILANO BICOCCA FACOLTA’ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di Test di Sistemi Embedded Relatore: Prof. Mauro PEZZE’ Correlatori: Lorena SIMONI Giuseppe GORGOGLIONE Relazione della prova finale di: Carmine Carella Matricola: 055465 Anno Accademico 2009/2010

1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Embed Size (px)

Citation preview

Page 1: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

11

UNIVERSITA’ DEGLI STUDI DI MILANO BICOCCAFACOLTA’ DI SCIENZE MATEMATICHE, FISICHE E NATURALI

Corso di Laurea Magistrale in Informatica

Automazione di Test di Sistemi Embedded

Relatore: Prof. Mauro PEZZE’

Correlatori: Lorena SIMONI

Giuseppe GORGOGLIONE

Relazione della prova finale di:

Carmine Carella

Matricola: 055465

Anno Accademico 2009/2010

Page 2: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Il Software nei sistemi embeddedIl Software nei sistemi embedded Testing nei sistemi embeddedTesting nei sistemi embedded Automazione del TestingAutomazione del Testing Il Progetto CartesioIl Progetto Cartesio Contributo della TesiContributo della Tesi Attività di testingAttività di testing ConclusioniConclusioni

IndiceIndice

Page 3: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Incidenza percentuale dei sistemi embedded nel costo finale dei prodotti (1)

(1) Brandolese, C. and Fornaciari, W., Sistemi Embedded - sviluppo hardware e software per sistemi dedicati, 2007, Mondadori

Fatturato del software embedded per categoria(1)

(AAGR - Average Annual Growth Rate)

Mercato globale dei sistemi embedded in miliardi di dollari (1)

Utilizzo recente dei sistemi operativi per sistemi embedded (1)

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Il SW nei Sistemi EmbeddedIl SW nei Sistemi Embedded

Page 4: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Fasi Tipologie di Testing Software Processore Sistema Ambiente

Simulazione

One way Simulato - - -

Feedback Simulato - - -

Rapid prototyping Sperimentale Sperimentale Sperimentale Reale

Prototipazione

Test unità/integrazione sw (1)

Sperimentale/reale (host) Host Simulato Simulato

Test unità/integrazione sw (2) Reale (finale) Emulatore Simulato Simulato

Test unità/integrazione hw - Reale (finale) Reale (finale) Reale (finale)

Test integrazione hw/sw Reale(finale) Reale (finale) Sperimentale Simulato

Test di sistema Reale(finale) Reale (finale) Prototipo SimulatoTest ambientale Reale(finale) Reale (finale) Prototipo maturo Simulato

Pre-produzione Test di sistema Reale(finale) Reale (finale) Reale Reale

Post-produzione Test mantenimento Reale(finale) Reale (finale) Reale (finale) Reale (finale)

Testing nei Sistemi EmbeddedTesting nei Sistemi Embedded

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 5: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Cross-compilazione

Ambiente Host

Ambiente di sviluppo

Host-testing

Ambiente Target

Ambiente di esecuzione

Target-testing

Verifica delle Verifica delle caratteristiche non caratteristiche non funzionali del SWfunzionali del SW

Verifica delle Verifica delle caratteristiche non caratteristiche non funzionali del SWfunzionali del SW

Test integrazione hw/swTest integrazione hw/sw Test di sistemaTest di sistema

Test integrazione hw/swTest integrazione hw/sw Test di sistemaTest di sistema

Gli ambienti di TestingGli ambienti di Testing

Approccio simulativo Approccio simulativo tramite emulazione tramite emulazione

di piattaformadi piattaforma

Approccio simulativo Approccio simulativo tramite emulazione tramite emulazione

di piattaformadi piattaforma

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 6: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Importanza:Importanza: migliora efficacia ed efficienza del migliora efficacia ed efficienza del testingtesting

Problema:Problema: Soluzioni ad-hoc (application-specific)Soluzioni ad-hoc (application-specific)

Metodologie interne aziendaliMetodologie interne aziendali Letteratura scarsa e approcci poco concretiLetteratura scarsa e approcci poco concreti

Soluzione proposta: Soluzione proposta: personalizzazione di strumenti off-the-shelf per personalizzazione di strumenti off-the-shelf per

adattarli all’architettura specifica in modo garantire adattarli all’architettura specifica in modo garantire il corretto funzionamento dello strumento di il corretto funzionamento dello strumento di automazioneautomazione

Automazione del testingAutomazione del testing

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 7: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

PND CustomerUSBUSB

SDCARDSDCARD

NANDNAND

CLCDTOUCHPANEL

CLCDTOUCHPANEL

KEYBOARDKEYBOARD

POWERMANAGEMENT

POWERMANAGEMENT

AUDIOAUDIOGPSGPS

GPIOGPIO

ETHERNETETHERNET

SERIAL PORT

SERIAL PORT

GraphicGraphic

Il Progetto CartesioIl Progetto Cartesio

BSP linux CartesioBSP linux Cartesio

Sviluppo e testing sw in STM

• GUI e applicazioni proprietarie

• BSP customizzato

• GUI e applicazioni proprietarie

• BSP customizzato

Board STBoard ST

PROCESSO TESTING •Test object: device

driver• manual and automatic

test suite• Test funzionali e

strutturali• Test report: excel

Sviluppo BSP LINUX CARTESIO

FirmwareBootloader

Kernel + (BSP) device driver

Command line interface

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 8: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Analisi fattibilità e costi della soluzione adottata:Analisi fattibilità e costi della soluzione adottata: Valutazione caratteristiche non funzionali del sw Valutazione caratteristiche non funzionali del sw

nell’ambiente target attraverso 4 attivita’ di testing nell’ambiente target attraverso 4 attivita’ di testing rilevanti nel processo di testing del BSP Linux Cartesiorilevanti nel processo di testing del BSP Linux Cartesio

Attività di Testing Classe problemi analizzati

Requisiti di Qualità

prestazioni codice infase di boot

punti critici del softwarecon maggiore tempo di esecuzione

nella fase di bootprestazioni

uso e gestione dellamemoria

memory leak prestazioni,affidabilità

prestazioni di I/O sudispositivi di mass

storage

scarsa efficienza delle operazionidi I/O (lettura, scrittura) prestazioni

test di copertura problemi nell’efficacia dei test

funzionali e strutturali dell’ambiente sperimentale

copertura

Contributo della TesiContributo della Tesi

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 9: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Obiettivi e Scelta Strumento:Obiettivi e Scelta Strumento: Profiling: strategia per valutare le prestazioni del codiceProfiling: strategia per valutare le prestazioni del codice Function Tracing - tecnica di profiling per valutazione di:Function Tracing - tecnica di profiling per valutazione di:

Prestazioni funzioni kernel eseguite al bootPrestazioni funzioni kernel eseguite al boot Funzioni dei device driverFunzioni dei device driver

Analisi e scelta strumento di automazione Bootchart Ftrace

Ftrace: framework del kernel LinuxFtrace: framework del kernel Linux Function Graph Tracer:Function Graph Tracer:

Misura il tempo di esecuzione delle funzioni (durata delle funzioni)Misura il tempo di esecuzione delle funzioni (durata delle funzioni) Costruisce il grafo delle chiamateCostruisce il grafo delle chiamate Debug filesystem per esportare i risultati nello user-spaceDebug filesystem per esportare i risultati nello user-space

Valutazione delle Prestazioni del Valutazione delle Prestazioni del Codice nella Fase di Boot (1)Codice nella Fase di Boot (1)TESTIN

G

EMBED

DED

AUTO

MAZIO

NE

AMBIEN

TE SPERIM

ENTALE

ATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 10: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Personalizzazione di Function Graph Tracer Personalizzazione di Function Graph Tracer per l’applicazione su architettura ARMper l’applicazione su architettura ARM

GCC

KERNEL

Function{ probe

}

Mcount

arch/arm/kernel/entry-common.S

Function Graph Tracer

__gnu_mcount_mc

compila

invoca

invoca

Valutazione delle Prestazioni del Valutazione delle Prestazioni del Codice nella Fase di Boot (2)Codice nella Fase di Boot (2)TESTIN

G

EMBED

DED

AUTO

MAZIO

NE

AMBIEN

TE SPERIM

ENTALE

ATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 11: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

ProblemaProblema: valori : valori durata non durata non accuratiaccurati

SoluzioneSoluzione: utilizzo : utilizzo di un timer ad alta di un timer ad alta risoluzionerisoluzione

API Sched-clock()

Modifica driver del timer: arch/arm/mach-cartesio/time.c Modifica driver del timer: arch/arm/mach-cartesio/time.c

Struttura di StatoStruct clock_sourceClock_source_read()

LR/HR Hardware clock chips

Device driver timer

LR/HR Timer Framework

APIdefinisce

implementa

invoca

HardwareHR timer clock chip

Function Duration Tracer

chiama astrae

Sottosistema time-management kernel

Valutazione delle Prestazioni del Valutazione delle Prestazioni del Codice nella Fase di Boot (3)Codice nella Fase di Boot (3)TESTIN

G

EMBED

DED

AUTO

MAZIO

NE

AMBIEN

TE SPERIM

ENTALE

ATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 12: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Valutazione delle Prestazioni del Codice nella Valutazione delle Prestazioni del Codice nella Fase di Boot (4)Fase di Boot (4)

Risultati SperimentaliRisultati Sperimentali

Ambiente Target Ambiete Host

Function Graph Tracer

Star

tup

sist

ema

Kernel-space

Debug file system

User-space

Risultati

Strumento Post-AnalisiFDD

MMC

Risultati

0.18sec

0.05sec

0.04sec

0.02sec

0.02sec

(Valori temporali in microsecondi)

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 13: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Memory leakage: Memory leakage: consumo di memoria Zona di memoria non più necessaria, non deallocata Errore di programmazioneErrore di programmazione

Rilevanza nei sistemi embeddedRilevanza nei sistemi embedded Impatto negativo prestazioni e affidabilità sistemaImpatto negativo prestazioni e affidabilità sistema

Scelto e personalizzato Scelto e personalizzato kmemleakkmemleak Memory leak nei device driverMemory leak nei device driver

cartesio_sga_probe

cartesio_sga_init

Fase Fase inizializzazione inizializzazione driverdriver Funzione initFunzione init Funzione exitFunzione exit

Rilevazione di Memory LeakRilevazione di Memory Leak

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 14: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

50.207 KB/s (media)

9.204 KB/s (media)

57.642 KB/s (media)

1018 KB/s (media)

Obiettivi:Obiettivi: Valutare le Valutare le

prestazioniprestazioni OttimizzazioneOttimizzazione

Strumenti base Strumenti base time cp source desttime cp source dest

LimiteLimite: scarsa : scarsa efficacia per processi efficacia per processi di ottimizzazionedi ottimizzazione

Strumenti Strumenti complessicomplessi per per correlare le correlare le prestazioni ad altri prestazioni ad altri parametri: cpu cache, parametri: cpu cache, buffer cache, ecc.buffer cache, ecc.

IOzoneIOzone

Valutazione delle Prestazioni di Valutazione delle Prestazioni di I/O su Dispositivi di Mass StorageI/O su Dispositivi di Mass Storage

Device driver MMC su release BSP 2.3 e 2.4Device driver MMC su release BSP 2.3 e 2.4

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 15: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Problema: Problema: Approcci ad-hocApprocci ad-hoc

Soluzione:Soluzione: Personalizzazione di strumenti generaliPersonalizzazione di strumenti generali

Risultati:Risultati: Approccio ad-hoc superatoApproccio ad-hoc superato Personalizzazione, può influenzare la raccolta e Personalizzazione, può influenzare la raccolta e

l'analisi dei risultati per valutare la qualitàl'analisi dei risultati per valutare la qualità Migliorato il processo di testing STMMigliorato il processo di testing STM

aree di qualità non esplorate aree di qualità non esplorate strumenti di automazionestrumenti di automazione

ConclusioniConclusioni

TESTING

EM

BEDD

EDAU

TOM

AZION

EAM

BIENTE

SPERIMEN

TALEATTIVITA’ TESTIN

GCO

NCLU

SION

I

SW

SISTEMI

EMBED

DED

CON

TRIBUT

O TESI

Page 16: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Criteri Scelta Strumenti di Criteri Scelta Strumenti di AutomazioneAutomazione

1.1. Instrumentazione (implicita o esplicita), Instrumentazione (implicita o esplicita), 2.2. Licenza degli strumentiLicenza degli strumenti3.3. Linguaggio di programmazione con il quale è Linguaggio di programmazione con il quale è

scritto il sw da testarescritto il sw da testare4.4. Sistema operativoSistema operativo5.5. Architettura hw utilizzata Architettura hw utilizzata 6.6. Ambito di utilizzo e integrazione (strumenti user-Ambito di utilizzo e integrazione (strumenti user-

space e kernel-space)space e kernel-space)7.7. Interfaccia e reporting (GUI/command-line)Interfaccia e reporting (GUI/command-line)

Page 17: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Rilevazione di Memory Leak (1)Rilevazione di Memory Leak (1)Scelta dello StrumentoScelta dello Strumento

Non necessaria la Non necessaria la personalizzazione personalizzazione per l’architettura per l’architettura ARMARM

Facilmente Facilmente integrabile nel integrabile nel kernelkernel

Page 18: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Rilevazione di Memory Leak (2)Rilevazione di Memory Leak (2)nei device drivernei device driver

Fasi di un device driver:Fasi di un device driver: EsecuzioneEsecuzione InizializzazioneInizializzazione

Fase InizializzazioneFase Inizializzazione Fase platform-dependet Fase platform-dependet

del processo di boot del del processo di boot del kernelkernel Registrazione dei Registrazione dei

devicedevice Registrazione dei Registrazione dei

driverdriver Associazione tra Associazione tra

device e driverdevice e driver

Associazione tra device e driver

Page 19: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Rilevazione di Memory Leak (3)Rilevazione di Memory Leak (3)Risultati SperimentaliRisultati Sperimentali

Errore programmazioneErrore programmazione: mancanza dell’istruzione di deallocazione della : mancanza dell’istruzione di deallocazione della struttura di statostruttura di stato

Funzione probe e funzione removeFunzione probe e funzione remove

FUNZIONE PROBE

struct cartesio_sga *sgasga=kzalloc(struct cartesio_sga)

FUNZIONE PROBE

struct cartesio_sga *sgasga=kzalloc(struct cartesio_sga)

FUNZIONE REMOVE

kfree (sga)

FUNZIONE REMOVE

kfree (sga)

MEMORIAMEMORIA

struttura di statostruttura di stato

sgasgastruttura di statostruttura di stato

struttura di statostruttura di stato

struttura di statostruttura di stato

Rilevazione dell'errore con kmemleak

Problema con i driver caricati come modulo

cartesio_sga_probe

cartesio_sga_init

Page 20: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Rilevazione di Memory Leak (4)Rilevazione di Memory Leak (4)Risultati SperimentaliRisultati Sperimentali

Errore programmazioneErrore programmazione: mancanza salvataggio dell’handle della struttura : mancanza salvataggio dell’handle della struttura di stato allocatadi stato allocata

Funzione probeFunzione probeFUNZIONE PROBE

struct cartesio_sga *sgasga=kzalloc(struct cartesio_sga)

amba_set_drvdata(dev,sga)

FUNZIONE PROBE

struct cartesio_sga *sgasga=kzalloc(struct cartesio_sga)

amba_set_drvdata(dev,sga)

MEMORIAMEMORIA

struttura di statostruttura di stato

sgasga

Struct device

Struct device_private *p

Struct device

Struct device_private *p

Rilevazione dell'errore con kmemleak

cartesio_sga_probe

cartesio_sga_init

Page 21: 1 UNIVERSITA DEGLI STUDI DI MILANO BICOCCA FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Automazione di

Valutazione delle Prestazioni di I/O su Valutazione delle Prestazioni di I/O su Dispositivi a BlocchiDispositivi a Blocchi

Scelta dello Strumento e PersonalizzazioneScelta dello Strumento e Personalizzazione Scelta dello strumento di automazione:Scelta dello strumento di automazione:

Bonnie e Bonnie++: valutazione di prestazioni su hard disk (tempi di seek)Bonnie e Bonnie++: valutazione di prestazioni su hard disk (tempi di seek) Tiobench: stress test multi-threadTiobench: stress test multi-thread IozoneIozone: verificare le prestazioni con l’influenza della gerarchia di memorie. Più : verificare le prestazioni con l’influenza della gerarchia di memorie. Più

completocompleto diverse operazioni: read, write dimensioni di file differenti (da 64KB a 512MB) trasferiti con record di diverse

dimensioni (da 4K a 16MB)

Ambiente TargetAmbiente Target Ambiete HostAmbiete Host

IOzoneIOzone

Risultati compatibili excel

Risultati compatibili excel

User-space

ExcelExcelMMC

Risultati

PersonalizzazionePersonalizzazioneCC= ccC89= c89GCC= gccCCS= /usr/ccs/bin/ccNACC= /opt/ansic/bin/cc

CC= ccC89= c89GCC= gccCCS= /usr/ccs/bin/ccNACC= /opt/ansic/bin/cc

CC= arm-stm-linux-gnueabi-gccC89= c89GCC= gccCCS= /usr/ccs/bin/ccNACC= /opt/ansic/bin/cc

CC= arm-stm-linux-gnueabi-gccC89= c89GCC= gccCCS= /usr/ccs/bin/ccNACC= /opt/ansic/bin/cc