ARM920T SAMSUNG s3c2440 partendo da zero

Documenti analoghi
Lanciare MPLAB IDE (Start->Programmi->Mirochip->MPLAB IDE v7.22->mplab IDE):

assembler linker-loader subroutine

COSTRUZIONE DI UN APPLICAZIONE

1. Introduzione. 2. Installazione di WinEMTFree. 3. Descrizione generale del programma

2 Lavorare con Eclipse

I programmi Assembler e Linker

Imagicle Hotel. Guida alla configurazione delle centrali Aastra.

Lab 01 Introduzione a Codelite

CardioChek Link Manuale d'uso

PROCEDURA DI INSTALLAZIONE DRIVER WINDOWS 8 (32 o 64 BIT)

Come aggiornare il firmware sulle stampanti largo formato

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

CardioChek Link Manuale d'uso

COSTRUZIONE DI UN APPLICAZIONE

Aggiornamento bit Ten: Firmware e Software PC

Istruzioni per il trasferimento di dati dal fotometro Lovibond PoolDirect / MultiDirect SpectroDirect / PCSPECTRO II

ACCENSIONE E VERIFICHE DA FARE

Ston. Manuale per l installazione del modulo batteria aggiuntivo. Rev. 1.00

PROCEDURA DI INSTALLAZIONE DRIVER WINDOWS 7 (32 O 64 BIT) N-Com Wizard 2.0 (o superiore)

Da quali parti è composto un sistema operativo?

MICROCONTROLLORE AT89C2051

INTRODUZIONE A VISUAL STUDIO

KISSsoft 03/2016. Installazione di una licenza "utente singolo" KISSsoft. KISSsoft AG Rosengartenstrasse Bubikon Switzerland

Avvio di Personal Sound System (PSS)

Manuale telecamere IP

Manuale d uso Gestionale NOVACAF

Utilizzo delle Maschere in Microsoft Access

Guida all installazione ed all uso di ASIM

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Procedura d'aggiornamento firmware della Telemetry Box

BUDVR4PLUS - BUDVR16PLUS

Operazioni preliminari: creare una cartella in Documenti

Linguaggi di programmazione

Debug di un programma

Version /28/2013. Manuale Utente. Wireless N H.264 Day/Night Network Camera DCS-933L

Utilizzo della Guida in linea

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

i-on Flashloader Guida all Installazione e all Uso

DMX LIGHTPLAYER Introduzione...2 Libreria DMX...3 Programmazione dei canali...7 Creazione di uno show...11

1. Introduzione. 1.1 Precauzioni di sicurezza. 1.2 Sistema richiesto. 1.3 Contenuto del pacco

Iridium Manuale Aggiornamento Firmware HT10001

Debugger. Marco Alberti Programmazione e Laboratorio, A.A

L aggiornamento del firmware aggiornerà il firmware di WAC700 e WACS700 alla Versione

GUIDA RAPIDA EDILCONNECT

Manuale aggiornamento modulo comando al volante

Software WinEeprom Evo

Compilazione separata

Guida SWI-Prolog. Installazione. SWI-Prolog può essere scaricato dal sito web:

TRUST AMI MOUSE WIRELESS 300

SOFTWARE DI PROGRAMMAZIONE CENTRALINA D'IRRIGAZIONE HIRIS/COMPACT

SISTEMA GESTIONE TOMBINI

Hardware. Utilizzo del Bluetooth

SEE Electrical Expert V4: FAQ

Utilizzo delle Maschere in Microsoft Access

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

COSA CONTIENE LA CHIAVETTA

Evoluzioni Software s.n.c. SLpw Guida all'uso Pag.1 di 49

SIGLA: DT 01 REV.: 00 MANUALE OPERATIVO RILEVAMENTO PRESENZE CON LETTORE OTTICO DATA: 5/02/2015 MANUALE OPERATIVO

PER UTILIZZARE LCC IN LAB

EFA Automazione S.r.l. SB3Conf Help V1.00 (01 ITA).doc pag. 1 / 10

Aggiornamento del firmware per il trasmettitore wireless WT 7

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. ATOS su Mac OS 10.5, OS 10.6 e OS 10.7+

Fondamenti di Informatica II 6. Esercitazioni Laboratorio 1

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. ATOS su Windows 32 bit e 65 bit

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. OBERTHUR su Windows 32 bit e 65 bit

Introduzione a Visual Studio 2005

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. ATOS su Linux 32 bit e 64 bit

PROCEDURA D INSTALLAZIONE DEL SOFTWARE DELLA CARTA TS-CNS. ACTALIS su Windows 32 bit e 65 bit

Jamio openwork data source connector for QlikView

1.1 Caratteristiche tecniche

Brainstorm. Troubleshooting. 1- Come trovare l indirizzo ip di un pc?... 2 Windows XP... 2 Windows Windows Mac OS X...

Magic snc Via San Giobbe 3 Funo Argelato Bologna Tel Fax P.I

Linguaggi, compilatori e interpreti

Sistema di monitoraggio PVI AEC EVO: Pulizia della SD Card interna al Datalogger per la risoluzione di errori di memoria piena

Conergy IPG Setup Tool

Manuale installazione DiKe Util

Mosaico Engineering Guida Utente

ADSL Modem :: Ericsson B-Quick (HM120d)

Uso di Lava Connect per il trasferimento dati ULDC

Manuale GWCAP MANUALE. Software per la realizzazione di capitolati d appalto per gli impianti elettrici

Startup Guide. Manuale di installazione ed uso. FluctuS Intelligent Sensor System

Aggiornamento del firmware della fotocamera

Up Grade Firmware ADM 1650 SMC

CPE ALL-IN-ONE WIRELESS 5GHz DA ESTERNO ART

Itron AIMSPro Attivazione di una nuova connessione: Guida introduttiva

Salvataggio registrazioni da IP-cam a dispositivo ISCSI

Sas OnDemand for Academics & SAS e-learnings. Metodi Quantitativi per Economia, Finanza e Management

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Download applicazione LOCUS

2. Funzionalità principali aggiunte a questa versione del software

1 ) Si preme il pulsante endorale il controller del sensore parte, diventa verde ma appare una finestra in mezzo allo schermo.

Università di Ferrara Facoltà di Ingegneria. Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B

Preparazione alle Esercitazioni

PROCEDURA DI ESTRAZIONE STAMPA REPORT E LETTERE DI SOLLECITO (serial 44)


QUICK START icontrol+/icontrolight

PG5 Starter Training Applicazione Daniel Ernst EN Stefano Peracchi IT

MANUALE ISTRUZIONI CONTROLLER DIGITALE A SINGOLA PORTA PER LA GESTIONE DI 2048 LED PIXEL ALIMENTAZIONE 5V / 7,5-24V (T-1000S)

USB TO SERIAL Adattatore da USB a Seriale

Transcript:

03.e ARM920T SAMSUNG s3c2440 partendo da zero A. Barbalace, M. Comin, C. Fantozzi, G. Manduchi System on Chip Samsung s3c2440: : che cos è è? 1 Il chip SAMSUNG s3c2440 integra un elevato numero di periferiche nello stesso chip, da cui il nome System On Chip (SoC). Il sistema di sviluppo è costituito da due schede (PCB printed circuit board): una, più piccola, su cui è saldato il SoC Samsung ed una seconda, più grande, la Motherboard, su cui si trova la circuiteria necessaria alla connessione di tutte le periferiche.

Vista del sistema di sviluppo 2 Samsung s3c2440a SDRAM Flash Alimentatore 12V Pulsante RESET CODEC IIS amplificatore speaker Pulsanti connessi al port I/O USB host USB client Chip e connettore RS232 Controller e connettore Ethernet Led e switch Pulsanti OFF e ON Scrittura di un programma 3 Editing Assembl. Collegam. moduli Collaudo

Ambiente di sviluppo 4 Programma Text Editor Per la scrittura e la modifica del testo sorgente Programma Assemblatore Traduce il testo sorgente in modulo oggetto Programma Linker Costruisce il programma eseguibile Programma Debugger Esegue il programma sotto controllo del programmatore Assemblatore e linker 5

Il primo programma 6 Preparare l ambiente di lavoro su PC Scrivere il programma Compilare e linkare Accendere il sistema Caricare il programma Eseguire il programma Non funziona... Premere RESET! Compilare e linkare (1 di 2) Partiamo dal seguente programma in assembly: 7 1 /*add1.s**************************************************** 2 * somma di due numeri : * 3 * addendi immediati, risultato su registro * 4 ***********************************************************/ 5 6.text 7.global _start 8 _start: 9.global add1_func 10 add1_func: 11 mov r0, #10 @ carica il primo operando 12 mov r1, #15 @ carica il secondo operando 13 add r2, r1, r0 @ esegue la somma 14 add1_end: 15 b add1_end @ trappola 16 17.end 18 19 /**********************************************************/ 20 /* Suggerimento/variante: */ /* in esecuzione passo-passo cambiare il valore contenuto */ 22 /* nei registri r0, r1 prima di eseguire la somma */ 23 /**********************************************************/

Compilare e linkare (2 di 2) 1) Assemby del programma tramite il seguente comando: arm-elf-as --gdwarf-2 -o add1.o add1.s 8 --gdwarf-2: specifica che si vogliono includere, nel modulo oggetto, informazioni di debug -o <file>.o: specifica il file di output (in cui verrà prodotto il modulo oggetto); <file>.s: specifica il file di input (contenente il modulo sorgente da tradurre). 2) Creazione dell eseguibile (in formato ELF): arm-elf-ld -Ttext 0x30000000 -o add1 add1.o -Ttext 0x30000000 specifica l indirizzo di memoria a partire dal quale si vuole che venga caricato il segmento.text Avviare il sistema Samsung s3c2440 (1 di 2) 9 Prima di avviare il sistema di sviluppo e necessario: 1) controllare che l alimentatore sia collegato alla rete elettrica e alla scheda; 2) collegare la scheda al computer host tramite una connessione seriale; 3) aprire un terminale nel computer host.

Avviare il sistema Samsung s3c2440 (2 di 2) Si procede poi con i seguenti punti: 4) PRIMA - alimentare il sistema azionando l interruttore on, situato in basso a destra; 5) POI (prima che siano trascorsi 10 secondi, sennò sul sistema di sviluppo si avvia Linux) impartire, dal terminale, il comando di connessione alla scheda: sh connetti.sh che avvia il programma kgdb, che è la parte di debugger residente sul sistema di sviluppo, con cui colloquierà il debugger (insight) residente sul PC host; 6) l accensione, sui led della scheda, del valore 0xAAAA segnala che la connessione e l avvio del debugger sulla scheda sono avvenuti correttamente. 10 Caricare il programma (1 di 4) Il programma viene caricato ed eseguito sotto il controllo del debugger tramite il tool insight. 11 Il tool viene lanciato, sul PC host, dal comando: arm-elf-insight -nx Scegliere File->Open e selezionare il programma precedentemente prodotto in formato ELF (nel nostro caso, add1)

Caricare il programma (2 di 4) Occorre adesso richiedere al debugger di connettersi alla scheda (target) selezionando Run -> Connect to Target. Si imposta quindi la finestra Target Selection come da figura, eccetto il il campo Port, posto a /dev/ttys0 Si preme infine il pulsante Ok, e la connessione tra host e scheda viene instaurata 12 Caricare il programma (3 di 4) Una volta connesso, l interfaccia diventa vuota. Cio e dovuto al fatto che il processore Samsung sta eseguento il codice di UBOOT, e non ancora il programma add1. Quest ultimo deve essere infatti ancora caricato. Si puo tornare alla visualizzazione del programma selezionandolo dal menu a tendina in alto. 13

Caricare il programma (4 di 4) Ora il programma puo essere scaricato dall Host alla scheda target tramite il comando Run->Download. 14 A questo punto il codice e stato caricato nella memoria del Samsung, a partire dall indirizzo 0x30000000 ed e pronto per essere eseguito, con il comando Run. Eseguire il programma (1 di 2) Per quanto fatto nei passi precedenti, l esecuzione si è fermata alla prima riga di codice del nostro file. Si procede quindi con l esecuzione passo passo usando oppure a seconda che si vogliano eseguire le istruzioni passo passo o si voglia eseguire tutta la chiamata ad una subroutine. Si possono anche definire dei breakpoint, sui quali l esecuzione si sospenderà. 15

Eseguire il programma (2 di 2) E possibile visualizzare lo stato del processore Samsung tramite il comando View->Registers La finestra evidenziera il contenuto dei registri e le modifiche conseguenti alle esecuzione delle istruzioni. Sara altresi possibile, tra le altre cose, alterare il contenuto di questi registri. 16 File di listing Per produrlo (nel file add1.lst) aggiungere l opzione a > add1.lst nel comando arm-elf-as: arm-elf-as --gdwarf-2 -o add1.o add1.s a > add1.lst 17 1 /*add1.s**************************************************** 2 * somma di due numeri : * 3 * addendi immediati, risultato su registro * 4 ***********************************************************/ 5 6.text 7.global _start 8 _start: 9.global add1_func 10 add1_func: 11 0000 0A00A0E3 mov r0, #10 @ carica il primo operando 12 0004 0F10A0E3 mov r1, #15 @ carica il secondo operando 13 0008 002081E0 add r2, r1, r0 @ esegue la somma 14 add1_end: 15 000c 010000EA b add1_end @ trappola 16 17.end

Oltre ad assemblatore e linker (1 di 2) arm-elf-objdump D -S add1.o > add1.odump produce, in add1.odump, il disassemblato del modulo oggetto add1.o arm-elf-objdump D -S add1 > add1.edump produce, in add1.edump, il disassemblato del modulo eseguibile add1 arm-elf-nm -a -l add1 > add1.sym stampa, in add1.sym, la lista di tutti i simboli usati nel modulo eseguibile arm-elf-size add1 > add1.size stampa, in add1.size, la lunghezza delle varie sezioni 18 Oltre ad assemblatore e linker (2 di 2) Per tutti i comandi, maggiori informazioni sulle opzioni disponibili possono essere ottenute con man <nomecomando> 19

Esempio d uso d di arm-elf elf-objdump (1 di 2) 20 Disassemblato del modulo oggetto add1.o ottenuto con il comando arm-elf-objdump add1.o D add1.o: file format elf32-littlearm Disassembly of section.text: 00000000 <_start>: 0: e3a0000a mov r0, #10 ; 0xa 4: e3a0100f mov r1, #15 ; 0xf 8: e0812000 add r2, r1, r0 0000000c <add1_end>: c: ea000001 b c <add1_end>... Esempio d uso d di arm-elf elf-objdump (2 di 2) Disassemblato del modulo eseguibile add1 ottenuto con il comando arm-elf-objdump add1 D add1: file format elf32-littlearm Disassembly of section.text: 30000000 <_start>: 30000000: e3a0000a mov r0, #10 ; 0xa 30000004: e3a0100f mov r1, #15 ; 0xf 30000008: e0812000 add r2, r1, r0 3000000c <add1_end>: 3000000c: eafffffe b 3000000c <add1_end>...

Fine 03.e ARM920T SAMSUNG s3c2440 partendo da zero