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 = 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.