cpu


write32( address, data ) : grava dados de 32 bits no endereço especificado

write16( address, data ) : grava dados de 16 bits no endereço especificado

write8( address, data ) : grava dados de 8 bits no endereço especificado



Data = read32( endereço ) : lê dados de 32 bits do endereço especificado

Data = read16( address ) : lê dados de 16 bits do endereço especificado

Data = read8( address ) : lê dados de 8 bits do endereço especificado



[cpu.disableinterrupts()]   cli(): desabilita interrupçõs da CPU



[cpu.enableinterrupts()]   sei(): habilita interrupçõs da CPU



[cpu.clockfrequency()]     Clock = clock(): retorna a frequência da CPU


Além disso, você pode expor tantas constantes da CPU (por exemplo memória registradores)

quantas você quiser para este módulo. Você talvez queira usar este recurso para acessar algumas

áreas de memória usadas pela CPU (como está definido nos arquivos de header da CPU do pacote de suporte

da CPU) diretamente de Lua. Para realizar isso, você precisará definir a

macro PLATFORM_CPU_CONSTANTS no arquivo platform_conf.h da plataforma

(src/platform/<platform name>/platform_conf.h). Inclua todas as constantes na

_C( <nome da constante> ) definição, e então faça seu projeto.

Por exemplo, suponhamos que o controlador de interrupções da CPU possua 3 registradores de

memória mapeada: INT_REG_ENABLE, INT_REG_DISABLE and INT_REG_MASK. Se você quiser

acessá-los de Lua, localize o header que define os valores para esses

registradores (assumirei seu nome como sendo "cpu.h") e acrescente essas linhas no arquivo

platform_conf.h:


#include "cpu.h"


#define PLATFORM_CPU_CONSTANTS\

_C( INT_REG_ENABLE ),\

_C( INT_REG_DISABLE ),\

_C( INT_REG_MASK )


Depois disso você poderá acessar os registradores diretamente, como segue:


data = cpu.r32( cpu.INT_REG_ENABLE )

cpu.w32( cpu.INT_REG_ENABLE, data )


Como exemplo prático, veja o arquivo src/platform/lm3s/platform_conf.h.

[uart.sendstring] uart.sendstr( id, str1, str2, ... ): este é semelhante ao "uart.send", porém, seus parâmetros são strings.