Alguém tentou depurar usando JTAG / BDM?

19

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?

Lars Pötter
fonte

Respostas:

8

A Revisão 2.0 do modelo B Raspberry Pi expôs os pinos JTAG.

Consulte http://www.raspberrypi.org/archives/1929

Damian Dixon
fonte
1
Portanto, com os pinos disponíveis, qual software / hardware é necessário para usar os pinos para depuração?
Lars Pötter
7

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

Krzysztof Adamski
fonte
Olá "Christofer" Obrigado por postar algumas informações. Seria ótimo se você pudesse expandir sua resposta. Possivelmente quais cabos são necessários - como conectá-los, uma imagem ou duas vale mais que mil palavras. Caso contrário, acho que vale a pena ser um comentário; Os usuários podem explorá-lo em seu próprio tempo. Bem-vindo ao Raspberry Pi SE :-) Witamy!
Piotr Kula
2
Eu adicionei mais algumas informações. Na verdade, é tudo o que posso dizer sobre esse assunto e pensei que uma pequena quantidade de informação é melhor que nada. E como é a única resposta, acredito que não há muitas outras informações sobre isso por aí.
Krzysztof Adamski