mirror of
https://github.com/elua/elua.git
synced 2025-01-08 20:56:17 +08:00
bd1465ca50
Conflicts: SConstruct doc/en/arch_platform.html doc/en/comunity.html doc/en/overview.html doc/en/refman.html doc/en/refman_gen.html doc/en/status.html doc/en/tut_bootstick.html doc/images/lng_pt.png doc/images/minusnode.png doc/images/next.png doc/images/node.png doc/images/nodelast.png doc/images/plusnode.png doc/images/plusnodelast.png doc/images/previous.png doc/images/showall.png doc/images/sync.png doc/images/vertline.png doc/pt/arch.html doc/pt/arch_coding.html doc/pt/arch_con_term.html doc/pt/arch_newport.html doc/pt/arch_overview.html doc/pt/arch_platform.html doc/pt/arch_tcpip.html doc/pt/building.html doc/pt/comunity.html doc/pt/dl_binaries.html doc/pt/dl_old.html doc/pt/dl_sources.html doc/pt/downloads.html doc/pt/examples.html doc/pt/faq.html doc/pt/installing_i386.html doc/pt/installing_lm3s.html doc/pt/news.html doc/pt/overview.html doc/pt/refman_dep.html doc/pt/refman_gen.html doc/pt/status.html doc/pt/tc_386.html doc/pt/toolchains.html doc/pt/tut_openocd.html doc/pt/using.html romfs/LM3S.lua romfs/led.lua romfs/morse.lua romfs/pong.lua src/lua/linit.c src/modules/auxmods.h src/platform/lm3s/platform.c src/platform/lm3s/platform_conf.h src/platform/sim/platform_conf.h
239 lines
23 KiB
HTML
239 lines
23 KiB
HTML
$$HEADER$$
|
|
<h3>Gerando eLua</h3>
|
|
<p>Se você chegou a conclusão que fica melhor gerar o seu próprio arquivo binário <b>eLua</b>
|
|
(ao invés de <a href="downloads.html">baixá-lo</a>), então será necessário verificarmos algumas coisas antes:
|
|
</p>
|
|
<ul>
|
|
<li>você está usando Linux. É possível a compilação em windows, no entanto, ainda não foi testada. Usamos Ubuntu e o comando que utilizamos é o "apt-get". Caso você esteja com uma distro que possua um gerenciador de pacotes diferente, você terá que alterar o comando "apt-get" para um compatível com a sua distro.</li>
|
|
<li>você possui um toolchain (compilador, linker e bibliotecas de assembler e C padrão) para o seu hardware. Dê uma olhada na página
|
|
<a href="toolchains.html">toolchains</a> para obter ajuda. É importante observar que, mesmo que você já tenha um toolchain compilado, diferenças nos parâmetros de configuração da NewLib (principalmente os --disable-newlib-supplied-syscalls flags) podem gerar problemas e impedir que <b>eLua</b> seja gerada na sua máquina.</li>
|
|
<li>você configurou a sua plataforma corretamente. Leia o próximo parágrafo para obter instruções de como configurar a geração de <b>eLua</b>.</li>
|
|
<li>Python - Este deve estar previamente instalado. Caso contrário, execute o apt-get para instalá-lo:
|
|
<pre><code>$ sudo apt-get install python</code></pre>
|
|
</li>
|
|
<li>Scons - <b>eLua</b> usa scons ao invés do make
|
|
e makefiles, porque achamos que o scons é muito mais "natural" e fácil de usar do que o make. Para instalá-lo:
|
|
<pre><code>$ sudo apt-get install scons</code></pre>
|
|
</li>
|
|
<li>o diretório "bin" do seu toolchain (normalmente algo como /usr/local/cross-arm/bin, onde /usr/local/cross-arm é o diretório de sua instalação toolchain) e deve estar definido no $PATH.
|
|
</li>
|
|
<li>se você está gerando para a plataforma i386, precisará também do "nasm":
|
|
<pre><code>$ sudo apt-get install nasm</code></pre>
|
|
</li>
|
|
</ul>
|
|
<p>Para cada plataforma, <b>eLua</b> assume um nome para os componentes do toolchain, como relacionado abaixo.
|
|
</p>
|
|
<p>Se seu toolchain utiliza nomes diferentes, entã você terá que modificar a definição do toolchain no SConstruct. Leia as <a href="toolchains.html">instruções</a> para maiores detalhes.</p>
|
|
<h3>Configurando a imagem gerada</h3>
|
|
<p><b>eLua</b> possui um sistema de geração de sua imagem bastante flexível, e que pode ser usado para selecionar os componentes desejados que farão parte do arquivo binário de <b>eLua</b> e também para configuração(estática) durante a compilação. Para usá-lo, será necessário editar somente um único arquivo (<i>platform_conf.h</i>)
|
|
localizado no diretório da plataforma que está sendo utilizada (<i>src/platform/<platform
|
|
name>/platform_conf.h)</i>. Os parâmetros de configuração estão descritos em detalhes nos próximos parágrafos.</p>
|
|
<a name="components"><h2>Configurando os componentes</h2></a>
|
|
<p>Um <b>componente</b> é um recurso que pode ser habilitado para adicionar funcionalidade a <b>eLua</b>, sem modificar sua API (rotinas usadas pelos programadores para escrever programas em <b>eLua</b>). Segue abaixo um exemplo da configuração de um componente em <i>platform_conf.h</i>:
|
|
<p><pre><code>// *****************************************************************************
|
|
// Define here what components you want for this platform
|
|
|
|
#define BUILD_XMODEM
|
|
#define BUILD_SHELL
|
|
#define BUILD_ROMFS
|
|
#define BUILD_TERM
|
|
#define BUILD_UIP
|
|
#define BUILD_DHCPC
|
|
#define BUILD_DNS
|
|
#define BUILD_CON_GENERIC
|
|
#define BUILD_ADC</code></pre></p>
|
|
<p>Os componentes que podem ser configurados em <b>eLua</b> são:
|
|
</p>
|
|
<table class="table_center">
|
|
<tbody>
|
|
<tr>
|
|
<th style="text-align: left;">Nome</th>
|
|
<th style="text-align: center;">Descrição</th>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_XMODEM</td>
|
|
<td>Estabelece a função de recepção XMODEM. Se habilitada, você pode usar o comando "recv" do shell para receber um arquivo Lua (tanto código fonte quanto código précompilado) e executá-lo no seu hardware. Funciona somente com conexões RS-232 (apesar de que, em teoria, é possível fazê-lo funcionar em qualquer tipo de protocolo de transporte).
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_XMODEM</code></pre></p>
|
|
<a href="building.html#static">Dependências da configuração de dados estáticos:</a> <b>CON_UART_ID, CON_UART_SPEED, CON_TIMER_ID</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_SHELL</td>
|
|
<td>Etabelece a função de gerar um shell de <b>eLua</b> (veja <a href="using.html">usando eLua</a> para detalhes sobre o shell). Caso o shell não esteja habilitado, o código busca o arquivo chamado <i>/rom/autorun.lua</i> e executa-o. Se este arquivo não for encontrado, um interpretador Lua é iniciado automaticamente no seu hardware.<br>
|
|
Para habilitar o shell usando uma conexão serial:
|
|
<p><pre><code>#define BUILD_SHELL
|
|
#define BUILD_CON_GENERIC</code></pre></p>
|
|
Para habilitar o shell usando uma conexão TCP/IP:
|
|
<p><pre><code>#define BUILD_SHELL
|
|
#define BUILD_CON_TCP</code></pre></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_ROMFS</td>
|
|
<td>Habilita o sistema de arquivos <b>eLua</b> somente para leitura. Veja a <a href="arch_romfs.html">documentação ROMFS</a> para maiores detalhes sobre como usar este sistema de arquivos.
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_ROMFS</code></pre></p></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_TERM</td>
|
|
<td>Habilita o suporte ao terminal ANSI. Este recurso permite que <b>eLua</b> interaja com terminais que suportem sequências ANSI (mais detalhes <a href="arch_con_term.html">aqui</a>). Atualmente, este recurso funciona somente em conexões R-232, apesar desta não ser uma obrigação estrita. Você precisa habilitar este recurso, caso seja necessário usar o <a href="refman_gen_term.html">term module</a>.
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_TERM</code></pre></p>
|
|
<a href="building.html#static">Dependências da configuração de dados estáticos:</a> <b>CON_UART_ID, CON_UART_SPEED, CON_TIMER_ID, TERM_LINES, TERM_COLS</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_UIP</td>
|
|
<td>Habilita o suporte para o TCP/IP. Você precisa habilitar este recurso, caso seja necessário usar o <a href="refman_gen_net.html">net
|
|
module</a>. Além disso, sua plataforma deve implementar o suporte para as funções uIP (veja a documentação <a href="arch_platform.html">platforminterface</a> para mais detalhes).
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_UIP</code></pre></p>
|
|
<a href="building.html#static">Dependências da configuração de dados estáticos:</a> <b>ELUA_CONF_IPADDR0..3, ELUA_CONF_NETMASK0..3, ELUA_CONF_DEFGW0..3,
|
|
ELUA_CONF_DNS0..3</b>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_DHCPC</td>
|
|
<td>Se BUILD_UIP está ativado, você pode habilitar este recurso para incluir um cliente DHCP na rede TCP/IP.
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_UIP
|
|
#define BUILD_DHCPC</code></pre></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_DNS</td>
|
|
<td>Se BUILD_UIP está ativado, você pode habilitar este recurso para incluir um servidor DNS mínimo na rede TCP/IP.
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_UIP
|
|
#define BUILD_DNS</code></pre></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_CON_GENERIC</td>
|
|
<td>Suporte genérico para console (detalhes <a href="arch_con_term.html">aqui</a>). Habilita o acesso a console (stdio/stdout/stderr) via protocolo de transporte serial (atualmente RS-232, mas outros podem ser suportados). Ative este recurso caso você queira usar uma console de entrada/saída com sua conexão RS-232. Não ative este recurso caso você queira usar uma console de entrada/saída com Ethernet (veja a próxima opção).
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_CON_GENERIC</code></pre></p>
|
|
<a href="building.html#static">Dependências da configuração de dados estáticos:</a> <b>CON_UART_ID, CON_UART_SPEED, CON_TIMER_ID</b></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_CON_TCP</td>
|
|
<td>Console de entrada/saída sobre uma conexão TCP/IP (detalhes <a href="arch_con_term.html">aqui</a>). Use este recurso se você quiser usar sua placa <b>eLua</b> sobre uma conexão telnet. Não ative este recurso caso você precise de uma console com protocolo de transporte serial (veja a opção anterior).
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_UIP
|
|
#define BUILD_CON_TCP</code></pre></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">BUILD_ADC</td>
|
|
<td>Suporte genérico para código ADC. Você precisa ativar este recurso caso queira usar o módulo <a href="refman_gen_adc.html">adc</a>, ou simplesmente as funções ADC da interface da plataforma. Por outro lado, você não precisa ativar este recurso caso não esteja pensando em usar as funções ADC.
|
|
Para habilitar:
|
|
<p><pre><code>#define BUILD_ADC</code></pre></p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<a name="confmodules"><h2>Configurando os módulos</h2></a>
|
|
<p>Você pode selecionar os módulos que farão parte do arquivo imagem de <b>eLua</b>. Ao contrário dos componentes, os módulos têm um impacto direto na API de <b>eLua</b>, logo tenha cuidado ao selecioná-los. Ao desativar um módulo, você gera um espaço de memória flash (e possivelmente RAM), mas também irá remover completamente a possibilidade de usar este módulo de <b>eLua</b>.</p>
|
|
<p>Os módulos incluídos na geração são epecificados pela macro LUA_PLATFORM_LIBS_ROM. Veja um exemplo abaixo: </p>
|
|
<pre><code>#define LUA_PLATFORM_LIBS_ROM\
|
|
_ROM( AUXLIB_PIO, luaopen_pio, pio_map )\
|
|
_ROM( AUXLIB_TMR, luaopen_tmr, tmr_map )\
|
|
_ROM( AUXLIB_PD, luaopen_pd, pd_map )\
|
|
_ROM( AUXLIB_UART, luaopen_uart, uart_map )\
|
|
_ROM( AUXLIB_TERM, luaopen_term, term_map )\
|
|
_ROM( AUXLIB_PWM, luaopen_pwm, pwm_map )\
|
|
_ROM( AUXLIB_PACK, luaopen_pack, pack_map )\
|
|
_ROM( AUXLIB_BIT, luaopen_bit, bit_map )\
|
|
_ROM( AUXLIB_CPU, luaopen_cpu, cpu_map )\
|
|
ROM( LUA_MATHLIBNAME, luaopen_math, math_map )</code></pre>
|
|
<p>Cada módulo é definido por uma macro <b>_ROM( module_name,
|
|
module_init_function, module_map_array )</b>, onde:
|
|
</p>
|
|
<ul>
|
|
<li><b>module_name</b> é o nome pelo qual o módulo pode ser usado a partir de eLua</li>
|
|
<li><b>module_init_function</b> é uma função chamada pelo programa Lua em tempo de execução quando o módulo é inicializado</li>
|
|
<li><b>module_map_array</b> é uma lista de todas as funções e constantes exportadas pelo módulo</li>
|
|
</ul>
|
|
<p>Por favor, observe que esta notação é específica para LTR (o patch <b>L</b>ua <b>T</b>iny <b>R</b>AM) e não é a única forma de especificar a lista dos módulos incluídos na geração (apesar desta ser uma forma comum). Verifique a <a href="arch_ltr.html#config">seção LTR</a> para mais informações sobre LTR.</p>
|
|
<p>Para uma lista completa de todos os módulos que podem ser ativados ou desativados via <i>platform_conf.h</i>, veja <a href="refman_gen.html">the
|
|
eLua reference manual</a>.</p>
|
|
<a name="static"><h2>Dados da configuração estática</h2></a>
|
|
<p>"Configuração estática" refere-se a configuração durante o tempo de compilação. Os parâmetros da configuração estática estão gravados na imagem do firmware e não podem ser alterados em tempo de execução. A tabela abaixo relaciona os parâmetros de configuração estática e suas semânticas.
|
|
</p>
|
|
<table class="table_center">
|
|
<tbody>
|
|
<tr>
|
|
<th style="text-align: left;">Nome</th>
|
|
<th style="text-align: center;">Descrição</th>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">CON_UART_ID<br>CON_UART_SPEED<br>CON_TIMER_ID<br></td>
|
|
<td>Usado para configurar console de entrada/saída sobre a UART. Um id específico da UART será usado para a console de entrada/saída, a uma velocidade específica. O formato dos dados é sempre é 8N1 (8 bits de dados, sem paridade, 1 stop bit) neste ponto. O timer ID especificado será usado para o subsistema da console. Essas variáveis são usadas também pelas implementações do XMODEM e do TERM.</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">TERM_LINES<br>TERM_COLS<br>
|
|
</td>
|
|
<td>Usado para configurar o suporte ao terminal ANSI (caso esteja habilitado). Usado para especificar (respectivamente) o número de linhas e colunas do terminal ANSI.</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">ELUA_CONF_IPADDR0..3<br>
|
|
ELUA_CONF_NETMASK0..3<br>
|
|
ELUA_CONF_DEFGW0..3<br>
|
|
ELUA_CONF_DNS0..3</td>
|
|
<td>Usado pelo protocolo TCP/IP caso o cliente DHCP não esteja ativado, ou quando mesmo ativado, este náo tenha como ser contactado. Especifique o endereço IP, a máscara de rede, o gateway padrão e o servidor DNS. Necessário somente quando o BUILD_UIP for habilitado.</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">VTMR_NUM_TIMERS<br>
|
|
VTMR_FREQ_HZ</td>
|
|
<td>Especifique a configuração dos timers virtuais da plataforma (acesse a <a href="arch_platform_timers.html#virtual_timers">documentação do módulo timer</a> para detalhes). Defina VTMR_NUM_TIMERS como 0 caso este recurso não seja utilizado.</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="color: rgb(255, 102, 0);">PLATFORM_CPU_CONSTANTS</td>
|
|
<td>Se o <a href="refman_gen_cpu.html">cpu module</a>
|
|
estiver ativado, este define uma relação de constantes da plataforma específica(por exempo máscaras de interrupção) que podem ser acessadas usando a notaço cpu.<constant name>. Os nomes de cada constante devem ser especificados ao invés de uma construção específica (<i>_C(<constantname></i>). Por exemplo:
|
|
<pre><code>#define PLATFORM_CPU_CONSTANTS\<br> _C( INT_GPIOA ),\<br> _C( INT_GPIOB ),\<br> _C( INT_GPIOC ),\<br> _C( INT_GPIOD ),\<br> _C( INT_GPIOE )<br></code></pre>
|
|
Após a compilação, você poderá acessar essas constantes usando <i>cpu.INT_GPIOx</i>.
|
|
Observe que a implementação desses recursos não precisa de memória RAM, logo você poderá definir quantas constantes desejar.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Os parâmetros da configuração estática restantes foram deixados para serem alterados pelos desenvolvedores e por este motivo, não estão relacionados aqui.<br>Outra coisa que você poderá querer configurar é o conteúdo do sistema de arquivo de sua ROM. Veja a <a href="arch_romfs.html">documentação ROMFS</a> para detalhes de como fazer isso.</p>
|
|
<h3>Iniciando o "build system"</h3>
|
|
<p>Agora, que você está com tudo em seu lugar, resta então executar o "build system" (scons) com os argumentos corretos. Este é um passo fácil, apesar da aparência intimidadora devido as múltiplas opções existentes no scons. São usadas para se ajustarem às suas necessidades específicas, mas a menos que suas necessidades sejam muito especiais, você não precisará modificá-las, logo não se preocupe com a aparente complexidade. Os exemplos no fim desta seção mostrarão como é fácil usar o "build system" na prática.</p>
|
|
<pre><code>$ scons <br> [target=lua | lualong]<br> [cpu=at91sam7x256 | at91sam7x512 | i386 | str912fw44 | lm3s8962 | <br> lm3s6965 | lm3s6918 | lpc2888 | str711fr2 | at32uc3a0512 | stm32f103ze<br> [board=ek-lm3s8962 | ek-lm3s6965 | eagle-100 | str9-comstick | sam7-ex256 | <br> lpc-h2888 | mod711 | pc | atevk1100 | stm3210e-eval ]<br> [cpumode=arm | thumb] <br> [allocator = newlib | multiple | simple]<br> [toolchain = <toolchain name>]<br> [optram = 0 | 1]<br> [prog]<br></code></pre>
|
|
<p>Seu hardware está especificado por dois parâmetros: cpu e placa. "cpu" representa o nome da cpu, e "placa" o nome de sua placa. Uma placa pode ser associada a mais de uma CPU. Esta característica permite ao "build system" ter bastante flexibilidade. Você pode usar estas duas opções juntas ou separadas, como mostrado a seguir:</p>
|
|
<ul>
|
|
<li><b>cpu=name</b>: gera para uma CPU específica. Um nome para a placa será gerado automaticamente pelo sistema.</li>
|
|
<li><b>board=name</b>: gera para uma placa específica. Um nome para a CPU será inferido automaticamente pelo sistema.</li>
|
|
<li><b>cpu=name board=name</b>: gera para uma placa e uma CPU. O script de geração não permitirá combinações invalidas de CPU/placa.</li>
|
|
</ul>
|
|
<p>Veja no inicio do arquivo SConstruct (<i>platform_list</i>) como configurar os parâmetros placa/CPU, são auto-explicativos.<br>
|
|
As outras opções são mostradas a seguir:</p>
|
|
<ul>
|
|
<li><b>target=lua | lualong</b>: especifica se você deseja gerar Lua como "regular" (com suporte a ponto flutuante) ou somente "inteiro longo" (lualong). O default é "lua". "lualong" roda mais rápido em hardware que não possua co-processador para ponto flutuante (o que é o caso de todos os atuais hardwares que rodam <b>eLua</b>) mas não permite o suporte para operações de ponto flutuante, somente opera com inteiros.</li>
|
|
<li><b>cpumode=arm | thumb</b>: para CPUs ARM (não use Cortex) especifica o modo de compilação. O valor default é 'thumb' para as CPUs AT91SAM7X e 'arm' para as CPUs STR9 e LPC2888.</li>
|
|
<li><b>allocator = newlib | multiple | simple</b>: escolha entre o valor default (newlib) que é uma versão mais antiga do alocador dlmalloc, o alocador mútiplo de espaços de memória (multiple) que é uma versão mais recente do dlmalloc que permite tratar múltiplos espaços de memória, e um alocador de memória muito simples (simple) que é lento e não trata muito bem fragmentação, mas requer muito pouco recurso (Flash/RAM). Você só deve usar o alocador 'multiple' nos casos em que prescise de a espaços múltiplos de memória. O valor default é 'newlib' para todas as CPUs exceto a 'lpc2888' e a 'at32uc3a0512', desde que a LPC-H2888 e a placa ATEVK1100 venham com memória externa SDRAM e dessa maneira se tornam o hardware ideal para o uso do 'multiple'. Você deve utilizar 'simple' somente em sistemas com muita restrição de recursos de hardware.</li>
|
|
<li><b>toolchain=<toolchain name></b>:
|
|
especifica o nome do toolchain usado para gerar a imagem. Veja <a href="toolchains.html#configuration">este link</a> para mais detalhes.</li>
|
|
<li><b>optram=0 | 1</b>: habilita ou desabilita o patch LTR, veja a <a href="arch_ltr.html">documentação LTR</a> pra mais detalhes. O valor default é 1, que habilita o patch LTR.</li>
|
|
<li><b>prog</b>: por default, o comando 'scons' acima gerará somente o arquivo 'elf' (executável). Quando necessário, acrescente o parâmetro "prog" para gerar também um arquivo de programação da plataforma específica (por exemplo, usando o AT91SAM7X256, este parâmetro resulta na geração de um arquivo .bin que poderá ser programado nesta CPU). </li>
|
|
</ul>
|
|
<p>O resultado será um arquivo chamado elua_<i>[target]</i>_<i>[cpu]</i>.elf
|
|
(se o parâmetro "prog" foi especificado, no caso de plataformas que precisam deste parâmetro para programação, um outro arquivo também é gerado com o mesmo nome, porém terminando com .bin/.hex).<br>
|
|
Se você deseja um comando equivalente a um "make clean", execute o "scons" como mostrado acima, mas acrescente um "-c" ao final da linha de comando. "scons -c" é também recomendado após você reconfigurar sua imagem gerada, já que o scons parece omitir as mudanças feitas nestes arquivos em alguns momentos.</p>
|
|
<p><b>Alguns exemplos:</b></p>
|
|
<pre><code>$ scons cpu=at91sam7x256 -c <br></code></pre>
|
|
<p>Apaga os arquivos gerados anteriormente.</p>
|
|
<pre><code>$ scons cpu=at91sam7x256<br></code></pre>
|
|
<p>Gera eLua para uma CPU AT91SAM7X256. O nome da placa é detectado como sendo a sam7-ex256.</p>
|
|
<pre><code>$ scons board=sam7-ex256<br></code></pre>
|
|
<p>Gera eLua para uma placa SAM7-EX256. A CPU AT91SAM7X256 é detectada.</p>
|
|
<pre><code>$ scons board=sam7-ex256 cpu=at91sam7x512<br></code></pre>
|
|
<p>Gera eLua para a placa SAM7-EX256, porém define uma CPU específica. Isto é interessante quando você gostaria de saber como a placa especificada se comportará (em termos de recursos) com uma CPU diferente (no caso da placa SAM7-EX256 é possível mudar a CPU AT91SAM7X256 por uma AT91SAM7X512 a qual possui a mesma pinagem mas vem com mais memória Flash/RAM).</p>
|
|
<pre><code>$ scons cpu=lpc2888 prog </code></pre>
|
|
<p>Gera eLua para a CPU lpc2888. A placa é detectada como LPC-H2888. Aém disso, é gerado um arquivo bin necessário para a programação da CPU. O parâmetro allocator é detectado automaticamente como "multiple".</p>
|
|
<pre><code>$ scons cpu=lm3s8962 toolchain=codesourcery prog</code></pre>
|
|
<p>Gera a imagem para a CPU Cortex LM3S8962, mas usa o CodeSourcery toolchain ao invés do toolchain default (que é a toolchain "genérica" ARM GCC, normalmente a única gerada seguindo as instruções dos tutoriais deste site.</p>
|
|
$$FOOTER$$
|
|
|