Existe uma interface JTAG / BDM utilizável disponível no Raspberry Pi?
Qual depurador de hardware é necessário para depuração?
O Open OCD pode ser usado?
Existe uma interface JTAG / BDM utilizável disponível no Raspberry Pi?
Qual depurador de hardware é necessário para depuração?
O Open OCD pode ser usado?
Respostas:
A Revisão 2.0 do modelo B Raspberry Pi expôs os pinos JTAG.
Você pode encontrar muitas informações aqui . Infelizmente, o uso do JTAG no RPi não é direto. Para ser honesto, só porque é tão problemático, não me preocupei em fazê-lo funcionar. Aqui está o que eu sei, no entanto:
Nem todos os sinais JTAG estão facilmente disponíveis. Todos, exceto todos, estão no conector GPIO (não no conector P2 JTAG - é um VideoCore JTAG, não no ARM e no AFAIK, não é utilizável por pessoas fora da Broadcom). O pino adicional está no conector S5 (cabeçalho CSI), você provavelmente precisará soldá-lo. Aqui estão os pinos necessários (mais sobre isso no site dwelch67, você também pode encontrar informações sobre as funções de pinos alternativos do GPIO no raspberrypi wiki ):
ARM_VREF P1-1
ARM_TRST P1-15
ARM_TDO P1-18
ARM_TCK P1-22
ARM_TDI P1-7
ARM_TMS S5-11
ARM_GND P1-25
EDIT: Como o @Damian apontou, na revisão 2.0 do PCB, o sinal ARM_TMS ausente foi conectado ao pino 13 no P1, portanto a solda não seria mais necessária.
Agora, não é o único problema. Por padrão, todos esses pinos são configurados para serem pinos GPIO, não JTAG. Eles precisam ser reconfigurados no software e no AFAIK não há suporte para isso no carregador de inicialização do Foundation. Dwelch67 escreveu seu próprio gerenciador de inicialização (próximo estágio) que faz exatamente isso. Você pode baixá-lo no link fornecido na parte superior desta resposta.
Quanto ao hardware, qualquer hardware ARM11 JTAG deve estar OK. Como mencionado anteriormente, eu não testei pessoalmente, então não posso fazer nenhuma recomendação. E sim, o OpenOCD pode ser usado. Existe até um projeto pequeno (também feito por dwelch67) para construir hardware JTAG muito simples e barato, com base em placas baratas como o Launchpad . Veja seu repositório no github
Você também pode experimentar este conversor SN74LVC8T245 da TI http://www.ti.com/product/sn74lvc8t245