$$HEADER$$

Instalando eLua com o processador LPC2888 da NXP

O processador LPC2888 da NXP possui algumas características interessantes: uma enorme memória flash interna de 1Mbyte, USB 2.0 on-chip de alta velocidade e o mais complexo (de longe) clock de rede que já vimos em um chip ATM7TDMI. Além disso, implementa o USB DFU (Device Firmware Update) através de sua interface USB e por isso fica bastante fácil de programá-lo direto no hardware. Estamos usando a placa de desenvolvimento Olimex LPC-H2888 baseada nesse processador, que vem com 32M Bytes de SDRAM externo e também 2M Bytes de flash externo, o que é mais que suficiente para nossas necessidades. No entanto, existem algumas desvantagens. Para começar, seu aplicativo de suporte (da Panasonic) é muito fraco, quando comparado a outros concorrentes que aceitam eLua. Não possui nem mesmo todos os drivers, somente uns poucos e bastante imcompletos. O esquema do processador poderia ser mais detalhado, especialmente quando se refere a clock (que é bastante complicado). Em nossa placa, a atualização do firmware via USB (DFU download mode) parou de funcionar de repente, sem qualquer razão aparente e não conseguimos mais usar a DFU no chip, desde então, tivemos que recorrer ao uso do OpenOCD (e preparar um arquivo de configuração, já que era impossível encontrar um para LPC2888). A CPU em si tem uma limitação muito interessante: por causa de um erro estrutural é impossível executar código Thumb da memória flash on-chip, só é possível executar código ARM comum (?!). Além disso, a placa que temos da Olimex ignora completamente o fato de que esse chip é capaz de rodar no modo DFU (a placa não inclui nenhum tipo de jumper e/ou switch para habilitar este modo), logo, tivemos que construir uma placa complementar. Era algo que já precisaria ser feito mesmo, pois a placa também não possui uma interface RS232, que foi construída baseada no chip MAX232. Depois de tudo isso, concluimos que nossa que nossa experiência com este chip (e com a placa Olimex) não foi tão agradável assim mas isso não muda o fato de que o LPC-H2888 é uma das mais poderosas placas em que eLua pode ser executada.

Pré-requisitos

Antes de utilizar eLua na CPU LPC2888, certifique-se de que:

Gravando eLua no LPC2888 usando a ferramenta DFU da NXP

O software DFU para gravação em memória Flash não trabalha diretamente nos arquivos binários que você obteve após ter gerado eLua, é preciso executá-los através do programa "hostcrypt" da NXP (que faz parte do pacote LPC2888 DFU). Depois de já ter gerado o seu arquivo binário de eLua, execute os seguintes comandos a partir do prompt do Windows (certifique-se que hostcryptv2.exe está definido no path):

C:> hostcryptv2 elua_lua_lpc2888.bin elua.ebn -K0 -F0

Como resultado, você terá um novo arquivo (elua.ebn). Agora, inicialize seu chip no modo DFU (veja acima) e use o utilitário DFU (MassDFUApplication.exe) para carregar elua.ebn em seu chip (as instruções sobre como usar o MassDFUApplication estão em um arquivo PDF que está incluído no pacote de LPC2888 DFU). Reinicie a placa e divirta-se.

Gravando eLua no LPC2888 usando o OpenOCD

Se você tiver tanta sorte quanto nós, e sua placa se recusa a funcionar no modo DFU, siga este tutorial do OpenOCD para gravar sua imagem usando OpenOCD.

$$FOOTER$$