<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>

<channel>
	<title>InTiLinuX &#187; Embedded</title>
	<atom:link href="http://www.intilinux.com/category/embedded/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.intilinux.com</link>
	<description>INTelligence In LINUX</description>
	<lastBuildDate>Wed, 10 Feb 2010 23:01:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
		<item>
		<title>Using Open Source Tools for STR7xx Cross Development</title>
		<link>http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/</link>
		<comments>http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/#comments</comments>
		<pubDate>Mon, 17 Dec 2007 09:04:16 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[English Howto]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/</guid>
		<description><![CDATA[This is a work done by Giacomo Fazio (aka l3golas) and Antonio Nasca, with the purpose to explain how to develop, run and debug embedded software on a class of ST microcontrollers (STR71x, STR73x, STR75x, based on the core ARM7TDMI), using only open-source solutions. In fact nowadays there are many proprietary IDEs (IAR, RealView, etc.) [...]]]></description>
			<content:encoded><![CDATA[<p>This is a work done by Giacomo Fazio (aka l3golas) and Antonio Nasca, with the purpose to explain how to develop, run and debug embedded software on a class of ST microcontrollers (STR71x, STR73x, STR75x, based on the core <strong>ARM7TDMI</strong>), using only open-source solutions. In fact nowadays there are many proprietary IDEs (IAR, RealView, etc.) which allow building and debugging of produced code on microcontrollers easily and quickly, but the licences for those IDEs are very expensive. So using free solutions (GNUARM, OpenOCD, Eclipse, etc.) that allow to compile and download code on many microcontrollers using cheap interfaces can be the best solution for that problem. Moreover, if we consider that all those solutions are open-source, you can understand how these programs are improving more and more and could have tomorrow features that today aren’t present or aren&#8217;t working properly.</p>
<p>This work is divided in two parts:</p>
<ul>
<li>Relation on the work done and step-by-step tutorial about how to install and use all these open-source solutions, both in Windows and in Linux, similar to the <a href="www2.amontec.com/sdk4arm/ext/jlynch-tutorial-20061124.pdf">tutorial</a> written by <strong>James P. Lynch</strong> for the serie Atmel <strong>AT91SAM7S</strong>.  </li>
<li>
Used software (programs, scripts, etc.)
</li>
</ul>
<p>You can download <a href="http://repo.intilinux.com/str/Using%20Open%20Source%20Tools%20for%20STR7xx%20Cross%20Development.zip">here</a> the zip file that includes everything.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>Fabula, il robot umanoide</title>
		<link>http://www.intilinux.com/internet/503/fabula-il-robot-umanoide/</link>
		<comments>http://www.intilinux.com/internet/503/fabula-il-robot-umanoide/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 10:20:20 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/internet/503/fabula-il-robot-umanoide/</guid>
		<description><![CDATA[Interessante simulatore di linguaggio naturale, con sintesi vocale incorporata.

Il video è stato scovato su youtube e non ho trovato nessuna notizia su questo simulatore di linguaggio naturale su internet. 
]]></description>
			<content:encoded><![CDATA[<p>Interessante simulatore di linguaggio naturale, con sintesi vocale incorporata.</p>
<p><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/UiuCfDUVLLM&#038;rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/UiuCfDUVLLM&#038;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p>
<p>Il video è stato scovato su youtube e non ho trovato nessuna notizia su questo simulatore di linguaggio naturale su internet. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/internet/503/fabula-il-robot-umanoide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>Usare le board Xilinx (FPGA) su Linux</title>
		<link>http://www.intilinux.com/programmazione/478/usare-le-board-xilinx-fpga-su-linux/</link>
		<comments>http://www.intilinux.com/programmazione/478/usare-le-board-xilinx-fpga-su-linux/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 12:11:32 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/howto/478/usare-le-board-xilinx-fpga-su-linux/</guid>
		<description><![CDATA[La tecnologia FPGA (Field programmable gate array) è senza dubbio molto interessante, in quanto si propone come un&#8217;alternativa (in certi casi) ai circuiti ASIC (Application Specific Integrated Circuit), cioè a quei circuiti integrati che normalmente siamo abituati a vedere e che sono stati prima progettati e poi realizzati in fabbrica. Questi ultimi hanno un costo [...]]]></description>
			<content:encoded><![CDATA[<p>La tecnologia<a href="http://it.wikipedia.org/wiki/Field_programmable_gate_array"> FPGA</a> (Field programmable gate array) è senza dubbio molto interessante, in quanto si propone come un&#8217;alternativa (in certi casi) ai circuiti <a href="http://it.wikipedia.org/wiki/ASIC">ASIC</a> (Application Specific Integrated Circuit), cioè a quei circuiti integrati che normalmente siamo abituati a vedere e che sono stati prima progettati e poi realizzati in fabbrica. Questi ultimi hanno un costo per chip bassissimo (ordine di grandezza del dollaro), parametri ottimizzati (es. bassa potenza dissipata), ma presentano molti svantaggi, tra cui cicli di progettazione e di produzione lunghissimi, costi iniziali molto elevati e impossibilità di correggere eventuali bug dopo aver prodotto il chip. <span id="more-478"></span><br />
Un dispositivo FPGA, invece, è un chip che contiene una matrice più o meno grande di blocchi logici (LUT) configurabili e di canali di routing e tutto questo è programmabile sul campo. Ciò significa che potremo decidere noi quali blocchi logici utilizzare e come collegarli tra loro, in modo da scegliere noi cosa vogliamo che il nostro circuito faccia: i blocchi sono lì a disposizione, sta a noi decidere quali e come impiegarli. Le caratteristiche di questa soluzione sono: cicli di produzione molto veloci, semplice correzione di eventuali bug (grazie alla possibilità di riprogrammare il tutto), costi iniziali quasi nulli, a fronte di caratteristiche meno ottimizzate rispetto alle soluzioni ASIC (ad esempio maggiore potenza dissipata, maggiore area occupata, ecc.).<br />
Ecco perché l&#8217;FPGA si pone come alternativa ai circuiti ASIC in determinati casi e permette tra l&#8217;altro di sperimentare divertendosi e imparando, dato che i modelli più a basso costo sono destinati soprattutto al mercato amatoriale.<br />
Diverse aziende, principalmente Xilinx e Altera, hanno cominciato (e continuano tuttora a pieno regime) a vendere board FPGA per lo sviluppo, con caratteristiche e prezzi diversi. Si va dai modelli a più basso costo (con un numero di LUT limitato e con prezzi anche inferiori ai 100 dollari) a quelli più costosi (con un numero elevato di LUT e con prezzi che di conseguenza salgono anche parecchio). Per l&#8217;uso amatoriale vanno benissimo anche i modelli più economici, in quanto il numero di LUT è più che sufficiente.<br />
La board che al momento sto utilizzando per un progetto universitario fa parte di quelle più a basso costo ed è il modello <strong>Spartan 3E-500 Starter Kit di Xilinx</strong>, che si presta bene a lavorare anche su Linux, in quanto il loro software ISE è sviluppato anche per il sistema operativo del pinguino, oltre che per Windows. Mi sembra quindi che si tratti di un&#8217;ottima scelta per cominciare, vediamo come far funzionare tutto.</p>
<p style="text-align: center;"><a title="spartan.png" rel="lightbox[pics-1195127900]" href="http://www.intilinux.com/wp-content/uploads/2007/11/spartan.png"><img class="imageframe imgaligncenter" src="http://www.intilinux.com/wp-content/uploads/2007/11/spartan.thumbnail.png" alt="spartan.png" width="400" height="316" /></a></p>
<h3>Installazione di ISE e del driver</h3>
<p>Scaricare il software dal sito di <a href="http://www.xilinx.com">Xilinx</a> (la versione ISE Webpack 9.2i è gratuita, basta registrarsi). Il pacchetto è unico perché comprende i file da installare per entrambi i sistemi operativi e si installa facilmente: basta lanciare l&#8217;eseguibile di installazione.<br />
Qualche accorgimento: se il computer è usato da una sola persona conviene lanciare l&#8217;installer da utente normale e non da root e installare il software nella propria home; se invece il computer è usato da più persone, conviene lanciare l&#8217;installer da root e magari installare il software nella directory /opt, creare un gruppo contenente le persone che dovranno usare il software e dare a tutto il gruppo i diritti sulla directory e le sue sottodirectory.<br />
Scegliamo i componenti da installare (ci sono dei componenti per il supporto alle varie tipologie di board, selezioniamo solo quello che ci interessa), togliamo il segno di spunta alla richiesta di installare i driver del cavo di collegamento della board al computer (in quanto lo faremo poi a parte), invece selezioniamo la ricerca di eventuali update (che ci sono quasi sempre, nel mio caso c&#8217;era addirittura un Service Pack), ricordando che per installare questi ultimi bisogna rilanciare l&#8217;installer.<br />
Dopo aver terminato l&#8217;installazione bisogna installare i driver del cavo, e qui arrivano le dolenti note. Xilinx dichiara che i driver del cavo su Linux funzionano su distribuzioni <strong>Red-Hat like</strong>, ma con kernel superiori a<strong> 2.6.16</strong> ci sono problemi, inoltre che fare se uno ha una Debian o una Ubuntu? Su Internet ci sono dei siti con delle guide su come riuscire a far andare i driver di Xilinx su una Debian con un kernel tra quelli più recenti, ma sono spesso ingarbugliate e bisogna usare il modulo del kernel proprietario windrvr; inoltre non è assolutamente detto che funzionino e il rischio di combinare un disastro sulla propria distribuzione è decisamente alto, soprattutto per un utente alle prime armi. Mentre stavo per convincermi a provare queste procedure, ho trovato su un sito la descrizione di un driver sviluppato da terze parti che utilizza tecnologie più recenti, funziona bene sulle distribuzioni anche con gli ultimi kernel e richiede solo qualche semplice passaggio per l&#8217;installazione. Inoltre il sito in questione dichiara che il driver funziona bene con le seguenti accoppiate:</p>
<blockquote><p>XILINX Platform Cable USB DLC9, DLC9LP and DLC9G<br />
Integrated Platform Cable USB on Spartan 3E starter kit<br />
Integrated Platform Cable USB on Spartan 3A starter kit<br />
Integrated Platform Cable USB on XUP-V2Pro<br />
XILINX Parallel Cable IV (in Parallel Cable III compatibility mode)<br />
Enterpoint Prog2 Parallel Cable III clone<br />
Trenz TE0149-01 Parallel Cable III clone<br />
Digilent JTAG3 Parallel Cable III clone<br />
Amontec JTAGkey-Tiny (experimental)</p></blockquote>
<p>mentre dovrebbe funzionare (anche se non è stato testato) con le seguenti accoppiate:<br />
Integrated Platform Cable USB on other development boards</p>
<p>other Parallel Cable III clones<br />
other FTDI2232 based devices which use the chips standard JTAG pinout (experimental)</p>
<p>Le versioni del software supportate sono le seguenti:</p>
<blockquote><p>ISE Webpack 9.2 SP1, SP2 and SP3<br />
ISE Webpack 9.1 SP1, SP2 and SP3<br />
ISE Webpack 8.2 SP3<br />
ISE Webpack 8.1 SP3<br />
ChipScope Pro 9.2.01i<br />
ChipScope Pro 9.1.02i and 9.1.03i<br />
ChipScope Pro 8.2.04i<br />
EDK 9.2.01i<br />
EDK 9.1.01i and 9.1.02i<br />
EDK 8.2.02i<br />
EDK 8.1.02i<br />
Synplicity Identify Debugger</p></blockquote>
<p>Il mio caso è quello del collegamento tramite cavo USB ed è quello che spiegherò adesso.<br />
Tanto per cominciare bisogna avere installato sulla propria distribuzione il pacchetto “libusb development”, su una Debian o Ubuntu o simili basta farlo mediante il comando</p>
<p><code><br />
apt-get install libusb-dev<br />
</code></p>
<p>A questo punto bisogna scaricare e compilare il driver, alternativamente è possibile scaricare qui il driver già compilato ma è meglio se lo compilate da voi. Vediamo come:</p>
<p>1) scaricate il driver del cavo all&#8217;indirizzo http://git.zerfleddert.de/cgi-bin/gitweb.cgi/usb-driver?a=snapshot;h=HEAD;sf=tgz o alternativamente potete scaricarlo mediante il comando</p>
<p><code><br />
git clone git://git.zerfleddert.de/usb-driver<br />
</code></p>
<p>dopo ovviamente avere installato git.</p>
<p>2) Estraete il driver mediante<br />
<code><br />
tar xzf usb-driver-HEAD.tar.gz<br />
</code></p>
<p>3) Entrate nella cartella del driver<br />
<code><br />
cd usb-driver<br />
</code><br />
3) Lanciate:<br />
<code><br />
make (se avete un sistema a 32 bit)<br />
make lib32 (se invece avete un sistema a 64 bit)<br />
</code></p>
<p>da cui otterrete il file libusb-driver.so</p>
<p>4) Copiate tale file in una cartella di sistema con il seguente comando<br />
<code><br />
cp libusb-driver.so /usr/local/lib/ [da root]<br />
</code><br />
5) A questo punto, dobbiamo creare la seguente variabile di ambiente mediante il comando<br />
<code><br />
export LD_PRELOAD=/usr/local/lib/libusb-driver.so<br />
</code></p>
<p>Adesso il driver dovrebbe essere installato correttamente. Per verificare, collegare la board al pc mediante il cavo e accenderla. Subito dopo, digitare [da root]</p>
<p><code><br />
lsusb<br />
</code></p>
<p>Tra i vari dispositivi, dovrebbe comparire anche il nostro cavo con a fianco un ID, che dovrebbe essere il seguente:</p>
<p><code><br />
03fd:0008<br />
</code></p>
<p>A me ha funzionato subito, se è così si può passare alla sezione successiva, altrimenti vuol dire che il firmware non è installato correttamente, quindi il README del driver propone di seguire i seguenti passi (sostituisci a ISE_DIR la directory in cui hai installato ISE):</p>
<p>1)Se non hai il file /etc/udev/rules.d/xusbdfwu.rules, copialo dalla sottodirectory ISE_DIR/bin/lin/xusbdfwu.rules alla directory /etc/udev/rules.d/</p>
<p>2)installa il pacchetto “fxload” nella tua distrubuzione se non è già presente</p>
<p>3)copia i file ISE_DIR/bin/lin/xusb*.hex nella directory /usr/share/</p>
<p>4)riavvia udev mediante /etc/init.d/udev restart e ricollega la board al pc mediante il cavo; riprovando a lanciare lsusb dovresti ottenere per il cavo l&#8217;id corretto</p>
<h3>Avvio di ISE</h3>
<p>Una cosa da fare prima di avviare ISE è creare (da root) il file /etc/udev/rules.d/libusb-driver.rules e inserire dentro il seguente codice, in modo che anche l&#8217;utente normale possa usare IMPACT (il “programmatore” di ISE):</p>
<p><code><br />
ACTION=="add", BUS=="usb", SYSFS{idVendor}=="03fd", MODE="666"<br />
</code></p>
<p>Lanciate il comando /etc/init.d/udev restart<br />
Prima di usare ISE, bisogna impostare delle variabili d&#8217;ambiente. Quindi andate nella cartella dove avete installato ISE e digitate</p>
<p><code><br />
source settings.sh (per una shell bash)<br />
</code></p>
<p>A questo punto possiamo avviare ISE mediante il comando</p>
<p><code>ise</code></p>
<p>Tuttavia, quando chiudiamo la sessione le variabili d&#8217;ambiente spariscono, quindi bisogna settarle di volta in volta. Bisogna anche settare di volta in volta anche la variabile LD_PRELOAD che avevamo settato precedentemente per il cavo. Inoltre, siccome ISE ha l&#8217;abitudine di salvare le variabili d&#8217;ambiente nella directory corrente da cui viene lanciato, sarebbe meglio fare in modo che questa directory sia proprio quella di ISE. Pertanto ho creato il seguente script, che si occupa di fare tutto ciò:</p>
<p><code><br />
#!/bin/sh<br />
#set ISE directory, put here yours<br />
XILINX_DIR=/home/l3golas/Xilinx92i<br />
#switch to XILINX directory<br />
cd ${XILINX_DIR}<br />
#load environment variables and cable driver<br />
source settings.sh<br />
export LD_PRELOAD=/usr/local/lib/libusb-driver.so<br />
#launch ISE!!!<br />
ise<br />
</code></p>
<p>Inseriamo il suddetto codice in un file ise_launcher.sh, modifichiamo ovviamente la directory XILINX_DIR sostituendola con la propria e rendiamo il file eseguibile mediante il comando</p>
<p><code><br />
chmod +x ise_launcher.sh<br />
</code></p>
<p>Creiamo un collegamento sul desktop a questo file in modo che, da questo momento in poi, potremo avviare ISE semplicemente da esso. E&#8217; tutto.</p>
<p>Altri link da cui mi sono ispirato e su cui cercare ulteriori informazioni, ad esempio su altri tipi di cavo, sono i seguenti:</p>
<p>http://www.rmdir.de/~michael/xilinx/</p>
<p>https://wiki.kip.uni-heidelberg.de/KIPwiki/index.php/EDV:Xilinx-USB-Treiber</p>
<p>http://stefan.endrullis.de/en/xilinx_ise_8.2_ubuntu.html</p>
<blockquote><p>Articolo scritto da L3golas.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/programmazione/478/usare-le-board-xilinx-fpga-su-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>FOX Board, un sistema Linux completo in soli 66 x 72 mm</title>
		<link>http://www.intilinux.com/embedded/369/fox-board-un-sistema-linux-completo-in-soli-66-x-72-mm/</link>
		<comments>http://www.intilinux.com/embedded/369/fox-board-un-sistema-linux-completo-in-soli-66-x-72-mm/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 10:26:38 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/embedded/369/fox-board-un-sistema-linux-completo-in-soli-66-x-72-mm/</guid>
		<description><![CDATA[La FOX Board è una Board Linux Embedded a basso costo di ridotte dimensioni e bassi consumi realizzata per facilitare la progettazione ed il time-to-market di dispositivi in grado di interagire con protocolli ed applicazioni di rete ed Internet .
La FOX Board è ideale per la progettazione di dispositivi dotati di interfaccia WEB, capacità di [...]]]></description>
			<content:encoded><![CDATA[<p>La <a href="http://www.acmesystems.it/">FOX Board</a> è una Board Linux Embedded a basso costo di ridotte dimensioni e bassi consumi realizzata per facilitare la progettazione ed il time-to-market di dispositivi in grado di interagire con protocolli ed applicazioni di rete ed Internet .<br />
La FOX Board è ideale per la progettazione di dispositivi dotati di interfaccia WEB, capacità di esecuzione in multitasking, gestione di apparati USB, memorizzazione di dati e tutte le caratteristiche evolute derivanti dall&#8217;uso di un vero sistema operativo.<br />
<span id="more-369"></span></p>
<p style="text-align: center;"><a href="http://www.intilinux.com/wp-content/uploads/2007/09/scheme_foxlx.jpg" rel="lightbox[pics-1190800481]" title="scheme_foxlx.jpg"><img src="http://www.intilinux.com/wp-content/uploads/2007/09/scheme_foxlx.thumbnail.jpg" width="400" height="340" alt="scheme_foxlx.jpg" class="imageframe imgaligncenter" /></a></p>
<p><strong><br />
Caratteristiche:</strong></p>
<p>Microprocessore <strong>Axis ETRAX 100 LX</strong> con architettura RISC a 32 bit 100MIPS<br />
Fino a 32MB di RAM e 16MB di FLASH (*)<br />
Interfacce: Una porta Ethernet 10/100Mb, due porte USB host 1.1, piazzamenti per due connettori di espansione da 20&#215;2 pin passo 2.54 mm su cui sono disponibili fino a 48 linee<br />
di I/O, I2C bus, SPI, porte seriali e parallele (**)</p>
<p>Esempio di montaggio del <strong>FoxCase</strong>, un case in plastica per Fox board:</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/ayNpGDvi-sg"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ayNpGDvi-sg" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p><strong>Documentazione</strong> in formato pdf in lingua italiana disponibile a <a href="http://www.acmesystems.it/articles/00004/FoxDescription_it.pdf">questo</a> indirizzo.</p>
<p>La board è realizzata da un&#8217;azienda Italiana: <strong>Acme Systems srl &#8211; Roma<br />
</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/embedded/369/fox-board-un-sistema-linux-completo-in-soli-66-x-72-mm/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>Using Open Source Tools for STR7xx Cross Development</title>
		<link>http://www.intilinux.com/howto/311/using-open-source-tools-for-str7xx-cross-development/</link>
		<comments>http://www.intilinux.com/howto/311/using-open-source-tools-for-str7xx-cross-development/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 13:32:05 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/howto/311/using-open-source-tools-for-str7xx-cross-development/</guid>
		<description><![CDATA[
La Guida è stata rimossa perchè absoleta. Si prega di andare a vedere la versione aggiornata in lingua inglese.

]]></description>
			<content:encoded><![CDATA[<blockquote><p>
La Guida è stata rimossa perchè absoleta. Si prega di andare a vedere la <a href="http://www.intilinux.com/embedded/530/using-open-source-tools-for-str7xx-cross-development-2/">versione aggiornata in lingua inglese</a>.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/howto/311/using-open-source-tools-for-str7xx-cross-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>Proviamo Sato sulla nostra Ubuntu Box</title>
		<link>http://www.intilinux.com/cellulari/306/proviamo-sato-sulla-nostra-ubuntu-box/</link>
		<comments>http://www.intilinux.com/cellulari/306/proviamo-sato-sulla-nostra-ubuntu-box/#comments</comments>
		<pubDate>Fri, 10 Aug 2007 09:54:56 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Cellulari]]></category>
		<category><![CDATA[Distro]]></category>
		<category><![CDATA[Embedded]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/cellulari/306/proviamo-sato-sulla-nostra-ubuntu-box/</guid>
		<description><![CDATA[Sato è un nuovo visual style per Poky Linux, la distribuzione Linux per dispositivi embendeed.
È stato sviluppato per funzionare a DPI molto alti e dimensioni limitate, adatto quindi a dispositivi come smartphones e PDAs.

Attualmente Poky Linux è installabile su Nokia N800 come dimostra questo video:

Caratteristiche di Poky Linux :
    * Linux 2.6.x [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.gnome.org/thos/2007/08/01/sato-has-landed/">Sato</a> è un nuovo visual style per <a href="http://pokylinux.org/">Poky Linux</a>, la distribuzione Linux per dispositivi embendeed.<br />
È stato sviluppato per funzionare a DPI molto alti e dimensioni limitate, adatto quindi a dispositivi come <strong>smartphones</strong> e <strong>PDAs</strong>.<br />
<span id="more-306"></span></p>
<p>Attualmente Poky Linux è installabile su <strong>Nokia N800</strong> come dimostra questo video:</p>
<p><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/CTEl0ux3cSk"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/CTEl0ux3cSk" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></p>
<p><strong>Caratteristiche di Poky Linux </strong>:</p>
<p>    * Linux 2.6.x kernel support.<br />
    * x86 and ARM (both OABI and EABI) architecture support out the box with provision for others too .<br />
    * Complete cross-compiling toolchain generation (gcc 3.4 and gcc 4.1 supported).<br />
    * System layer with tuned Busybox, tslib, glibc2.x, Kdrive 7.1 XServer (aka TinyX) and more.<br />
    * Complete customisable and optimised GNOME Embedded platform support for DBus / Gstreamer EDS Embedded / X11/ Matchbox / GTK+ / Cairo etc.<br />
    * Optional dpkg (Debian) or Ipkg software packaging support.<br />
    * QEmu (x86 and ARM) integration.<br />
    * Release, debug, profiling and SDK filesystem image builds supported.<br />
    * Easily ported to new boards/platforms to provide an incredably well featured BSP.<br />
    * Support for OProfile performance measurements with remote graphical UI.<br />
    * Support for Linux Trace Toolkit (LTTng) for further performance debugging.<br />
    * Fast multithreaded builds (two hours for full filesystem on commodity dual core hardware)<br />
    * 100% Open Source</p>
<p>E&#8217; comunque possibile <strong>provare Poky Linux</strong> e quindi <strong>Sato</strong> sulla nostra Ubuntu Box seguendo <strong>pochi semplici passi</strong>:</p>
<p>Aggiungiamo al nostro <strong>sources.list</strong>  deb http://debian.o-hand.com feisty/ (vedi <a href="http://debian.o-hand.com/">quì</a> per repo Debian) e successivamente: </p>
<p><code><br />
sudo apt-get update<br />
sudo apt-get install apt-get install qemu poky-scripts<br />
</code></p>
<p>Scarichiamo <strong>Poky QEMU</strong>  <a href="http://pokylinux.org/releases/blinky-3.0/zImage-2.6.21-blinky-3.0-qemuarm.bin">kernel</a> e l&#8217;<a href="http://pokylinux.org/releases/blinky-3.0/poky-image-sdk-qemuarm-blinky-3.0.rootfs.ext2.bz2">immagine compressa</a> del filesystem (deve essere decompressa successivamente).</p>
<p>Fatto questo ci posizioniamo nella cartella dove abbiamo scaricato i due file e eseguiamo:  </p>
<p><code><br />
poky-qemu zImage-2.6.21-blinky-3.0-qemuarm.bin poky-image-sdk-qemuarm-blinky-3.0.rootfs.ext2<br />
</code></p>
<p>Dopo il caricamento apparirà la seguente schermata:</p>
<div style="text-align: center;"><a class="imagelink" href="http://www.intilinux.com/wp-content/uploads/2007/08/schermata-qemu.png" rel="lightbox[pics]" title="schermata-qemu.png"><img id="image307" src="http://www.intilinux.com/wp-content/uploads/2007/08/schermata-qemu.miniatura.png" alt="schermata-qemu.png" height="313" width="400" class="imageframe imgaligncenter" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/cellulari/306/proviamo-sato-sulla-nostra-ubuntu-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
		<item>
		<title>OpenOCD : Open On Chip Debugger per soluzioni ARM</title>
		<link>http://www.intilinux.com/embedded/240/openocd-open-on-chip-debugger-per-soluzioni-arm/</link>
		<comments>http://www.intilinux.com/embedded/240/openocd-open-on-chip-debugger-per-soluzioni-arm/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 10:39:41 +0000</pubDate>
		<dc:creator>IntiLinux</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[applicazioni]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://www.intilinux.com/embedded/240/openocd-open-on-chip-debugger-per-soluzioni-arm/</guid>
		<description><![CDATA[OpenOCD è un programma open-source creato da Dominic Rath in occasione della propria tesi di laurea. Funziona sia da interfaccia TTY (via Telnet) per la connessione di un pc ad un dispositivo embedded, che da GDB server. Vediamo di chiarire entrambe le funzioni. 
Per quanto riguarda la connessione ad un target ARM, si utilizza il [...]]]></description>
			<content:encoded><![CDATA[<p><strong>OpenOCD</strong> è un programma open-source creato da Dominic Rath in occasione della propria tesi di laurea. Funziona sia da interfaccia TTY (via Telnet) per la connessione di un pc ad un dispositivo embedded, che da GDB server. Vediamo di chiarire entrambe le funzioni. <span id="more-240"></span><br />
Per quanto riguarda la connessione ad un target ARM, si utilizza il protocollo JTAG. Tocca ad OpenOCD interfacciarsi con il target, ma c&#8217;è un problema: il PC non possiede una porta JTAG, al contrario sono presenti le normali porte parallele, seriali e USB, dunque è necessario un ulteriore componente che converta i segnali inviati da OpenOCD attraverso queste porte in segnali JTAG da inviare alla porta JTAG presente sul target. Questo componente è la JTAG hardware interface e ne esistono diversi tipi forniti da svariati produttori (Wiggler, JTAGkey, Signalyzer, ecc.).<br />
Per quanto riguarda la funzione di GDB Server, è necessario dapprima dire qualcosa sul funzionamento di GDB. GDB (GNU Debugger) è il debugger standard del software system GNU e consente di tracciare l&#8217;esecuzione di un programma permettendo all&#8217;utente di settare dei breakpoints per bloccare l&#8217;esecuzione in qualsiasi momento; inoltre GDB consente il controllo dei valori assunti da ciascuna variabile e registro, che è possibile sia visionare che modificare. Una funzionalità presente in GDB è il “remote debugging”, che consente di controllare da una macchina (GDB client) l&#8217;esecuzione di un programma che avviene su un&#8217;altra macchina (GDB server); la comunicazione tra client e server avviene mediante un protocollo message-based chiamato RSP (Remote Serial Protocol) che sfrutta una connessione, ad esempio TCP: in pratica il GDB server deve rimanere in ascolto su una porta TCP, in attesa dei comandi che arrivano dal GDB client. E&#8217; proprio questa la funzionalità utilizzata per effettuare il debugging su dispositivi embedded: l&#8217;applicazione viene eseguita sul dispositivo embedded e controllata dal computer, che in questo caso funge da GDB client. Ma per fare ciò è necessario un GDB server a livello del dispositivo embedded, ed è qui che il cerchio si chiude: OpenOCD svolge anche il ruolo di GDB server.<br />
Le due funzionalità sono ovviamente collegate, dato che quando OpenOCD si comporta da GDB server ricevendo comandi di debugging da un GDB client, deve poi mandare questi comandi al processore ARM mediante la porta JTAG, ed ecco che entra in scena la sua funzione di interfaccia con il target.<br />
Mostriamo un&#8217;applicazione pratica per chiarificare e sintetizzare quanto detto, supponendo di effettuare il debugging sul nostro dispositivo embedded e di voler vedere il valore di una certa variabile: il debugger (GDB client) invia la richiesta mediante RSP ad OpenOCD (GDB server), che come abbiamo detto funge anche da interfaccia verso il dispositivo, quindi converte l&#8217;istruzione in comandi del protocollo JTAG, che spedisce mediante le normali porte USB/parallela del PC alla JTAG hardware interface; questa a sua volta converte i segnali ricevuti in segnali JTAG a 3.3 V da inviare all&#8217;apposita porta sulla board; Il valore richiesto viene letto e viene rimandato indietro mediante il percorso opposto. Lo schema seguente mostra quanto detto:</p>
<div align="center">
<img src="http://www.intilinux.com/wp-content/armopen.png" width="449" height="63" alt="" title="" />
</div>
<p>Per quanto riguarda il processore ARM, le versioni ARM7 e ARM9 di cui ci occupiamo sono provviste di una speciale unità Embedded-ICE, ossia un circuito hardware che implementa sul chip le principali operazioni di debug mediante l&#8217;uso di due circuiti di breakpoint/watchpoint interni : ecco perchè se la nostra applicazione gira sulla FLASH possiamo effettuare il debug di essa, leggere la memoria e utilizzare due (e non più) breakpoints, il tutto senza ricorrere a soluzioni costose e limitanti dal punto di vista delle performance.</p>
<p><strong>Questo articolo è il primo di una serie di articoli che interesserà il mondo dei processori embedded e in particolare quelli basati su architettura ARM.</strong></p>
<p>L&#8217;articolo è stato scritto da L3golas (giacomofazio@tiscali.it)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.intilinux.com/embedded/240/openocd-open-on-chip-debugger-per-soluzioni-arm/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/2.5/it/</creativeCommons:license>
	</item>
	</channel>
</rss>
