Instalando BDM no Linux

Sera explicado neste artigo como compilar o BDM-TOOLS para controlar uma placa com processador Coldfire através da Interface BDM.

Será utilizado a processo de geração de device driver para o kernel, e não o processo de acesso direto as portas de IO (IOPERM).

Baixe o bdm-tools do site http://sourceforge.net/projects/bdm a versão atual é a 1.3.0.

Extraia o arquivo bdm:
tar jxvf m68k-bdm-1.3.0.tar.bz2

Entre no diretório criado
m68k-bdm-1.3.0

Agora compile a BDMlib e o bdm-chk, para evitar o erro de não encontrar a biblioteca bfd.h instale o binutils-dev:
apt-get install binutils-dev

Em seguida continue com a compilação:
./configure
make
make install

Precisamos compilar o device driver BDM, mas antes temos que modificar o arquivo driver/bdm.c porque o RAMBAR está com o valor errado, não funciona nos Coldfires V2 (MCF5282, MCF5235, etc).
mude de:
0xc04, /* BDM_REG_RAMBAR */

para:
0xc05, /* BDM_REG_RAMBAR */

Entre dentro do diretório onde contém o driver para a versão do seu kernel, estou usando o kernel 2.6:
cd m68k-bdm-1.3.0/driver/linux-2.6

Compile e instale:
make
make install

Crie o file device:
mknod /dev/bdmcf0 c 34 4

Agora vamos instalar o GDB com suporta à interface BDM.
Baixe o código fonte do GDB 6.1 (os outros patchs GDB estão errados, são para o insight na verdade):
ftp://ftp.gnu.org/gnu/gdb/gdb-6.1.tar.gz

Descompacte:
tar zxvf gdb-6.1.tar.gz

O diretório gdb-6.1 deverá esta no mesmo nível do m68k-bdm-1.3.0/gdb/patches para o patch se aplicado:
patch -p0 < m68k-bdm-1.3.0/gdb/patches/gdb-6.1-bdm-m68k.patch

Compile e execute o GDB:
./configure –target=m68k-bdm-elf
make
make install

Remova qualquer módulo que possa estar usando a porta paralela, para visualizar execute lsmod:

lp
parport
parport_pc

Para remove-lo use rmmod seguido do nome do módulo:

rmmod parport_pc
rmmod parport
rmmod lp

Insira o módulo bdm no kernel:
insmod /lib/modules/`uname -r`/extra/bdm.ko

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s