mirror of
https://github.com/elua/elua.git
synced 2025-01-08 20:56:17 +08:00
180 lines
6.7 KiB
HTML
180 lines
6.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
|
|
<html><head>
|
|
</head>
|
|
<h3><a name="over"></a>cpu</h3>
|
|
<p class="MsoNormal" style="font-family: Verdana;"><br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"></p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="write32"></a>write32( address, data ) : grava
|
|
dados de 32 bits no endereço especificado</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="write16"></a>write16( address, data ) : grava
|
|
dados de 16 bits no endereço especificado</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="write8"></a>write8( address, data ) : grava
|
|
dados de 8 bits no endereço especificado</font> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"><br>
|
|
</p>
|
|
<br>
|
|
<font face="Bitstream Vera Sans Mono, sans-serif"><a name="read32"></a>Data = read32( endereço ) :
|
|
lê dados de 32 bits do endereço especificado</font>
|
|
<p style="margin-bottom: 0in;"></p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="read16"></a>Data = read16( address ) : lê
|
|
dados de 16 bits do endereço especificado</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="read8"></a>Data = read8( address ) : lê
|
|
dados de 8 bits do endereço especificado</font></p>
|
|
<p style="margin-bottom: 0in;"><br>
|
|
</p>
|
|
<br>
|
|
<p style="margin-bottom: 0in;"><a name="disableinterrupts"></a>
|
|
[cpu.disableinterrupts()] <font face="Bitstream Vera Sans Mono, sans-serif">cli(): desabilita
|
|
interrupçõs da CPU</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"><a name="enableinterrupts"></a>
|
|
[cpu.enableinterrupts()] <font face="Bitstream Vera Sans Mono, sans-serif">sei(): habilita
|
|
interrupçõs da CPU</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><br>
|
|
</font></p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"><a name="clockfrequency"></a>[cpu.clockfrequency()]
|
|
Clock = clock(): retorna a frequência da CPU</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">Além disso, você pode
|
|
expor tantas constantes da CPU (por exemplo memória registradores)</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">quantas você quiser para
|
|
este módulo. Você talvez queira usar este recurso para acessar algumas </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">áreas de memória usadas pela CPU
|
|
(como está definido nos arquivos de header da CPU do pacote de suporte </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif"> da CPU)
|
|
diretamente de Lua. Para realizar isso, você precisará definir a </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">macro PLATFORM_CPU_CONSTANTS
|
|
no arquivo platform_conf.h da plataforma </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">(src/platform/<platform
|
|
name>/platform_conf.h). Inclua todas as constantes na </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">_C(
|
|
<nome da constante> ) definição, e então faça seu projeto.</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">Por exemplo,
|
|
suponhamos que o controlador de interrupções da CPU possua 3 registradores de</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">memória
|
|
mapeada: INT_REG_ENABLE, INT_REG_DISABLE and INT_REG_MASK. Se você quiser</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">acessá-los
|
|
de Lua, localize o header que define os valores para esses</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">registradores (assumirei
|
|
seu nome como sendo "cpu.h") e acrescente essas linhas no arquivo</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">platform_conf.h:</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">#include "cpu.h"</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">#define
|
|
PLATFORM_CPU_CONSTANTS\</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">_C(
|
|
INT_REG_ENABLE ),\</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">_C(
|
|
INT_REG_DISABLE ),\</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">_C( INT_REG_MASK
|
|
)</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">Depois disso
|
|
você poderá acessar os registradores diretamente, como segue:</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">data = cpu.r32(
|
|
cpu.INT_REG_ENABLE )</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">cpu.w32(
|
|
cpu.INT_REG_ENABLE, data )</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">Como
|
|
exemplo prático, veja o arquivo src/platform/lm3s/platform_conf.h.</font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;">
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <font face="Bitstream Vera Sans Mono, sans-serif">[uart.sendstring]
|
|
uart.sendstr( id, str1, str2, ... ): este é semelhante ao "uart.send",
|
|
porém, seus parâmetros são strings. </font>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<p style="margin-bottom: 0in;"> <br>
|
|
</p>
|
|
<br style="font-family: Verdana;">
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
<br>
|
|
</body></html>
|