Day: February 17, 2007

Free JTAG para processadores ARM

Quando você desenvolve uma placa embarcada você precisa instalar um bootloader para conseguir enviar um sistema operacional ou mesmo outro bootloader para ela.

Mas como enviar uma imagem do bootloader se não temos um bootloader gravado na flash, nos encontramos diante do dilema do ovo e da galinha.

Felizmente é possível gravar o bootloader através da Interface JTAG. Programadores JTAG bons geralmente são caros,o BDI2000 da Abatron por exemplo custa mais de U$ 2,000.00.

Felizmente existem vários JTAG caseiros (homebrew) por aí, lembram do cabo JTAG que fiz para recuperar o bootloader de um iPaq estragado.

A novidade é melhor ainda, há um programa (daemon) chamado OpenOCD que permite usá-lo e ainda integrar com o GDB, assim podemos não só gravar o bootloader na flash, mas também depurar (“debugar”) qualquer software rodando no processador.

Site do projeto:
http://openocd.berlios.de/web/

Criando um ELF para usar no LinuxBIOS

A criação de sistema com o Linux BIOS passa por 4 processos:

Criação da Imagem do Kernel
Criação do rootfs como Initramfs
Criação do ELF contendo kernel+Initramfs
Criação da Imagem LinuxBIOS contendo o ELF como payload.

O kernel deve ser o menor possível contendo apenas recursos vitais para o funcionamento do Linux.

A criação do Initramfs (valeu Marcelo), pode ser encontrada aqui:
http://lldn.timesys.com/docs/initramfs
http://www.timesys.com/timesource/initramfs.htm

O comando para criar o ELF é listado abaixo:

mkelfImage --append="console=ttyS0" --initrd=initrd vmlinuz linux.elf

Pronto, já temos o payload, agora é só compilar o LinuxBIOS com ele.