<?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/"
	>

<channel>
	<title>Blog do Sergio Prado &#187; Produtos</title>
	<atom:link href="http://sergioprado.org/produtos/feed/" rel="self" type="application/rss+xml" />
	<link>http://sergioprado.org</link>
	<description>Sistemas embarcados, Linux embarcado, RTOS e segurança</description>
	<lastBuildDate>Wed, 16 May 2012 00:49:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Introduzindo a Beaglebone</title>
		<link>http://sergioprado.org/introduzindo-a-beaglebone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introduzindo-a-beaglebone</link>
		<comments>http://sergioprado.org/introduzindo-a-beaglebone/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 23:18:13 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Beagleboard]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[beaglebone]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://sergioprado.org/?p=2416</guid>
		<description><![CDATA[<p>Introdução à Beaglebone, nova plataforma ARM para desenvolvimento de projetos com Linux embarcado.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/introduzindo-a-beaglebone/">Introduzindo a Beaglebone</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->
<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">Sou fã confesso da Beagleboard. Na minha opinião, é hoje a melhor plataforma para se aprender Linux embarcado e trabalhar com software livre. Muitos projetos, boa documentação e custo acessível. </span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Já escrevi aqui alguns <a href="http://sergioprado.org/category/beagleboard/" target="_blank">artigos sobre esta plataforma</a>, e já trabalhei também em alguns projetos comerciais baseados nela. E quando fiquei sabendo do lançamento da <a href="http://beagleboard.org/bone" target="_blank">Beaglebone</a>, não pensei duas vezes em comprar. Um mês e meio depois (sim, ela ficou um bom tempo presa na alfândega!), cá estou eu e o Arthur com nosso novo brinquedinho!</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_arthur/" rel="attachment wp-att-2418"><img class="aligncenter size-full wp-image-2418" title="beaglebone_arthur" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_arthur.jpg" alt="beaglebone arthur Introduzindo a Beaglebone" width="550" height="309" /></a></span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone, assim como a Beagleboard, também é um projeto de hardware aberto, porém com um design um pouco mais simples, e consequentemente mais barato. É uma plataforma de prototipação, e nesse sentido tem objetivos bem parecidos com o Arduino, já que usa o conceito de shields (no caso da Beaglebone veremos que estas placas de expansão chamam-se capes). Mas ela não veio para substituir ou competir com o Arduino, muito menos com a Beagleboard ou com a Raspberry Pi — falaremos sobre isso mais adiante. Por hora, que tal darmos olhada no hardware?</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">HARDWARE</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone é baseada no processador <a href="http://www.ti.com/product/am3359" target="_blank">AM3359</a>, um ARM Cortex-A8 da Texas Instruments que roda em até 720MHz, e possui 32K de cache L1, 256K de cache L2, 176K de ROM e 64K de RAM interna. Além disso, possui acelerador gráfico 3D, controlador LCD de 24 bits e controlador para a interface touchscreen.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_cpu/" rel="attachment wp-att-2421"><img class="aligncenter size-full wp-image-2421" title="beaglebone_cpu" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_cpu.png" alt="beaglebone cpu Introduzindo a Beaglebone" width="500" height="513" /></a></span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">A placa vem com 256MB de SDRAM, e assim como a Beagleboard-xM, não possui memória flash. Você precisa usar o cartão SD como unidade de armazenamento. Pode ser alimentada tanto por uma fonte externa quanto pela porta USB device. Esta mesma porta USB serve também de conexão serial (console), graças ao adaptador USB-&gt;Serial/JTAG incluido no design do hardware. Possui uma E2PROM de 32KB ligada ao barramento I2C, além das interfaces USB host, Ethernet, cartão SD/MMC e 4 leds que podem ser controlados pelo usuário.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_conn/" rel="attachment wp-att-2422"><img class="aligncenter size-full wp-image-2422" title="beaglebone_conn" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_conn.png" alt="beaglebone conn Introduzindo a Beaglebone" width="400" height="372" /></a></span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">O restante das interfaces de I/O estão disponíveis em 2 conectores de expansão de 46 pinos que podem fornecer diferentes conexões e barramentos como SPI, I2C, GPIO, LCD, HDMI, VGA, MMC, RS232, CAN, A/D, carregador de bateria, etc!</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">São nesses conectores que você pode plugar as placas de expansão, chamadas de capes. Cada beaglebone aceita até 4 capes, e cada cape deve ter uma E2PROM endereçável ligada ao barramento I2C, que vai ajudar o sistema operacional a identificá-la e configurar os I/Os de acordo.</span></p>
<p style="text-align: center;"><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_cape_dvi/" rel="attachment wp-att-2423"><img class="aligncenter size-full wp-image-2423" title="beaglebone_cape_dvi" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_cape_dvi.jpg" alt="beaglebone cape dvi Introduzindo a Beaglebone" width="240" height="196" /></a></span><span style="font-family: verdana,geneva; font-size: x-small;"><strong><span style="font-family: verdana,geneva;">Cape com saídas de áudio e vídeo</span></strong></span></p>
<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">No momento em que escrevo este artigo, o preço da Beaglebone varia de $79 a $89 (FOB), dependendo do distribuidor e se você quer adquirir apenas a placa ou o kit completo. Convertendo para nossa moeda, e incluindo frete e impostos, deve sair em torno de R$350,00. A lista oficial de distribuidores encontra-se em <a href="http://beagleboard.org/buy" target="_blank">http://beagleboard.org/buy</a>.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">O kit completo vem com a placa, um cabo USB e um cartão SD de 4G com a documentação e uma imagem do Angstrom pré-instalada. </span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">E por falar em imagem, que tal colocar esta plaquinha pra funcionar?</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">SOFTWARE</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Alimente a Beaglebone diretamente com o cabo USB, ou ligue uma fonte externa de 5V. O led de Power irá acender, e os leds USER0 e USER1 começarão a piscar. A Beaglebone será identificada na sua máquina de desenvolvimento como um dispositivo de armazenamento (como se fosse um pendrive). Você verá um dispositivo chamado BEAGLE_BONE com um monte de arquivos, incluindo as imagens do bootloader e do kernel, documentação e drivers para sistemas operacionais menos evoluidos :)</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">O primeiro passo é abrir o arquivo README.htm no seu navegador e dar uma lida. Este arquivo contém algumas orientações gerais sobre o funcionamento da Beaglebone.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Neste momento, a distribuição Angstrom que vem com a placa já esta rodando. E você pode acessá-la de algumas formas.</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">ACESSANDO VIA CONSOLE</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Para acessar via console no Linux, você vai precisar inserir o modulo ftdi_sio, conforme abaixo:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ sudo modprobe ftdi_sio vendor=0x0403 product=0xa6d0</pre></div></div>



<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">Serão criados dois dispositivos tty (no meu caso foram criados o ttyUSB0 e o ttyUSB1). O segundo (ttyUSB1) é a console. Configure sua aplicação de terminal favorita com 115200 8N1 e teste o acesso à console:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">U-Boot SPL 2011.09-00000-gf63b270-dirty (Nov 14 2011 - 10:37:14)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img
&nbsp;
U-Boot 2011.09-00000-gf63b270-dirty (Nov 14 2011 - 10:37:14)
&nbsp;
...
&nbsp;
.---O---.                                           
|       |                  .-.           o o        
|   |   |-----.-----.-----.| |   .----..-----.-----.
|       |     | __  |  ---'| '--.|  .-'|     |     |
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'
                -'  |
                '---'
&nbsp;
The Angstrom Distribution beaglebone ttyO0
&nbsp;
Angstrom v2011.10-core - Kernel 3.1.0+
&nbsp;
beaglebone login:</pre></div></div>



<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">O usuário é root e a senha vazia.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Se você tiver problemas, ou estiver usando outro sistema operacional, o arquivo README.htm mencionado mais acima possui algumas instruções adicionais que podem ajudá-lo.</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">CONECTANDO VIA REDE</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone tem um cliente DHCP rodando, então quando você ligá-la na sua rede (supondo-se que sua rede tenha um servidor DHCP), ela irá pegar um IP automaticamente.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Você pode consultar o IP atribuído à Beaglebone acessando-a via console, verificando o arquivo info.txt ou listando os logs do seu servidor DHCP.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Com a conexão de rede funcionando, você consegue acessar a Beaglebone por SSH (usuário root e sem senha):</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ssh root@192.168.1.107
The authenticity of host '192.168.1.107 (192.168.1.107)' can't be established.
RSA key fingerprint is d6:67:cf:08:d0:87:12:d9:12:c9:37:d9:81:bd:aa:db.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.107' (RSA) to the list of known hosts.
root@192.168.1.107's password:
root@beaglebone:~#</pre></div></div>



<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone tem um servidor rodando na porta 80 que disponibiliza uma apresentação do projeto. Supondo que o IP da Beaglebone seja “192.168.0.7″, você consegue acessar este servidor simplesmente digitando no seu navegador “http:/192.168.0.7/”:</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_web_pres/" rel="attachment wp-att-2428" target="_blank"><img class="aligncenter size-full wp-image-2428" title="beaglebone_web_pres" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_web_pres.png" alt="beaglebone web pres Introduzindo a Beaglebone" width="550" height="453" /></a></span><br /><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone tem também um outro servidor na porta 443 provendo acesso à console do equipamento via SSH de dentro do seu navegador! Supondo novamente que o IP da Beaglebone seja “192.168.0.7″, você consegue acessar este servidor digitando no seu navegador “https:/192.168.0.7/”. Obs: a Beaglebone usa o GateOne, um terminal e cliente SSH desenvolvido em HTML5. Portanto, você precisa de um navegador com suporte à HTML5.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;"><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_gateone/" rel="attachment wp-att-2429" target="_blank"><img class="aligncenter size-full wp-image-2429" title="beaglebone_gateone" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_gateone.png" alt="beaglebone gateone Introduzindo a Beaglebone" width="550" height="385" /></a></span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Mas o mais legal mesmo é a IDE embarcada no dispositivo e que pode ser acessada pelo navegador na porta 3000. Supondo mais uma vez que o IP da Beaglebone seja “192.168.0.7″, você consegue acessar esta IDE digitando no seu navegador “http:/192.168.0.7:3000“</span><br /><br /><a href="http://sergioprado.org/2012/01/26/introduzindo-a-beaglebone/beaglebone_cloud9/" rel="attachment wp-att-2432" target="_blank"><img class="aligncenter size-full wp-image-2432" title="beaglebone_cloud9" src="http://sergioprado.org/wp-content/uploads/2012/01/beaglebone_cloud9.png" alt="beaglebone cloud9 Introduzindo a Beaglebone" width="550" height="410" /></a><br /><span style="font-family: verdana,geneva; font-size: small;">Esta IDE embarcada na Beaglebone é a <a href="http://c9.io/" target="_blank">Cloud9 IDE</a>, uma interface que roda no seu navegador, e que possibilita escrever, executar e debugar aplicações escritas em JavaScript e baseadas em um framework chamado node.js.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">O conceito é bem parecido com o do <a href="http://sergioprado.org/2011/04/05/projetando-na-nuvem-com-o-kit-mbed/" target="_blank">projeto mbed que recebeu um artigo</a> um tempo atrás. Em ambos os projetos, a IDE roda no navegador. No caso do mbed, a IDE roda em um servidor na Internet. E no caso da Beaglebone, a IDE roda dentro dela mesmo!</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">E o que é esse tal de node.js? Segundo a <a href="http://nodejs.org/" target="_blank">página do projeto</a>, o node.js é uma plataforma que roda em cima do V8 (engine de JavaScript do Google) desenvolvida para se construir aplicações de rede rápidas e escaláveis. Na prática, você escreve programas em JavaScript que são interpretados e executados dentro da Beaglebone por uma aplicação chamada “node”. Ou seja, você trabalha com uma linguagem de script, mais amigável e com bibliotecas prontas para interfacear com o hardware e com o sistema operacional. </span></p>
<p style="text-align: justify;"><span style="font-family: verdana,geneva; font-size: small;">Por exemplo, esta é uma aplicação escrita em node.js que faz o led USER3 da Beaglebone piscar:</span></p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> bb <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'./bonescript'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> ledPin <span style="color: #339933;">=</span> bone.<span style="color: #660066;">P8_3</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> ledPin2 <span style="color: #339933;">=</span> bone.<span style="color: #660066;">USR3</span><span style="color: #339933;">;</span>
&nbsp;
setup <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    pinMode<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    pinMode<span style="color: #009900;">&#40;</span>ledPin2<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loop <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>ledPin2<span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    delay<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>ledPin<span style="color: #339933;">,</span> LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    digitalWrite<span style="color: #009900;">&#40;</span>ledPin2<span style="color: #339933;">,</span> LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    delay<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
bb.<span style="color: #660066;">run</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>



<p style="text-align: justify;"><strong><span style="font-family: verdana,geneva; font-size: small;">BEAGLEBONE X ARDUINO</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">A Beaglebone veio para preencher uma lacuna existente em desenvolvimento rápido e prototipagem para soluções high-end com Linux. Por esse motivo, não tem como deixar de fazer uma comparação com o Arduino. Ambos foram projetados com o conceito de expansão para facilitar a prototipagem: o Arduino com seus shields e a Beaglebone com seus capes. Ambos também possuem um ambiente de desenvolvimento que roda em qualquer SO, linguagem mais user-friendly, bibliotecas prontas, etc.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Mas não creio que seja uma questão de concorrência. O Arduino continuará sendo usado para acender leds, controlar motores e fazer seu robô andar. Agora, se você precisar de um sistema de reconhecimento facial dentro do seu robô, é aí que pode entrar a Beaglebone.</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">BEAGLEBONE X BEAGLEBOARD-XM</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">De forma alguma a Beaglebone é uma evolução da Beagleboard-xM. Muito pelo contrário, o hardware da Beagleboard-xM é melhor. Eles apenas são projetos com conceitos diferentes. Se você quer mais processamento, memória, portas USB e conexão de vídeo, vai de Beagleboard-xM. Já se o que você quer é um hardware fácil de expandir e de baixo custo, vai de Beaglebone.</span><br /><br /><strong><span style="font-family: verdana,geneva; font-size: small;">BEAGLEBOARD X RASPBERRY PI</span></strong><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Também não faz sentido a comparação. O objetivo do projeto <a href="http://www.raspberrypi.org/" target="_blank">Raspberry Pi</a> é o de ser um PC de baixo custo. Tá certo que, devido ao seu baixíssimo custo ($25 na versão normal e $35 na versão com Ethernet), muita gente vai querer tirar uma casquinha e até usar em algum projeto. Ou seja, se o que você precisa é de algo próximo à um computador pessoal (porta USB, saídas de áudio e vídeo) e de baixissimo custo, você pode pensar em usar a Raspberry Pi. Se você quer algo com mais capacidade de processamento, com diferentes interfaces de I/O e capacidade de expansão, pode pensar em usar a Beaglebone.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">O negócio agora é esperar a evolução do projeto, as placas de expansão que serão lançadas (ainda não me acostumei com o nome “capes”), e se o uso do framework node.js em Linux embarcado vai se popularizar.</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Enquanto isso, diz aí: o que você achou da Beaglebone? Tem intenção de comprá-la para usar em algum projeto?</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Um abraço,</span><br /><br /><span style="font-family: verdana,geneva; font-size: small;">Sergio Prado</span></p>
<div class="shr-publisher-2416"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/introduzindo-a-beaglebone/">Introduzindo a Beaglebone</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/introduzindo-a-beaglebone/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Kit de desenvolvimento LPC3250 da Embedded Artists</title>
		<link>http://sergioprado.org/kit-de-desenvolvimento-lpc3250-da-embedded-artists/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kit-de-desenvolvimento-lpc3250-da-embedded-artists</link>
		<comments>http://sergioprado.org/kit-de-desenvolvimento-lpc3250-da-embedded-artists/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 19:16:38 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Linux embarcado]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[embedded artists]]></category>
		<category><![CDATA[lpc3250]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=2169</guid>
		<description><![CDATA[<p>Introdução ao kit de desenvolvimento LPC3250 da Embedded Artists.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-de-desenvolvimento-lpc3250-da-embedded-artists/">Kit de desenvolvimento LPC3250 da Embedded Artists</a>.</p></p>
Posts relacionados:<ol>
<li><a href='http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/' rel='bookmark' title='Kit de desenvolvimento FriendlyARM mini2440'>Kit de desenvolvimento FriendlyARM mini2440</a></li>
<li><a href='http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/' rel='bookmark' title='Linux embarcado com o SAM9M10 da Atmel'>Linux embarcado com o SAM9M10 da Atmel</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">O kit de desenvolvimento <a href="http://www.embeddedartists.com/products/kits/lpc3250_kit.php" target="_blank">LPC3250 da Embedded Artists</a> vem equipado com o microcontrolador <a href="http://ics.nxp.com/products/lpc3000/lpc32x0/" target="_blank">LPC3250 da NXP</a>, e pode ser uma boa escolha se você quer boa performance, alto nível de integração de periféricos e baixo consumo.</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Se sua aplicação precisa de uma capacidade de processamento maior do que a oferecida pelas CPUs ARM Cortex-M3, com necessidades de display gráfico e conectividade, mas não quer uma solução tão high-end como as linhas i.MX da Freescale ou Sitara da TI, talvez o LPC3250 seja o que você procura.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit é composto basicamente por uma placa com CPU e memória RAM/Flash (<a href="http://www.embeddedartists.com/products/oem/lpc3250_oem.php" target="_blank">LPC3250 OEM Board</a>) conectada à uma placa-base (QVGA Base Board), com o display e um conjunto de periféricos para acesso.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="ea lpc3250 Kit de desenvolvimento LPC3250 da Embedded Artists" height="420" src="http://www.sergioprado.org/wp-content/uploads/ea-lpc3250.jpg" width="550" title="Kit de desenvolvimento LPC3250 da Embedded Artists" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O microcontrolador LPC3250 é um ARM9 rodando à 266MHz com 256kB de SRAM, interface para flash NAND e barramento para SDRAM, Ethernet MAC e um controlador de display LCD integrados, além de diversas interfaces de comunicação como USB, UART, I2C, SPI, I2S, PWM, ADC, etc.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="lpc3250 block Kit de desenvolvimento LPC3250 da Embedded Artists" height="661" src="http://www.sergioprado.org/wp-content/uploads/lpc3250_block.png" width="550" title="Kit de desenvolvimento LPC3250 da Embedded Artists" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit vêm com 128MB de flash NAND, 4MB de flash NOR e 64MB de SDRAM. Pode ser alimentado por USB ou uma fonte externa de 9-15V. Possui interfaces Ethernet, USB host/OTG, cartão SD/MMC, display LCD de 3.2″, JTAG, RS232, IrDA, acelerômetro, E2PROM, botões, leds e conectores para expansão de I/O.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O manual do usuário pode ser baixado <a href="http://embeddedartists.com/sites/default/files/support/oem/lpc3250/LPC3250_OEM_Board_Users_Guide.pdf" target="_blank">aqui</a> e o datasheet <a href="http://embeddedartists.com/sites/default/files/docs/datasheet/LPC3250_OEM_Board_Datasheet.pdf" target="_blank">aqui</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit pode ser adquirido no site da Embedded Artists por $340 FOB (no momento em que escrevo este artigo), ou em um de seus <a href="http://www.embeddedartists.com/shop/distributors.php" target="_blank">distribuidores</a> como a <a href="http://www.digikey.com" target="_blank">Digi-Key</a>, a <a href="http://www.futureelectronics.com" target="_blank">Future Electronics</a> e a <a href="http://www.mouser.com/embeddedartists" target="_blank">Mouser</a>. No Brasil, a <a href="http://www.microgenios.com.br" target="_blank">Microgenios</a> é a distribuidora oficial da Embedded Artists.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">LINUX<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Com MMU e boa capacidade de memória (Flash e RAM), conectividade e interface com displays gráficos, o kit é uma boa plataforma para se trabalhar com Linux.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A comunidade Linux para os microcontroladores da NXP gira em torno do site <a href="http://www.lpclinux.com" target="_blank">http://www.lpclinux.com</a>, com seções de download, tutoriais, blogs, forums, etc.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">PROCESSO DE BOOT<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O microcontrolador LPC3250 possui uma ROM interna de 32K com um código de boot que é executado sempre que você liga o equipamento. Este código de boot procura por um bootloader em 4 diferentes fontes: UART, SPI, NOR e NAND.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Quando você liga o equipamento, este código de boot em ROM verifica a entrada SERVICE (GPI_1) do microcontrolador. Se esta entrada estiver em nível baixo, o codigo de boot inicia um processo de recuperação para baixar um programa pela UART e carregá-lo para a SRAM. Se esta entrada estiver em nível alto, ele irá procurar por um bootloader nas seguintes interfaces, nesta ordem: SPI, NOR e NAND. Se ele encontrar, irá carregar os primeiros 54kB para a SRAM.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Este código carregado para a SRAM é o bootloader de 1o. estágio, chamado de Kickstarter, responsável basicamente por carregar e iniciar um bootloader de 2o. estágio, o S1L. Este bootloader de 2o. estágio é o responsável por inicializar o hardware (GPIO, clock, SDRAM, etc) e carregar o bootloader de 3o. estágio, o U-Boot. Ufa!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Daí é o processo normal de qualquer sistema Linux embarcado, o U-Boot carrega o kernel e então temos nosso sistema Linux rodando no kit.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">USANDO O KIT<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para usar o kit, basta alimentá-lo com o cabo USB, conforme figura abaixo:<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="lpc3250 plugging Kit de desenvolvimento LPC3250 da Embedded Artists" height="359" src="http://www.sergioprado.org/wp-content/uploads/lpc3250_plugging.png" width="550" title="Kit de desenvolvimento LPC3250 da Embedded Artists" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Você só vai precisar de uma fonte externa se for ligar dispositivos de consumo alto no barramento USB.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Como a placa possui o chip FT232 da FTDI, ao mesmo tempo que o cabo USB serve para alimentar o kit, ele será sua conexão serial (console) com o equipamento!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Configure seu programa de comunicação serial preferido com 115200-8N1, ligue o kit na sua máquina de desenvolvimento pelo cabo USB, e veja o menu do bootloader de 2o. estágio (S1L):<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Embedded Artist 3250 Board (S1L 2.0)
Build date: Nov 23 2010 13:21:19
&nbsp;
EA3250#</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Com este bootloader você é capaz de bootar do cartão SD, da UART ou da NAND Flash. Mas é claro que você vai querer bootar o Linux, não é verdade? Então você vai precisar gravar o U-Boot na flash NAND.</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Você pode baixar o u-boot <a href="http://www.sergioprado.org/wp-content/plugins/download-monitor/download.php?id=21" target="_blank">daqui</a>, renomeá-lo para u-boot.bin e salvá-lo em um cartão SD.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Coloque o cartão SD no kit, reinicie-o e na linha de comandos do bootloader S1L, carregue o U-Boot do cartão SD para a RAM:<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">EA3250# load blk u-boot.bin raw 0x83fa0000</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Salve na flash:<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">EA3250# nsave</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">E configure o bootloader S1L para automaticamente carregar o U-Boot no boot do equipamento:<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">EA3250# aboot flash raw 0x83fa0000</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Configure também um delay de 2 segundos no boot do S1L:<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">EA3250# prompt EA3250# 2</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Reinicie e pronto! Você receberá o prompt do U-Boot no terminal:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Embedded Artist 3250 Board (S1L 2.0)
Build date: Nov 23 2010 13:21:19
Autoboot in progress, press any key to stop
&nbsp;
U-Boot 2009.03-rc1 (Sep 28 2009 - 09:38:20)
&nbsp;
DRAM:  64 MB
NAND:  128 MiB
*** Warning - bad CRC or NAND, using default environment
&nbsp;
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
uboot#</pre></div></div>



<p><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">TREINAMENTO</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Este é o kit que utilizarei nas minhas primeiras seções do <a href="http://e-labworks.com/treinamentos/desenvolvendo-sistemas-linux-embarcado/" target="_blank">treinamento de Linux embarcado</a>. Os kits foram gentilmente cedidos pela NXP para a realização do treinamento.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Busquei desenvolver uma metodologia de ensino de forma que as atividades de laboratório fossem independentes de hardware. Nada de receitas de bolo. O que você aprender com este kit, poderá aplicar em qualquer outro hardware com suporte à Linux. Mas espero que possamos nos divertir bastante com este kit, desenvolver alguns projetos legais durante (e depois) do treinamento, e claro, aprender Linux embarcado!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para quem já se inscreveu, vejo vocês lá!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-2169"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Posts relacionados:</p><ol>
<li><a href='http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/' rel='bookmark' title='Kit de desenvolvimento FriendlyARM mini2440'>Kit de desenvolvimento FriendlyARM mini2440</a></li>
<li><a href='http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/' rel='bookmark' title='Linux embarcado com o SAM9M10 da Atmel'>Linux embarcado com o SAM9M10 da Atmel</a></li>
</ol><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-de-desenvolvimento-lpc3250-da-embedded-artists/">Kit de desenvolvimento LPC3250 da Embedded Artists</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/kit-de-desenvolvimento-lpc3250-da-embedded-artists/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linux embarcado com o SAM9M10 da Atmel</title>
		<link>http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux-embarcado-com-o-sam9m10-da-atmel</link>
		<comments>http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 15:49:17 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Linux embarcado]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[atmel]]></category>
		<category><![CDATA[SAM9M10]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=2007</guid>
		<description><![CDATA[<p>Minhas impressões sobre o uso de Linux no kit de desenvolvimento AT91SAM9M10-G45-EK da Atmel.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/">Linux embarcado com o SAM9M10 da Atmel</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Nem só de <a href="http://www.sergioprado.org/2011/05/16/beagleboard-o-cachorrinho-open-source/" target="_blank">Beagleboard</a> e <a href="http://www.sergioprado.org/2010/08/08/kit-de-desenvolvimento-friendlyarm-mini2440/" target="_blank">FriendlyARM</a> vive o mercado de soluções para sistemas embarcados com Linux. Existem outras opções de fabricantes como NXP, Freescale e Atmel.</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Nas últimas semanas, tive a oportunidade de trabalhar com o kit AT91SAM9M10-G45-EK da <a href="http://www.atmel.com" target="_blank">Atmel</a>. E como não existe muita documentação na Internet sobre este kit e também sobre o uso de produtos da Atmel com Linux embarcado, resolvi documentar minhas impressões neste post, e quem sabe ajudar outras pessoas com as mesmas necessidades.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="kit Linux embarcado com o SAM9M10 da Atmel" height="362" src="http://www.sergioprado.org/wp-content/uploads/kit.png" width="550" title="Linux embarcado com o SAM9M10 da Atmel" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Não é um kit que recomendo para quem quer estudar Linux embarcado. No momento que escrevo este post, você pode comprar o kit pela “bagatela” de 750 dolares (FOB). Mas é uma opção interessante para avaliar a CPU em projetos comerciais, e para quem esta acostumado a trabalhar com produtos da Atmel.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">HARDWARE<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O AT91SAM9M10-G45-EK é uma plataforma de avaliação para a <a href="http://www.atmel.com/dyn/products/product_card.asp?part_id=4653&amp;category_id=163&amp;family_id=605&amp;subfamily_id=720" target="_blank">CPU AT91SAM9M10</a> da Atmel, um ARM9 de 400MHz. É uma CPU voltada à aplicações multimedia que combina interfaces de conectividade com playback de vídeo. A CPU possui um decodificador de vídeo por hardware com suporte à H.264, MPEG-4, MPEG-2, VC-1 e H.263. <br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit tem 128M de RAM DDR2 e 256M de flash NAND (o uso de flash NOR é opcional). Vem com um display LCD TFT touch de 4.3″, e possui diversas interfaces como USB device/host, Ethernet, UART, cartão SD/MMC, composite video, áudio, câmera, botões, leds, etc.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="blocos(1) Linux embarcado com o SAM9M10 da Atmel" height="377" src="http://www.sergioprado.org/wp-content/uploads/blocos(1).png" width="550" title="Linux embarcado com o SAM9M10 da Atmel" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Mais informações sobre o kit você pode encontrar no <a href="http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4735" target="_blank">site da Atmel</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">PROCESSO DE BOOT<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sempre que começo a trabalhar com uma nova plataforma de hardware, procuro entender o processo de boot da CPU. </span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Este kit é capaz de trabalhar com 4 diferentes dispositivos de boot:<br />
	</span></span></p>
<ul>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">NAND Flash</span></span></li>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">SDCard</span></span></li>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">DataFlash® </span></span></li>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Serial DataFlash</span></span></li></ul>
<p><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">E a sequência de boot acontece em algumas etapas:</span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="9263 rom boot sequence Linux embarcado com o SAM9M10 da Atmel" height="516" src="http://www.sergioprado.org/wp-content/uploads/9263_rom_boot_sequence.png" width="357" title="Linux embarcado com o SAM9M10 da Atmel" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A CPU possui um código em ROM que é executado no boot do equipamento. Este código verifica o pino de entrada BMS. Se não estiver setado, tentar bootar pela flash NOR. Se estiver setado, verifica a disponibilidade das interfaces SDCard, flash NAND e Dataflash, nesta ordem. Se encontrar uma destas interfaces disponíveis, carrega os primeiros 4KB para a SRAM e executa. Se não encontrar, cai em um código de boot chamado SAM-BA. Este é um software de recovery, que você pode usar para se comunicar com seu PC via USB para escrever na flash.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O uso do SAM-BA é uma estratégia interessante, já que você não tem uma flash NOR com um bootloader para gravar o U-Boot na NAND. Você pode então usar o SAM-BA para gravar o U-Boot na flash NAND, e a partir daí usar o U-Boot para gravar o kernel e o rootfs.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Portanto, se você apagar “acidentalmente” o bootloader da NAND, vai precisar do SAM-BA. A documentação do procedimento de recuperação usando o SAM-BA pode ser acessado <a href="http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted#Flashing_a_demo_on_AT91_boards" target="_blank">aqui</a>. E se você tiver problemas em usar a aplicação SAM-BA para Linux, como eu tive, dá uma lida <a href="http://william.net.br/yap/?p=721" target="_blank">neste artigo aqui</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Uma vez que a CPU identificou a disponibilidade de um dos dispositivos de boot, a sequência continua conforme a imagem abaixo:<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="linux boot sequence Linux embarcado com o SAM9M10 da Atmel" height="431" src="http://www.sergioprado.org/wp-content/uploads/linux_boot_sequence.png" width="542" title="Linux embarcado com o SAM9M10 da Atmel" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Os 4KB de código que o ROM code da CPU carregou para a SRAM no boot é o AT91BootStrap, um bootloader da Atmel. Sua responsabilidade é basicamente inicializar a CPU e a SDRAM, e carregar um bootloader de 3o. nível, que no nosso caso é o <a href="http://www.denx.de/wiki/U-Boot" target="_blank">U-Boot</a>. A partir daí, o processo é o mesmo de qualquer sistema com Linux embarcado, sendo o U-Boot o responsável por carregar o kernel do Linux para a memória e executá-lo.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">SUPORTE AO LINUX<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit vem com uma versão demo da distribuição <a href="http://www.angstrom-distribution.org/" target="_blank">Angstrom</a>, que pode ser baixada <a href="ftp://www.at91.com/pub/demo/linux4sam_2.1/linux4sam-angstrom-at91sam9m10g45ek.zip" target="_blank">aqui</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Toda a documentação sobre o uso de Linux neste kit pode ser encontrada no <a href="http://www.at91.com/linux4sam/bin/view/Linux4SAM/GettingStarted" target="_blank">site da Atmel</a>. É um ponto de partida para quem esta iniciando os trabalhos com Linux nesta plataforma. Mas como não é uma plataforma muito difundida entre hobbystas e entusiastas Linux (quando comparamos com a Beagleboard, por exemplo) existem poucos fóruns e sites com informações à respeito.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Foi utilizada a versão 1.3.4 do U-Boot para o port, bastando aplicar os <a href="ftp://www.at91.com/pub/uboot/u-boot-1.3.4-exp.5/u-boot-1.3.4-exp.5.diff" target="_blank">patches disponíveis aqui</a>. A versão 2.6.30 do kernel do Linux foi utilizada para desenvolver o BSP para esta plataforma, e os patches <a href="ftp://www.at91.com/pub/linux/2.6.30-at91/2.6.30-at91-exp.4.tar.gz" target="_blank">estão disponíveis aqui</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">GERANDO UMA DISTRIBUIÇÃO LINUX DO ZERO<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Com o <a href="http://buildroot.uclibc.org/" target="_blank">Buildroot</a>, é possível gerar uma distribuição Linux embarcada do zero para este kit em menos de 1 hora.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Escrevi um documento com os procedimentos que pode ser baixado <a href="http://www.sergioprado.org/wp-content/plugins/download-monitor/download.php?id=16" target="_blank">aqui</a>.<br />
	</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">GRAVANDO O LINUX NA FLASH NAND<br />
	</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Como o U-Boot não tem suporte à interface SD/MMC, a única forma dele carregar o kernel e o rootfs é via interface Ethernet.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Portanto, podemos usar o <a href="http://pt.wikipedia.org/wiki/Trivial_File_Transfer_Protocol" target="_blank">TFTP</a> para transferir as imagens para o U-Boot para gravá-las na flash.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Você vai precisar do servidor TFTP configurado na sua máquina de desenvolvimento. Se não tiver, este <a href="https://linuxlink.timesys.com/docs/linux_tftp" target="_blank">artigo da Timesys</a> explica como fazer.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Com o TFTP configurado, copie as imagens do kernel (uImage) e do rootfs (rootfs.jffs2) para o diretório do TFTP, coloque o kit em rede com a máquina de desenvolvimento, ligue-o e entre no menu do U-Boot.<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Primeiro, configure a rede (altere os endereços IP conforme a configuração da sua rede):<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># setenv ipaddr 192.168.0.100
# setenv serverip 192.168.0.1
# saveenv</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Você pode verificar se a rede esta configurando através do comando ping:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># ping 192.168.0.1</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para gravar o o kernel:<br />
	</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># tftp 0x72200000 uImage
# nand erase 0x00200000 0x00200000
# nand write.e 0x72200000 0x00200000 0x00200000</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Para gravar o rootfs:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># tftp 0x72200000 rootfs.jffs2
# nand erase 0x00400000 0x03C00000
# nand write.jffs2 0x72200000 0x00400000 0x180000</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Por último, configure o U-Boot para iniciar o Linux pela flash NAND:</span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># setenv bootargs &amp;#39;mem=64M console=ttyS0,115200 mtdparts=atmel_nand:4M(bootstrap/uboot/kernel)ro,60M(rootfs),-(data) root=/dev/mtdblock1 rw rootfstype=jffs2&amp;#39;
# setenv bootcmd &amp;#39;nand read.e 0x72200000 0x00200000 0x1ad8f0; bootm 0x72200000&amp;#39;
# saveenv</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Dica final: sempre que possível, nunca se prenda a soluções fechadas/proprietárias. </span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A Atmel fornece a ferramenta SAM-BA, que além de poder ser usada como ferramenta para recuperar o bootloader da NAND, pode também ser usada para gravar o kernel e o rootfs na flash ou no cartão SD. </span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Mas eu prefiro soluções padronizadas e abertas como o TFTP e o U-Boot. Por quê? Porque quando eu migrar para produtos de outros fabricantes como a Texas, a Freescale, ou a NXP, já terei o caminho das pedras na cabeça. Suporte soluções open source. Sempre!<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço,<br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-2007"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/">Linux embarcado com o SAM9M10 da Atmel</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/linux-embarcado-com-o-sam9m10-da-atmel/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BeagleBoard — O cachorrinho open-source</title>
		<link>http://sergioprado.org/beagleboard-o-cachorrinho-open-source/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beagleboard-o-cachorrinho-open-source</link>
		<comments>http://sergioprado.org/beagleboard-o-cachorrinho-open-source/#comments</comments>
		<pubDate>Tue, 17 May 2011 00:37:43 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Beagleboard]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[omap3530]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=1690</guid>
		<description><![CDATA[<p>Análise da plataforma BeagleBoard para desenvolvimento open source e aprendizado em sistemas embarcados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/beagleboard-o-cachorrinho-open-source/">BeagleBoard — O cachorrinho open-source</a>.</p></p>
Posts relacionados:<ol>
<li><a href='http://sergioprado.org/open-source-hardware/' rel='bookmark' title='Open Source Hardware'>Open Source Hardware</a></li>
<li><a href='http://sergioprado.org/ferramentas-open-source-para-pic/' rel='bookmark' title='Ferramentas open-source para pic'>Ferramentas open-source para pic</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A BeagleBoard é um projeto desenvolvido pela <a href="http://www.ti.com" target="_blank">Texas Instruments</a> em conjunto com a <a href="http://www.digikey.com/" target="_blank">Digi-Key</a> com os objetivos de demonstrar o uso do system-on-a-chip <a href="http://focus.ti.com/docs/prod/folders/print/omap3530.html" target="_blank">OMAP3530</a> e servir de plataforma de aprendizado em sistemas embarcados através do modelo de desenvolvimento open source. Enquanto que a TI é a responsável pelo projeto, a Digi-key seria a responsável pela distribuição.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A plataforma é totalmente aberta, liberada sob a licença <a href="http://en.wikipedia.org/wiki/Share-alike" target="_blank">Creative Commons SharedAlike</a>. Com já mais de 2 anos de existência, ela tem cumprido bem seu objetivo de ensinar open hardware e open software no mundo inteiro. A página do projeto pode ser encontrada em <a href="http://beagleboard.org/" target="_blank">http://beagleboard.org/</a>.</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img align="middle" alt="beagle1 BeagleBoard   O cachorrinho open source" height="221" src="http://www.sergioprado.org/wp-content/uploads/beagle1.jpg" width="297" title="BeagleBoard   O cachorrinho open source" /></span></span></p>
<p style="text-align: center; "><strong>BeagleBoard: Do tamanho da palma da sua mão</strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Enquanto escrevo este artigo, existem cerca de 210 projetos desenvolvidos pela comunidade! Estes projetos incluem alguns portes do sistema operacional Android, controlador de câmera digital, sistema de segurança residencial, sistema multimedia para veículos, streaming de video, media center, diversos tipos de robôs, etc. Mais um indicativo das mudanças sociais e econômicas trazidas pelo movimento open source. Uma lista com todos os projetos pode ser acessada em <a href="http://beagleboard.org/project" target="_blank">http://beagleboard.org/project</a>. Alguns vídeos com projetos interessantes podem ser encontrados <a href="http://www.youtube.com/watch?gl=GB&amp;hl=en-GB&amp;v=fL_XMieanSc" target="_blank">aqui</a>, <a href="http://br.mouser.com/knowledge/beagleboard/beagleboardvideos/" target="_blank">aqui</a> e <a href="http://beagleboard.org/media" target="_blank">aqui</a>.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Das palavras de um dos responsáveis pelo projeto, Jason Kridner:</span></span></p>
<blockquote>
	<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">“The Beagle Board is intended for those wanting to learn about building embedded systems and [who] don’t need all of the support or costs associated with the typical development platform. Once you are done experimenting and need a silicon evaluation platform that will help you make a product, platforms with software compatibility are available.”</span></span></p></blockquote>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">HARDWARE</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A placa é pequena, medindo aproximadamente 7,5 x 7,5 cm, e já passou por algumas revisões desde seu lançamento. A que tenho em mãos é a Rev C4. </span></span></p>
<p style="text-align: center; "><font class="Apple-style-span" face="verdana, geneva, sans-serif"><span class="Apple-style-span" style="font-size: 14px;"><img alt="beagle2(1) BeagleBoard   O cachorrinho open source" height="537" src="http://www.sergioprado.org/wp-content/uploads/beagle2(1).png" width="550" title="BeagleBoard   O cachorrinho open source" /><br />
	</span></font></p>
<p style="text-align: center; "><strong>Interfaces disponíveis na BeagleBoard</strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Conforme já mencionei, a BeagleBoard é baseada no system-on-a-chip OMAP3530 da TI, um dos primeiros SOCs baseados no núcleo ARM Cortex-A8. Trabalhando a 720MHz, ainda possui integrado um DSP de 430MHz e um acelerador gráfico 2D/3D, que junto com uma placa gráfica onboard que provê saídas DVI e S-Video, transforma o kit em uma plataforma ideal para aplicações multimedia, com capacidade para reproduzir vídeos em HD a 720p.</span></span></p>
<p style="text-align: center; "><img alt="omap block diagram BeagleBoard   O cachorrinho open source" height="419" src="http://www.sergioprado.org/wp-content/uploads/omap-block-diagram.png" width="550" title="BeagleBoard   O cachorrinho open source" /></p>
<p style="text-align: center; "><strong>Por dentro do OMAP3530</strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Esta revisão possui 256MB de memória flash NAND e 256MB de DDR SDRAM, que junto com o OMAP3530, são montados na placa usando a técnica de <a href="http://en.wikipedia.org/wiki/Package_on_package" target="_blank">Package-on-Package</a>, onde um chip é montado sob o outro:</span></span></p>
<p style="text-align: center; "><font class="Apple-style-span" face="verdana, geneva, sans-serif"><span class="Apple-style-span" style="font-size: 14px;"><img alt="package on package BeagleBoard   O cachorrinho open source" height="101" src="http://www.sergioprado.org/wp-content/uploads/package-on-package.png" width="382" title="BeagleBoard   O cachorrinho open source" /><br />
	</span></font></p>
<p style="text-align: center; "><strong>Package-on-Package</strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Interfaces de I/O também não faltam: RS232, USB 2.0 e USB On-the-go, cartão de memória SD/MMC, Audio In/Out (Stereo), JTAG, LEDs e botões, além de um conector para usar um display LCD e outro para placas de expansão com diversas interfaces disponíveis como GPIO, PWM, I2C, I2S, SPI e SD/MMC. A alimentação pode ser feita por uma entrada de 5V ou pela porta USB. Uma referência completa do hardware pode ser encontrada <a href="http://beagleboard.org/static/BBSRM_latest.pdf" target="_blank">aqui</a>. São 180 páginas de muita informação!</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">COMPARANDO COM A MINI2440</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Quem acompanha meu blog sabe que gosto bastante do <a href="http://www.sergioprado.org/2010/08/08/kit-de-desenvolvimento-friendlyarm-mini2440/" target="_blank">kit FriendlyARM mini2440</a> como ferramenta de aprendizado, principalmente para aprender sobre Linux embarcado. Mas qual é melhor, a Beagleboard ou a mini2440? A resposta: depende!</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sob o ponto de vista do hardware, a Beagleboard é muito mais poderosa. Sua capacidade de vídeo e a existência de um DSP tornam possiveis aplicações multimedia que não seriam possíveis na mini2440. Por outro lado, a minha revisão da Beagle Rev C4 não possui interface Ethernet. Se eu precisar de uma interface Ethernet, precisarei usar um dongle USB. Já na mini2440 temos uma porta Ethernet por padrão. Esta deficiência da BeagleBoard é resolvida na sua última revisão, a <a href="http://beagleboard.org/hardware-xM" target="_blank">BeagleBoard-xM</a>, que além da interface Ethernet, trabalha a 1GHz!</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Outra desvantagem da Beagle com relação ao hardware é a ausência de um display LCD. A idéia aqui é usar as saídas DVI ou S-Video e plugá-la diretamente em um monitor ou televisor. Mas nada impede você de comprar um display LCD e conectar nos pinos de I/O disponíveis na Beagle. Já existem alguns projetos que fazem isso. Você só precisará comprar o display separadamente.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Por outro lado, a BeagleBoard, por apostar no formato open source, foi muito mais competente em documentar o projeto e montar uma comunidade onde as pessoas publicam seus projetos e compartilham informações.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">De qualquer forma, os dois kits suprem bem a necessidade de uma ferramenta para aprendizado em sistemas embarcados. Escolha o que melhor couber no seu bolso.</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">ONDE COMPRAR</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A BeagleBoard pode ser adquirida em alguns sites na internet, incluindo a <a href="http://dkc1.digikey.com/us/en/mkt/beagleboard.html" target="_blank">Digi-Key</a> e a <a href="http://www.mouser.com/beagleboard/" target="_blank">Mouser</a>. No site do projeto tem uma <a href="http://beagleboard.org/buy" target="_blank">lista completa de distribuidores</a>. Na <a href="https://specialcomp.com/beagleboard/order.htm" target="_blank">Special Computing</a> você também consegue comprar, além da placa, os cabos, fontes e até um case de acrílico para colocar a placa enquanto estuda ou desenvolve seu protótipo.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O preço atual é de $125.00, mais frete e impostos. Mas esse valor é só pela placa. Você vai precisar de um cabo adaptador serial IDC10 -&gt; DB9 macho igual este <a href="http://www.pccables.com/07120.htm" target="_blank">aqui</a> para a console. Pode precisar também de um cabo HDMI tipo A -&gt; DVI, se quiser ligar a placa em um monitor, e de uma fonte de 5V se precisar ligar muitos periféricos na placa e achar que a alimentação via USB não será suficiente para “aguentar o tranco”.</span></span></p>
<p style="text-align: justify; "><strong><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">PRIMEIROS SINAIS DE VIDA</span></span></strong></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Estes são os primeiros sinais de vida da BeagleBoard, que podemos visualizar na console:</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Loading u-boot.bin from nand
&nbsp;
U-Boot 2009.11-rc1-00601-g3aa4b51 (Jan 05 2010 - 20:56:38)
&nbsp;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment
&nbsp;
In:    serial
Out:   serial
Err:   serial
Board revision C4
Die ID #7e1c000400000000040398da1402400e
Hit any key to stop autoboot:  0
No MMC card found
Booting from nand ...
&nbsp;
NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: OK
Wrong Image Format for bootm command
ERROR: can&amp;#39;t get kernel image!
OMAP3 beagleboard.org #</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Ela vem de fábrica com o X-Loader e o U-Boot instalados na NAND. O processo de boot acontece em 3 estágios:</span></span></p>
<ul>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">1o. estágio: Software residente em ROM</span></span></li>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">2o. estágio: X-Loader</span></span></li>
	<li><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">3o. estágio: U-Boot</span></span></li></ul>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">No fim, o U-Boot tentar carregar o kernel do Linux, e como não encontra a imagem, cai no prompt. Vamos tentar listar as partições da NAND:</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">OMAP3 beagleboard.org # mtdparts
mtdparts variable not set, see &amp;#39;help mtdparts&amp;#39;
no partitions defined
&nbsp;
defaults:
mtdids  : nand0=nand
mtdparts: mtdpart&amp;#39; - try &amp;#39;help&amp;#39;loader),1920k(u-boot),128k(u-boot-env),4m(kernel),-(fs)</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Veja que a tabela de partições encontra-se inicialmente vazia. Podemos configurar as partições padrão com o comando abaixo:</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">OMAP3 beagleboard.org # mtdparts default</pre></div></div>



<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">E então podemos ver as partições:</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">OMAP3 beagleboard.org # mtdparts
&nbsp;
device nand0 &lt;nand&gt;, # parts = 5
 #: name                size            offset          mask_flags
 0: x-loader            0x00080000      0x00000000      0
 1: u-boot              0x001e0000      0x00080000      0
 2: u-boot-env          0x00020000      0x00260000      0
 3: kernel              0x00400000      0x00280000      0
 4: fs                  0x0f980000      0x00680000      0
&nbsp;
active partition: nand0,0 - (x-loader) 0x00080000 @ 0x00000000&lt;/nand&gt;</pre></div></div>



<p><meta content="text/html; charset=utf-8" http-equiv="content-type" /></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Agora a NAND esta pronta para gravarmos o kernel e o rootfs. Que tal um pouco de Android no próximo post? Até lá!</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Abraços,</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-1690"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Posts relacionados:</p><ol>
<li><a href='http://sergioprado.org/open-source-hardware/' rel='bookmark' title='Open Source Hardware'>Open Source Hardware</a></li>
<li><a href='http://sergioprado.org/ferramentas-open-source-para-pic/' rel='bookmark' title='Ferramentas open-source para pic'>Ferramentas open-source para pic</a></li>
</ol><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/beagleboard-o-cachorrinho-open-source/">BeagleBoard — O cachorrinho open-source</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/beagleboard-o-cachorrinho-open-source/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Projetando na nuvem com o kit mbed</title>
		<link>http://sergioprado.org/projetando-na-nuvem-com-o-kit-mbed/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=projetando-na-nuvem-com-o-kit-mbed</link>
		<comments>http://sergioprado.org/projetando-na-nuvem-com-o-kit-mbed/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 01:38:10 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Mbed]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[arm cortex-m3]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[nxp]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=1544</guid>
		<description><![CDATA[<p>Neste artigo vamos estudar com mais detalhes como desenvolver projetos com o kit mbed.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/projetando-na-nuvem-com-o-kit-mbed/">Projetando na nuvem com o kit mbed</a>.</p></p>
Posts relacionados:<ol>
<li><a href='http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/' rel='bookmark' title='Novos brinquedos no pedaço: mbed e LPCXpresso'>Novos brinquedos no pedaço: mbed e LPCXpresso</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Recebi recentemente da NXP o kit mbed, conforme já havia escrito <a href="http://www.sergioprado.org/2011/03/22/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/" target="_blank">neste artigo aqui</a>. E após algumas horas “brincando” com ele, minhas impressões são muito boas. O kit é realmente intuitivo e fácil de usar, perfeito para quem quer prototipar algo rapidamente e ver o negócio funcionando. Vamos então dar uma olhada mais de perto neste kit.</span></span></p>
<p style="text-align: justify;"><strong><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O HARDWARE</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O kit usa o <a href="http://ics.nxp.com/products/lpc1000/datasheet/lpc1763.lpc1764.lpc1765.lpc1766.lpc1767.lpc1768.lpc1769.pdf" target="_blank">LCP1768</a> da NXP, um ARM Cortex-M3 com 512K de flash e 32K de RAM, voltado principalmente para aplicações mais complexas com requisitos de tempo real. A CPU roda a 96MHz, com um pipeline de 3 estágios e arquitetura Harvard (barramento separado para código e dados). Além disso, possui também um barramento separado para os periféricos. E por falar em periféricos, a lista é grande. A começar por 70 I/Os configuráveis, 4 UARTs, SPI, I2C, CAN 2.0, USB 2.0 Device/Host e Ethernet MAC. A placa em si é pequena, possui 1 led de status, 4 leds de uso geral, um botão de reset e uma porta serial que pode ser emulada através da interface USB.</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/mbedBoardLayoutSmall(1).png" alt="mbedBoardLayoutSmall(1) Projetando na nuvem com o kit mbed" width="200" height="191" title="Projetando na nuvem com o kit mbed" /></span></span></p>
<p style="text-align: center;"><strong>Interfaces disponíveis no kit mbed</strong></p>
<p style="text-align: justify;"><strong><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O PROJETO</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">A plataforma mbed (<a href="http://www.mbed.org" target="_blank">www.mbed.org</a>) foi iniciada por dois funcionários da ARM, que depois assumiu o projeto em parceria com a NXP. Seu principal objetivo é prover um ambiente de prototipagem rápida. Você tem uma idéia, como colocar isso em prática da forma mais rápida possível? Não estamos falando aqui de desenvolver o produto final, e sim de experimentar, de validar uma idéia. O kit atinge muito bem este objetivo, por 4 principais motivos.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">1) A placa foi desenvolvida no formato DIP de 40 pinos. Isso significa que você consegue espetá-la facilmente numa protoboard, adicionar alguns periféricos e voilá: hardware pronto para testes!</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/mbed-pinos.jpg" alt="mbed pinos Projetando na nuvem com o kit mbed" width="300" height="281" title="Projetando na nuvem com o kit mbed" /></span></span></p>
<p style="text-align: center;"><strong>Kit mbed visto por baixo</strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">2) O ambiente de desenvolvimento (editor de texto, compilador, arquivos do projeto) é todo baseado em computação na nuvem. Você faz tudo pelo seu navegador preferido, dentro do seu sistema operacional predileto. Que bom que não precisei reiniciar no Window$ para testar o kit! :) E não precisa instalar nada mesmo. Todo o processo de programação, compilação e gravação é transparente para o desenvolvedor.</span></span></p>
<p style="text-align: center;"><img src="http://www.sergioprado.org/wp-content/uploads/mbed-compiler(1).png" alt="mbed compiler(1) Projetando na nuvem com o kit mbed" width="550" height="419" title="Projetando na nuvem com o kit mbed" /></p>
<p style="text-align: center;"><strong>Ambiente de desenvolvimento dentro do navegador Chrome</strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">3) Por falar em gravação, não poderia ser mais fácil gravar o firmware na flash. Quando você liga o kit na USB do seu PC, ele irá criar automaticamente o drive “MBED”, como se fosse um pendrive. Para gravar o firmware, basta copiar o arquivo binário gerado para este diretório. Muito fácil.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">4) E por último, o desenvolvimento é todo baseado em bibliotecas disponibilizadas pelo projeto. Tem biblioteca para todas as interfaces do microcontrolador. Como vocês verão a seguir, fica muito fácil escrever algo para usar a porta serial ou a interface CAN, por exemplo.</span></span></p>
<p style="text-align: justify;"><strong><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">CARREGANDO O PRIMEIRO PROGRAMA</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Carregar o primeiro “<em>Hello World</em>” foi questão de segundos, sem brincadeira! Conectei o kit na USB e apareceu o drive “<em>MBED</em>”. Dentro dele cliquei no arquivo “<em>MBED.HTM</em>”, que abriu o navegador e pediu para fazer um cadastro rápido. Após o cadastro, apareceu a página inicial do projeto com um link para baixar a aplicação “<em>HelloWorld.bin</em>”. Cliquei no link, baixei a aplicação para o drive “<em>MBED</em>” e reiniciei o kit. Pronto! A aplicação “<em>Hello World</em>” já estava rodando (um led piscando).</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/mbed_initial.png" alt="mbed initial Projetando na nuvem com o kit mbed" width="550" height="309" title="Projetando na nuvem com o kit mbed" /></span></span></p>
<p style="text-align: center;"><span style="font-size: 10px;"><span style="font-family: verdana,geneva,sans-serif;"><strong>Tela inicial do ambiente de desenvolvimento mbed</strong></span></span></p>
<p style="text-align: justify;"><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px;">Esta tela inicial possui os seguintes menus:</span></p>
<ul>
	<li style="text-align: justify;">
<p style="display: inline !important;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><span class="Apple-style-span" style="font-weight: normal;">Blog: acesso ao blog do projeto mbed.</span></span></span></p></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Forum: onde você pode tirar suas dúvidas e resolver problemas.</span></span></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Handbook: Muita documentação sobre o projeto: hardware, ambiente de programação, compilador, bibliotecas, etc.</span></span></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Cookbook: Wiki que pode ser acessada e editada por qualquer usuário para documentar bibliotecas e escrever tutoriais, por exemplo.</span></span></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">My home: Seu perfil, log de atividades, seus programas e bibliotecas.</span></span></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">My notebook: Suas anotações.</span></span></li>
	<li style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Compiler: O compilador na nuvem. É aqui que a diversão começa!</span></span></li>
</ul>
<p style="text-align: justify;"><strong><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">PROGRAMANDO</span></span></strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O menu “<em>Compiler</em>” dá acesso ao ambiente de desenvolvimento do kit. Ao criar o primeiro projeto, o ambiente gera automaticamente o arquivo <em>main.cpp</em> com o código abaixo:</span></span></p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &quot;mbed.h&quot;</span>
&nbsp;
DigitalOut myled<span style="color: #009900;">&#40;</span>LED1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        myled <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
        wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        myled <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
        wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>



<p> </p>
<p style="text-align: justify;"><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px;">É o código do “<em>Hello World</em>” que carregamos anteriormente. Veja que as bibliotecas estão implementadas em C++. </span></p>
<p style="text-align: justify;"><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px;">Clicando em “<em>Compile</em>”, o processo de compilação é quase que instantâneo, abrindo uma janela para salvar o arquivo <em>.bin</em> gerado. Basta salvar no drive “<em>MBED</em>” e reiniciar o kit para a primeira aplicação estar funcionando. </span></p>
<p style="text-align: justify;"><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px;">Obs: Não esqueça de remover qualquer arquivo <em>.bin</em> antes de copiar para o drive “<em>MBED</em>”, já que com dois arquivos <em>.bin</em> lá dentro, o kit mbed pode não saber qual aplicação usar.</span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Ao ler o código, e sem consultar biblioteca nenhuma, tentei intuitivamente fazer os quatro leds piscarem, com o código abaixo:</span></span></p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &quot;mbed.h&quot;</span>
&nbsp;
DigitalOut myled1<span style="color: #009900;">&#40;</span>LED1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled2<span style="color: #009900;">&#40;</span>LED2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled3<span style="color: #009900;">&#40;</span>LED3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled4<span style="color: #009900;">&#40;</span>LED4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        myled1 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled1<span style="color: #339933;">;</span>
        myled2 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled2<span style="color: #339933;">;</span>
        myled3 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled3<span style="color: #339933;">;</span>
        myled4 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled4<span style="color: #339933;">;</span>
        wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>



<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">E não é que funcionou de primeira! O uso dos bibliotecas é bem intuitivo. </span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Consultei rapidamente a <a href="http://mbed.org/handbook/Serial" target="_blank">documentação da biblioteca da porta serial</a>, e com duas linhas adicionais no código já estava enviando dados pela serial.</span></span></p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &quot;mbed.h&quot;</span>
&nbsp;
DigitalOut myled1<span style="color: #009900;">&#40;</span>LED1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled2<span style="color: #009900;">&#40;</span>LED2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled3<span style="color: #009900;">&#40;</span>LED3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DigitalOut myled4<span style="color: #009900;">&#40;</span>LED4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// default 9600 N81</span>
Serial pc<span style="color: #009900;">&#40;</span>USBTX<span style="color: #339933;">,</span> USBRX<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        myled1 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled1<span style="color: #339933;">;</span>
        myled2 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled2<span style="color: #339933;">;</span>
        myled3 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled3<span style="color: #339933;">;</span>
        myled4 <span style="color: #339933;">=</span> <span style="color: #339933;">!</span>myled4<span style="color: #339933;">;</span>
&nbsp;
        pc.<span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Hello Embedded World!<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        wait<span style="color: #009900;">&#40;</span><span style="color:#800080;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>



<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Com mesma interface USB o kit mbed emula um porta serial (no Linux, cria um device em <em>/dev/ttyACM0</em>). Basta usar qualquer aplicação de terminal serial apontando <em>/dev/ttyACM0</em> e configurado com <em>9600 8N1</em> para receber a mensagem.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">É realmente muito divertido programar com este kit. E existe uma espécie de rede social dentro do ambiente de desenvolvimento. Você pode por exemplo publicar e compartilhar seus projetos direto do compilador, de forma que outras pessoas possam reusar e melhorar seu código.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">É claro que nem tudo são flores, e a plataforma mbed tem algumas deficiências. E se você estiver desenvolvendo seu projeto e o link de internet cair? Vai namorar, jogar videogame ou brincar com seu cachorro, porque sem internet você perde acesso ao ambiente de desenvolvimento. Debbuging no kit é outro problema. Como ele não tem uma interface JTAG, você precisará aplicar técnicas <em>“old school”</em> usando os leds ou enviando prints na porta serial para debugar sua aplicação. O compilador online também é carente de algumas funcionalidades como auto-complete de código e buscas avançadas. </span></span></p>
<p style="text-align: justify;"><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px;">Mas o projeto chama a atenção por quebrar alguns paradigmas e ser bastante inovador.</span></p>
<p style="text-align: justify;"><strong><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">ONDE COMPRAR</span></span><br /> </strong></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Para quem estiver interessado, o kit mbed pode ser adquirido lá fora através da <a href="http://www.embeddedartists.com/products/lpcxpresso/mbed.php" target="_blank">Embedded Artists</a>, <a href="http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&amp;name=568-4916-ND" target="_blank">Digikey</a> ou <a href="http://www.lpctools.com/mbed.aspx" target="_blank">LPC Tools</a>. Aqui no Brasil, o kit pode ser adquirido na <a href="http://www.anacom.com.br/produtos/detalhes/?p=00000000948" target="_blank">Anacom</a>, </span></span><span class="Apple-style-span" style="border-collapse: collapse; color: #444444; font-family: arial, sans-serif; font-size: 15px;"><a href="http://www.arrowbrasil.com.br/" target="_blank">Arrow</a><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">, </span></span><a href="http://avnetexpress.avnet.com/" target="_blank">Avnet</a> ou <a href="http://www.karimex.com.br/" target="_blank">Karimex</a>.</span><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"> O valor FOB médio de todos eles é USD 59,00.</span></span></p>
<p> </p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">No próximo artigo, para explorar melhor todas as possibilidades e interfaces do kit mbed, iremos usá-lo junto com a <a href="http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php" target="_blank">LPCXpresso Base Board</a>, que tem diversas interfaces de I/O disponíveis, e quem sabe colocar o FreeRTOS para rodar nele.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Um abraço,</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Sergio Prado</span></span></p>
<div id="-chrome-auto-translate-plugin-dialog" style="opacity: 1 !important; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; position: absolute !important; top: 0px; left: 0px; overflow-x: visible !important; overflow-y: visible !important; z-index: 999999 !important; text-align: left !important; display: none; background-position: initial initial !important; background-repeat: initial initial !important; padding: 0px !important; margin: 0px !important;">undefined</div>
<div class="shr-publisher-1544"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Posts relacionados:</p><ol>
<li><a href='http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/' rel='bookmark' title='Novos brinquedos no pedaço: mbed e LPCXpresso'>Novos brinquedos no pedaço: mbed e LPCXpresso</a></li>
</ol><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/projetando-na-nuvem-com-o-kit-mbed/">Projetando na nuvem com o kit mbed</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/projetando-na-nuvem-com-o-kit-mbed/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Novos brinquedos no pedaço: mbed e LPCXpresso</title>
		<link>http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=novos-brinquedos-no-pedaco-mbed-e-lpcxpresso</link>
		<comments>http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 02:08:56 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Mbed]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[lpcxpresso]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[nxp]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=1499</guid>
		<description><![CDATA[<p>Kits de desenvolvimento mbed e LPCXpresso da NXP.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/">Novos brinquedos no pedaço: mbed e LPCXpresso</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Finalmente tenho em mãos um ARM Cortex-M. Na verdade, agora tenho dois! :)</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">A <a href="http://www.nxp.com/" target="_blank">NXP</a> gentilmente me forneceu dois kits de desenvolvimento para que eu pudesse avaliar a plataforma ARM Cortex-M. E são duas plataformas badaladas: o kit de desenvolvimento mbed e o kit LPCXpresso.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O <a href="http://mbed.org/" target="_blank">mbed</a> é mais do que um kit de desenvolvimento. É uma plataforma de prototipagem na nuvem! Nossa Sergio, o que é isso? Alguma espécie de ferramenta de desenvolvimento pós-morte? Claro que não! :)</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/mbedMicrocontroller.jpg" alt="mbedMicrocontroller Novos brinquedos no pedaço: mbed e LPCXpresso" width="172" height="149" title="Novos brinquedos no pedaço: mbed e LPCXpresso" /></span></span></p>
<p style="text-align: center;"><span style="font-size: 10px;"><span style="font-family: verdana,geneva,sans-serif;"><strong>Kit mbed — Fonte mbed.org</strong></span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O mbed é uma plataforma criada pelos engenheiros da própria ARM para diminuir a curva de aprendizagem em projetos com ARM, onde todo o ambiente de desenvolvimento (editor de código, compilador, etc) esta na internet. Então tudo o que você precisa para desenvolver é o próprio kit de desenvolvimento e um navegador web. Realmente, é uma idéia muito interessante e que me agrada bastante.</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O kit é baseado no NXP LPC1768, um ARM Cortex-M3 com 512K de memória Flash, 32K de RAM e diversas interfaces como CAN, SPI, I2C e Ethernet. No <a href="http://mbed.org" target="_blank">site do projeto</a> tem bastante documentação, vídeos, código-fonte, etc; e tem também um artigo bem legal sobre o mbed no <a href="http://blogdoje.com.br/2011/02/20/embedded-im-bad-mbed/" target="_blank">Blog do Je</a>.</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/mbed_pinout.png" alt="mbed pinout Novos brinquedos no pedaço: mbed e LPCXpresso" width="500" height="314" title="Novos brinquedos no pedaço: mbed e LPCXpresso" /></span></span></p>
<p style="text-align: center;"><span style="font-size: 10px;"><span style="font-family: verdana,geneva,sans-serif;"><strong>Diagrama do kit mbed — Fonte mbed.org</strong></span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Já o <a href="http://ics.nxp.com/lpcxpresso/" target="_blank">kit LPCXpresso</a> é uma plataforma de baixo custo para microcontroladores ARM da NXP. O kit é composto por uma placa base da <a href="http://www.embeddedartists.com" target="_blank">Embedded Artists</a> e uma placa LPCXpresso, possibilitando o uso de diferentes modelos de microcontroladores.</span></span></p>
<p style="text-align: center;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;"><img src="http://www.sergioprado.org/wp-content/uploads/xpr_base_350.jpg" alt="xpr base 350 Novos brinquedos no pedaço: mbed e LPCXpresso" width="350" height="253" title="Novos brinquedos no pedaço: mbed e LPCXpresso" /><img src="http://www.sergioprado.org/wp-content/uploads/lpcxpresso-lpc1114.jpg" alt="lpcxpresso lpc1114 Novos brinquedos no pedaço: mbed e LPCXpresso" width="150" height="80" title="Novos brinquedos no pedaço: mbed e LPCXpresso" /></span></span></p>
<p style="text-align: center;"><span style="font-size: 10px;"><span style="font-family: verdana,geneva,sans-serif;"><strong>LPCXpresso: placa base e LPC1114 — Fonte: embeddedartists.com e nxp.com</strong></span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">O kit que recebi é o LPCXpresso LPC1114, o primeiro ARM Cortex-M0 lançado no mercado, rodando a 50MHz, com 32K de flash, 8K de RAM e diversas interfaces para você “pintar e bordar” como USB, SPI, I2C, CAN, conversores A/D, e muitos, mas muitos outros I/Os! A plataforma de desenvolvimento é baseada no Eclipse, com debugger JTAG integrado e … suporte a Linux! Isso mesmo, eles não esqueceram do pinguim mais amado deste planeta…:)</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Estou ansioso para começar a desenvolver alguns projetos nestes kits, e vocês podem esperar vários artigos baseados nestas arquiteturas nas próximas semanas!</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Um abraço,</span></span></p>
<p style="text-align: justify;"><span style="font-size: 14px;"><span style="font-family: verdana,geneva,sans-serif;">Sergio Prado</span></span></p>
<div id="-chrome-auto-translate-plugin-dialog" style="opacity: 1 !important; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: transparent !important; position: absolute !important; top: 0px; left: 0px; overflow-x: visible !important; overflow-y: visible !important; z-index: 999999 !important; text-align: left !important; display: none; background-position: initial initial !important; background-repeat: initial initial !important; padding: 0px !important; margin: 0px !important;">
<div style="max-width: 300px !important; color: #fafafa !important; opacity: 0.8 !important; border-color: #000000 !important; border-width: 0px !important; -webkit-border-radius: 10px !important; background-color: #363636 !important; font-size: 16px !important; padding: 8px !important; overflow: visible !important; background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0%, #000), color-stop(50%, #363636), color-stop(100%, #000)); z-index: 999999 !important; text-align: left  !important;"></div>
<img style="position: absolute !important; z-index: -1 !important; right: 1px !important; top: -20px !important; cursor: pointer !important; -webkit-border-radius: 20px; background-color: rgba(200, 200, 200, 0.3) !important; padding: 3px 5px 0 !important; margin: 0 !important;" onclick="document.location.href='http://translate.google.com/';" src="http://www.google.com/uds/css/small-logo.png" alt="small logo Novos brinquedos no pedaço: mbed e LPCXpresso"  title="Novos brinquedos no pedaço: mbed e LPCXpresso" /></div>
<div class="shr-publisher-1499"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/">Novos brinquedos no pedaço: mbed e LPCXpresso</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/novos-brinquedos-no-pedaco-mbed-e-lpcxpresso/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Kit Piccolo controlSTICK da Texas Instruments</title>
		<link>http://sergioprado.org/kit-piccolo-controlstick-da-texas-instruments/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kit-piccolo-controlstick-da-texas-instruments</link>
		<comments>http://sergioprado.org/kit-piccolo-controlstick-da-texas-instruments/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 01:39:22 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Produtos]]></category>
		<category><![CDATA[C2000]]></category>
		<category><![CDATA[controlStick]]></category>
		<category><![CDATA[piccolo]]></category>
		<category><![CDATA[ti]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=1393</guid>
		<description><![CDATA[<p>Avaliação do kit de desenvolvimento Piccolo controlSTICK da Texas Instruments.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-piccolo-controlstick-da-texas-instruments/">Kit Piccolo controlSTICK da Texas Instruments</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">A <a href="http://www.ti.com/" target="_blank">Texas Instruments</a> possui um portfolio grande de processadores para soluções embarcadas como o microcontrolador de 16 bits MSP430, a plataforma C2000 para aplicações de tempo real, a linha ARM com as séries Sitara e Stellaris, seus famosos DSPs Integra e DaVinci para aplicações multimídia, e a família OMAP para aplicações mobile (arquitetura usada na <a href="http://beagleboard.org/" target="_blank">Beagleboard</a>).</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Recebi recentemente o kit Piccolo controlSTICK USB para avaliação do novo microcontrolador <a href="http://www.ti.com/corp/docs/landing/f280xx-piccolo/index.htm?DCMP=F2806x&amp;HQS=Other+BA+f2806x-bmcu-es" target="_blank">Piccolo</a> da TI. O kit é realmente pequeno, quase do tamanho de um pendrive.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="Texas Instruments Piccolo Kit Piccolo controlSTICK da Texas Instruments" height="158" src="http://www.sergioprado.org/wp-content/uploads/Texas-Instruments-Piccolo.jpg" width="250" title="Kit Piccolo controlSTICK da Texas Instruments" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Ele é baseado na arquitetura C2000, voltado para aplicações real-time e com o core da CPU otimizado para operações aritméticas. Esta CPU busca um meio termo entre a capacidade de processamento de um DSP e a facilidade de uso de um microcontrolador. Pode ser usado em diversos tipos de aplicações como smart grids para controle de energia, comunicação pela rede elétrica (PLC) e soluções automotivas.<br />
	</span></span></p>
<p style="text-align: center; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="piccolo Kit Piccolo controlSTICK da Texas Instruments" height="251" src="http://www.sergioprado.org/wp-content/uploads/piccolo.jpg" width="500" title="Kit Piccolo controlSTICK da Texas Instruments" /><br />
	</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit controlSTICK usa a CPU <a href="http://focus.ti.com/paramsearch/docs/parametricsearch.tsp?familyId=919&amp;sectionId=95&amp;tabId=1533&amp;family=mcu&amp;paramCriteria=no" target="_blank">TMS320F2806x</a>, com clock de 80MHz e capacidade de trabalhar com ponto flutuante, 128K de memória flash e 100K de RAM, 12 canais A/D, I2C, SPI, CAN e 54 pinos de I/O. De acordo com as especificações, o PWM pode trabalhar com a impressionante resolução de 65ps e os canais ADC com uma taxa de amostragem de 12.5 MSPS.</span></span></p>
<p style="text-align: justify; "><font class="Apple-style-span" face="verdana, geneva, sans-serif"><span class="Apple-style-span" style="font-size: 14px;">Um CD de instalação acompanha o kit, com os drivers para Windows, ferramentas e aplicações. </span></font><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Para usar o kit, basta conectá-lo em uma porta USB e instalar os drivers. A ferramenta controlSUITE disponibiliza todo um ambiente para facilitar a codificação das aplicações, com drivers, bibliotecas, exemplos e ferramentas de desenvolvimento.</span></p>
<p style="text-align: center; "><img alt="controlSUITE(1) Kit Piccolo controlSTICK da Texas Instruments" height="204" src="http://www.sergioprado.org/wp-content/uploads/controlSUITE(1).jpg" width="450" title="Kit Piccolo controlSTICK da Texas Instruments" /></p>
<p style="text-align: justify; "><font class="Apple-style-span" face="verdana, geneva, sans-serif"><span class="Apple-style-span" style="font-size: 14px;">Também disponível no CD de instalação encontra-se uma aplicação com um exemplo bem interessante de Transformada de Fourier (F28069_controlSTICK.exe), que me fez lembrar das aulas de telecomunicações no colégio técnico…:)</span></font></p>
<p style="text-align: center; "><font class="Apple-style-span" face="verdana, geneva, sans-serif"><span class="Apple-style-span" style="font-size: 14px;"><img align="middle" alt=" Kit Piccolo controlSTICK da Texas Instruments" height="418" src="http://www.sergioprado.org/wp-content/uploads/FTTExample.JPG" width="550" title="Kit Piccolo controlSTICK da Texas Instruments" /><br />
	</span></font></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Esta aplicação se comunica com a CPU através de uma conexão JTAG pela porta USB do PC. O primeiro gráfico é uma combinação de três ondas senoidais cujas frequências são configuradas no campo “Input Frequencies”. O segundo gráfico elimina todas as frequências abaixo da frequência configurada em “Frequency cutoff”. O terceiro gráfico é o espectro de frequências do sinal. Todos estes cálculos foram realizados pela unidade de ponto flutuante (FPU) do microcontrolador.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Se você precisa de uma arquitetura de CPU com características de real-time, uso de canais ADC e operações de ponto flutuante, a arquitetura C2000 pode ser uma boa solução.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Eu ainda pretendo usar este kit para testar uma aplicação com comunicação pela energia elétrica. Continuem acompanhando!</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço,</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-1393"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-piccolo-controlstick-da-texas-instruments/">Kit Piccolo controlSTICK da Texas Instruments</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/kit-piccolo-controlstick-da-texas-instruments/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mini2440 — Memory layout e bootloader</title>
		<link>http://sergioprado.org/mini2440-memory-layout-e-bootloader/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mini2440-memory-layout-e-bootloader</link>
		<comments>http://sergioprado.org/mini2440-memory-layout-e-bootloader/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 16:13:13 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Mini2440]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[arm9]]></category>
		<category><![CDATA[FriendlyARM]]></category>
		<category><![CDATA[nand]]></category>
		<category><![CDATA[nor]]></category>
		<category><![CDATA[supervivi]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=801</guid>
		<description><![CDATA[<p>Nest post vamos ver com um pouco mais de detalhes a arquitetura da CPU, o layout de memória e o bootloader que vem instalado de fábrica no kit FriendlyARM mini2440.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/mini2440-memory-layout-e-bootloader/">Mini2440 — Memory layout e bootloader</a>.</p></p>
Posts relacionados:<ol>
<li><a href='http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/' rel='bookmark' title='Kit de desenvolvimento FriendlyARM mini2440'>Kit de desenvolvimento FriendlyARM mini2440</a></li>
<li><a href='http://sergioprado.org/memory-leak-em-linguagem-c/' rel='bookmark' title='Memory leak em linguagem C'>Memory leak em linguagem C</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Recentemente comprei o kit <a href="http://www.friendlyarm.net/products/mini2440" target="_blank">FriendlyARM Mini2440</a>, e escrevi um post introdutório sobre ele <a href="http://www.sergioprado.org/2010/08/08/kit-de-desenvolvimento-friendlyarm-mini2440/" target="_blank">aqui</a>.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Minhas impressões iniciais são muito boas. Ele é possivelmente um dos melhores kits existentes (que conheço) para se aprender sobre Linux embarcado, por ser um hardware robusto, pelas ferramentas existentes e pela relação custo/benefício.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Vamos ver então com um pouco mais de detalhes a arquitetura da CPU, o layout de memória e o bootloader que vem instalado de fábrica.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><strong>CPU E O LAYOUT DE MEMÓRIA</strong></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit, com todas as suas interfaces de I/O e memória, pode ser visto na figura abaixo:</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><img alt="mini2440(1) Mini2440   Memory layout e bootloader" height="400" src="http://www.sergioprado.org/wp-content/uploads/mini2440(1).png" width="580" title="Mini2440   Memory layout e bootloader" /></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A CPU é um <span class="Apple-style-span">Samsung </span><span class="Apple-style-span">S3C2440 baseado no core </span><a href="http://en.wikipedia.org/wiki/ARM9" target="_blank"><span class="Apple-style-span">A</span><span class="Apple-style-span">RM920T</span></a><span class="Apple-style-span">, RISC, arquitetura Harvard e voltado para aplicações de baixo consumo. O datasheet pode ser baixado <a href="http://www.armkits.com/download/s3c2440.pdf" target="_blank">aqui</a>.</span></span></span></p>
<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Tem capacidade de endereçamento de até 1GB, sendo 8 bancos de memória de 128M selecionáveis através de 8 chip select’s (nGCS0…nGCS7).</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A memória RAM de 64MB (2 x 32MB) está mapeada para o endereço físico 0x30000000 <span class="Apple-style-span">através do nGCS6.</span></span></span></p>
<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Existem duas memórias de programa neste kit, o que acaba sendo um diferencial perante outros kits ARM voltados para aprendizado. O kit possui 2MB de memória flash do tipo NOR e 64MB de memória flash do tipo NAND.</span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para quem não conhece, vale aqui uma explicação sobre as diferenças entre estes dois tipos de memória.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Ambas foram inventadas na década de 80 pela Toshiba. As primeiras memórias NOR foram vendidas pela Intel em 88. Com tempo de resposta para apagar e escrever muito grande, mas com a possibilidade de acesso à leitura em qualquer posição de memória, foi uma aplicação ideal para memórias do tipo ROM, para armazenar programas que dificilmente são alterados, como a BIOS de PCs  e firmware de equipamentos eletrônicos.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Já as memórias do tipo NAND possui um tempo de escrita bem menor, e uma maior densidade, ou seja, mais MB de dados pelo mesmo espaço se comparados com as memórias NOR. Por outro lado, não é possível acesso de leitura à qualquer posição de memória. A leitura e gravação é feita por blocos de memória (4kB por exemplo). Isso dá a ela a aplicação ideal para armazenamento de dados. Quando usada como memória de programa, é necessário ter um bootloader que carrega seu conteúdo em memória RAM para ser executado.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit mini2440 consegue fazer o boot pelas duas memórias através de uma chave (NAND &lt;-&gt; NOR) no canto inferior direito da imagem acima.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Ao fazer o boot pela NAND, a CPU possui uma região especial chamada de <span class="Apple-style-span">“Boot internal SRAM”, onde são carregados e executados os primeiros 4KB da NAND. Estes primeiros 4K de programa serão os responsáveis por carregar o resto do programa da NAND para a RAM, e rodar a aplicação a partir de lá.</span></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><span class="Apple-style-span">Ao fazer o boot pela NOR, é carregado o bootloader Supervivi, que vêm instalado de fábrica. Ele é baseado no bootloader open source vivi da Samsung. Vamos dar uma olhada nele com mais detalhes.</span></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><strong><span class="Apple-style-span">BOOTLOADER SUPERVIVI</span></strong></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para acessar o bootloader ligue os cabos RS232 e USB e deixe a chave de seleção de memória na posição NOR. Você pode usar qualquer aplicação para consoles como o <a href="http://technet.microsoft.com/en-us/library/bb457166.aspx" target="_blank">HyperTerminal</a> para Windows ou o <a href="http://alioth.debian.org/projects/minicom/" target="_blank">minicom</a> para Linux. Este é o menu inicial do bootloader Supervivi:</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><span class="Apple-style-span"><img alt="supervivi menu Mini2440   Memory layout e bootloader" height="364" src="http://www.sergioprado.org/wp-content/uploads/supervivi_menu.png" width="479" title="Mini2440   Memory layout e bootloader" /></span></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A opção “q” oferece um shell para o bootloader e as outras opções automatizam determinada tarefa.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Apesar da manipulação do bootloader ser pela console (porta serial), a transferência de arquivos é pela USB. Você vai precisar de uma aplicação adicional para transferir arquivos e imagens: <a href="http://www.friendlyarm.net/dl.php?file=dnw.zip" target="_blank">DNW for Windows</a> ou <a href="http://www.friendlyarm.net/dl.php?file=usbpush.tar.gz" target="_blank">Usb-push for Linux</a>. <span class="Apple-style-span">Nos nossos exemplos usaremos um PC com Linux, mas os procedimentos com Windows são similares, e mais informações podem ser encontradas no manual de usuário do kit <a href="http://www.friendlyarm.net/dl.php?file=download.pdf" target="_blank">aqui</a>.</span></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><strong>CARREGANDO UMA APLICAÇÃO STANDALONE</strong></span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para carregar uma aplicação standalone na flash NAND, basta usar a opção “a”. Esta aplicação standalone pode ser qualquer binário pronto para execução. Pode ser uma simples aplicação para piscar leds ou uma aplicação mais completa com RTOS. Vamos carregar aqui o binário “myled.bin” na flash, que vem como exemplo junto com o kit:</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Primeiro devemos preparar o bootloader para carregar o arquivo com a opção “a”:</span></span></p>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>a<span style="color: #009900;">&#93;</span> Absolute User Application
Enter your selection<span style="color: #339933;">:</span> a
USB host is connected. <span style="color: #202020;">Waiting</span> a download.</pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Depois devemos disparar a transferência com a aplicação usb-push:</span></p>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">$ sudo .<span style="color: #339933;">/</span>usbpush <span style="color: #339933;">/</span>media<span style="color: #339933;">/</span>cdrom0<span style="color: #339933;">/</span>sample\ code\ without\ OS<span style="color: #339933;">/</span>myled.<span style="color: #202020;">bin</span>
csum <span style="color: #339933;">=</span> <span style="color: #208080;">0x83c6</span>
send_file<span style="color: #339933;">:</span> addr <span style="color: #339933;">=</span> <span style="color: #208080;">0x30000000</span><span style="color: #339933;">,</span> len <span style="color: #339933;">=</span> <span style="color: #208080;">0x0000084c</span></pre></div></div>



<p style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">O bootloader vai exibir o status da transferência:</span></p>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">Now<span style="color: #339933;">,</span> Downloading <span style="color: #009900;">&#91;</span>ADDRESS<span style="color: #339933;">:</span>30000000h<span style="color: #339933;">,</span>TOTAL<span style="color: #339933;">:</span><span style="color: #0000dd;">2134</span><span style="color: #009900;">&#93;</span>
RECEIVED FILE SIZE<span style="color: #339933;">:</span>    <span style="color: #0000dd;">2134</span> <span style="color: #009900;">&#40;</span>2KB<span style="color: #339933;">/</span>S<span style="color: #339933;">,</span> 1S<span style="color: #009900;">&#41;</span>
Downloaded file at <span style="color: #208080;">0x30000000</span><span style="color: #339933;">,</span> size <span style="color: #339933;">=</span> <span style="color: #0000dd;">2124</span> bytes
Write to flash ok<span style="color: #339933;">:</span> skipped size <span style="color: #339933;">=</span> <span style="color: #208080;">0x0</span><span style="color: #339933;">,</span> size <span style="color: #339933;">=</span> <span style="color: #208080;">0x84c</span></pre></div></div>



<div style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Então é só mudar a chave para NAND e reiniciar o kit.</span></div>
<div>
	<div style="text-align: justify; "> </div>
	<div style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">Vale aqui ressaltar um detalhe que já expliquei mais acima: como sua aplicação esta rodando pela NAND, o processador vai carregar os primeiros 4K para a SRAM interna e executar. Portanto, os primeiros 4K da sua aplicação deverá ter um código para copiar seu conteúdo para a RAM e então bootar a aplicação de lá.</span></div>
	<div style="text-align: justify; "> </div>
	<div style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; "><strong>CARREGANDO O LINUX</strong></span></div>
	<div style="text-align: justify; "> </div>
	<div style="text-align: justify; "><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">O bootloader divide a flash em 4 partições. Acesse o menu do bootloader com a opção “q” e digite o comando “part show”</span></div>
	<div style="text-align: justify; "> </div>


<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">Supervivi<span style="color: #339933;">&gt;</span> part show
Number of partitions<span style="color: #339933;">:</span> <span style="color: #0000dd;">4</span>
name            <span style="color: #339933;">:</span>       offset          size            flag
<span style="color: #339933;">------------------------------------------------------------</span>
vivi            <span style="color: #339933;">:</span>       <span style="color: #208080;">0x00000000</span>      <span style="color: #208080;">0x00040000</span>      <span style="color: #0000dd;">0</span>
param           <span style="color: #339933;">:</span>       <span style="color: #208080;">0x00040000</span>      <span style="color: #208080;">0x00020000</span>      <span style="color: #0000dd;">0</span>
kernel          <span style="color: #339933;">:</span>       <span style="color: #208080;">0x00060000</span>      <span style="color: #208080;">0x00500000</span>      <span style="color: #0000dd;">0</span>
root            <span style="color: #339933;">:</span>       <span style="color: #208080;">0x00560000</span>      <span style="color: #208080;">0x3fa80000</span>      <span style="color: #0000dd;">0</span></pre></div></div>



	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Na primeira partição está o próprio bootloader da NAND, a segunda é uma região para armazenar parâmetros e variáveis usadas pelo bootloader, na terceira está o kernel e na quarta o rootfs.</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Esta forma de trabalho facilita o desenvolvimento, porque você pode fazer alterações no rootfs sem ter que alterar o kernel, por exemplo.</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Para então carregar o linux, o processo é bem parecido com a aplicação standalone explicada acima. A diferença é que você vai precisar executar separadamente os comandos “v” para o bootloader, “k” para o kernel e “y” para o rootfs.</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><strong>O QUE MAIS POSSO FAZER COM ESTE BOOTLOADER</strong></span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Você pode ainda carregar um WINDOWS CE (opções “n”, “l”, “w”), carregar uma aplicação diretamente para a memória e rodar de lá (opção “d”), formatar a flash (opção “f”) e até fazer backup/restore </span></span><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">da NAND </span><span class="Apple-style-span" style="font-family: verdana, geneva, sans-serif; font-size: 14px; ">(opções “u” e “r”). </span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><span class="Apple-style-span">A regra aqui é usar o bootloader Supervivi na memória NOR para manipular a flash NAND, e assim não correr o risco de travar o kit. Se você apagar o conteúdo da NOR, só com um JTAG para você carregar novamente o bootloader.</span></span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Este bootloader, apesar de ajudar inicialmente, tem algumas deficiências, como suportar apenas sistemas de arquivo yaffs. No próximo post vamos carregar o u-boot, um bootloader bem mais flexivel, e brincar um pouco com o Android. Até lá!</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço,</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><br />
		</span></span></div>
	<div style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></div></div><div class="shr-publisher-801"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Posts relacionados:</p><ol>
<li><a href='http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/' rel='bookmark' title='Kit de desenvolvimento FriendlyARM mini2440'>Kit de desenvolvimento FriendlyARM mini2440</a></li>
<li><a href='http://sergioprado.org/memory-leak-em-linguagem-c/' rel='bookmark' title='Memory leak em linguagem C'>Memory leak em linguagem C</a></li>
</ol><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/mini2440-memory-layout-e-bootloader/">Mini2440 — Memory layout e bootloader</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/mini2440-memory-layout-e-bootloader/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Renesas oferece kit de avaliação gratuitamente</title>
		<link>http://sergioprado.org/renesas-oferece-kit-de-avaliacao-gratuitamente/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=renesas-oferece-kit-de-avaliacao-gratuitamente</link>
		<comments>http://sergioprado.org/renesas-oferece-kit-de-avaliacao-gratuitamente/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 01:22:37 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Produtos]]></category>
		<category><![CDATA[renesas]]></category>
		<category><![CDATA[rx600]]></category>
		<category><![CDATA[rx610]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=771</guid>
		<description><![CDATA[<p>Renesas oferece gratuitamente seu kit de avaliação RX-Stick for RX610.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/renesas-oferece-kit-de-avaliacao-gratuitamente/">Renesas oferece kit de avaliação gratuitamente</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Por um tempo determinado a <a href="http://www.renesas.com" target="_blank">Renesas</a> esta oferecendo gratuitamente seu kit de avaliação RX-Stick for RX610. A RX600 é uma série high-end da família RX de processadores, sucessora das famílias H8SX e R32C, arquiteturas de 32 bits da Renesas. Mais informações sobre a série RX600 podem ser lidas <a href="http://www.renesas.eu/products/mpumcu/rx/rx600/rx600_landing.jsp" target="_blank">aqui</a>.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">O kit tem uma CPU de 32bits rodando a 100MHz, 2MB de Flash e 128KB de RAM, gravação e debugging pela USB, matriz de leds, potenciômetro, joystick de quatro direções, etc. A Renesas criou uma <a href="http://www.renesasrulz.com/community/demoboards/rx610stick" target="_blank">página no site de sua comunidade online</a> para este kit com bastante documentação e software de exemplos para a utilização do kit, além de um vídeo demonstrando seu funcionamento:</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;"><iframe title="YouTube video player" class="youtube-player" type="text/html" width="425" height="344" src="http://www.youtube.com/embed/U4o5JzRGBek" frameborder="0" allowFullScreen="true"> </iframe></span></span></p>
<p style="text-align: justify; "><strike><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Se você quiser participar e receber um kit gratuitamente, basta fazer um cadastro no site da Renesas aqui.</span></span></strike></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Atualização: Infelizmente a Renesas não pode atender toda a demanda, e a promoção está cancelada.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço,</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-771"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/renesas-oferece-kit-de-avaliacao-gratuitamente/">Renesas oferece kit de avaliação gratuitamente</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/renesas-oferece-kit-de-avaliacao-gratuitamente/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Kit de desenvolvimento FriendlyARM mini2440</title>
		<link>http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kit-de-desenvolvimento-friendlyarm-mini2440</link>
		<comments>http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/#comments</comments>
		<pubDate>Sun, 08 Aug 2010 23:21:04 +0000</pubDate>
		<dc:creator>Sergio Prado</dc:creator>
				<category><![CDATA[Mini2440]]></category>
		<category><![CDATA[Produtos]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[FriendlyARM]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.sergioprado.org/?p=763</guid>
		<description><![CDATA[<p>Kit de desenvolvimento ARM9 cheio de recursos para se usar como plataforma de aprendizado em ARM e Linux Embarcado.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/">Kit de desenvolvimento FriendlyARM mini2440</a>.</p></p>
Sem posts relacionados.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">A pouco menos de 2 meses comprei no site do <a href="http://ebay.com" target="_blank">eBay</a> o kit de desenvolvimento <a href="http://www.friendlyarm.net/products/mini2440" target="_blank">FriendlyARM mini2440</a>. O produto foi importado da China e chegou este fim de semana. Fui ao estabelecimento dos Correios, paguei os impostos devidos e retirei o produto.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">No total (valor do kit + frete + impostos) o kit saiu em torno de R$360,00. Valor bem mais barato do que se adquirisse por aqui, ou se comprasse um kit ARM similar.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">E realmente este kit tem algumas caracteristicas interessantes. A começar pelo tamanho, de 10cm x 10cm. Veja uma foto com a placa do lado do meu Nokia E71:</span></span></p>
<p style="text-align: justify; "><font class="Apple-style-span" face="verdana, geneva, sans-serif" size="4"><span class="Apple-style-span" style="font-size: 14px;"><img alt="mini2440 size Kit de desenvolvimento FriendlyARM mini2440" height="367" src="http://www.sergioprado.org/wp-content/uploads/mini2440_size.png" width="580" title="Kit de desenvolvimento FriendlyARM mini2440" /><br />
	</span></font></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Além da placa o kit acompanha um display touch screen de 3,5 polegadas e alguns cabos (serial, JTAG, USB, Ethernet), e vem pre-carregado com uma imagem rodando Linux e <a href="http://en.wikipedia.org/wiki/Qt_Extended" target="_blank">Qtopia</a>. Veja abaixo o kit montado e rodando:</span></span></p>
<p style="text-align: justify; "><font class="Apple-style-span" face="verdana, geneva, sans-serif" size="4"><span class="Apple-style-span" style="font-size: 14px;"><img alt="mini2440 Kit de desenvolvimento FriendlyARM mini2440" height="377" src="http://www.sergioprado.org/wp-content/uploads/mini2440.png" width="580" title="Kit de desenvolvimento FriendlyARM mini2440" /><br />
	</span></font></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Suas configurações são impressionantes: CPU ARM9 da Samsung de 400MHz (S3C2440A), 64M de SDRAM, 64M de Nand Flash e 2M de NOR Flash, além de várias interfaces incluindo serial RS232, USB, Ethernet, Cartão SD e JTAG.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Já vem com um bootloader que possibilita carregar a aplicação via USB, e é compatível com os sistemas operacionais Windows CE, GNU/Linux e Android.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Este kit será, durante as próximas semanas, a plataforma que utilizarei para me aprofundar em ARM e linux embarcado, e especialmente no sistema operacional <a href="http://www.android.com/" target="_blank">Android</a> do Google.</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Alguns posts interessantes sobre este kit estão por vir. Aguardem!</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Um abraço,</span></span></p>
<p style="text-align: justify; "><span style="font-size:14px;"><span style="font-family:verdana,geneva,sans-serif;">Sergio Prado</span></span></p><div class="shr-publisher-763"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic --><p>Sem posts relacionados.</p><p><p>Sergio Prado atua com desenvolvimento de software para sistemas embarcados há mais de 15 anos. É sócio-fundador da Embed­ded Lab­works, uma empresa focada em te aju­dar a desen­volver soft­ware de qual­i­dade para sis­temas embar­ca­dos. Se você pre­cisa de ajuda para desen­volver seu pro­duto, ou quer saber mais sobre o que a Embed­ded Lab­works pode fazer por você, acesse <a href=”http://e-labworks.com/servicos/”> http://e-labworks.com/servicos</a>.</p>
<p>Este post foi originalmente publicado em <a href="http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/">Kit de desenvolvimento FriendlyARM mini2440</a>.</p></p>]]></content:encoded>
			<wfw:commentRss>http://sergioprado.org/kit-de-desenvolvimento-friendlyarm-mini2440/feed/</wfw:commentRss>
		<slash:comments>74</slash:comments>
		</item>
	</channel>
</rss>

