Convertendo ST-Link em um J-link

Neste artigo veremos como converter o gravador e debugger ST-Link da ST em um J-Link da SEGGER, e suas principais diferenças e como usá-los no System Workbench e Atollic (principais ferramentas de desenvolvimento da ST).

 

J-Link

 

O J-Link é uma ferramenta poderosa de gravação e debug da SEGGER. Diferente do ST-Link, ele possui um GDB Server integrado em seu hardware, permitindo a depuração do target via JTAG ou SWD mais rápida. A velocidade de depuração e gravação na flash e RAM do ST-Link pode chegar a 12,8 KBytes/s, enquanto o J-Link na sua versão Pro pode chegar a 3 MBytes/s.

 

O J-Link possui suporte para CPUs ARM 7/9/11, Cortex-M/R/A, Microchip PIC32, Renesas RX. Os probes de depuração do J-Link são suportados por todas as principais IDEs, incluindo o Eclipse, as IDEs baseadas no GDB e o SEGGER Embedded Studio.

 

Kits de desenvolvimento ST

 

A SEGGER e a ST, diferente do que se possa pensar, possuem algumas parcerias comerciais. O resultado de uma delas criou a possibilidade de converter o ST-Link que vem nos kits de desenvolvimento Nucleo e Discovery da ST em uma versão lite do J-Link.

 

Ao realizar essa conversão você não ganha somente uma melhoria na performance de debug, mas também ganha acesso ao leque de ferramentas da SEGGER:

  • Ozone;
  • J-Link Configurator;
  • J-Link GDB Server;
  • J-Link Remote Server;
  • J-Link Commander;
  • J-Scope;
  • SystemView (Versão Pro e paga);
  • RTT Viewer.

 

Para não fugir muito do tema, o uso e configuração de cada uma dessas ferramentas serão abordados em artigos futuros aqui no Embarcados.

 

Realizando a conversão

 

Nesta etapa você precisa usar uma máquina com o sistema operacional Windows, certifique-se que você tem os drivers da ST instalados em sua máquina. Caso não tenha, baixe-os neste link.

 

 

O windows reconheceu sua placa. Baixe o ST-Link Reflash aqui.

 

Ao executar o programa STLinkReflash.exe, você precisará aceitar os termos da SEGGER para realizar a conversão.

 

 

Após aceitar os termos, será exibido um menu com 4 opções. A opção 1 realiza a conversão de ST-Link para J-Link; a opção 2 atualiza o firmware do J-Link e a opção 3 realiza a conversão de J-Link para ST-Link. Selecione a opção 1 para realizar a conversão.

 

 

Para saber se a conversão foi realizada com sucesso, verifique se algum dispositivo J-Link foi detectado como mostra a figura abaixo.

 

 

Usando o J-Link no System Workbench

 

Ao instalar a IDE System Workbench o plugin de debug via J-Link não virá instalado por padrão. Para instalar o plugin, 4 passos precisam ser realizados.

 

Passo 1 - Baixar os drivers J-Link

 

Acesse esta página e realize o download dos drivers J-Link para o sistema operacional correspondente:

 

 

No meu caso estou usando o sistema operacional Ubuntu/Linux e farei o download do arquivo JLink_Linux_V634h_x86_64.deb.

 

Após instalar o pacote JLink_Linux_V634h_x86_64.deb, na pasta /opt será criado um diretório SEGGER com os driver do J-Link.

 

 

Passo 2 - Instalar o pluging GNU ARM C/C++ J-Link Debugging no Eclipse

 

Acesse o caminho abaixo para instalar o Plugin J-Link para o Eclipse.

help->Install New Software->Add

 

Adicione o repositório abaixo para baixar e instale o pacote GNU ARM C/C++ J-Link Debugging.

http://gnuarmeclipse.sourceforge.net/updates/

 

 

Passo 3 - Configurar o Eclipse para usar os drivers do J-Link

 

Acesse o caminho Window > Preferences e procure pelo menu de configuração SEGGER J-Link.

 

Configure como mostra a figura abaixo:

 

 

Obs: A pasta /opt/SEGGER/JLink é um link de atalho para a pasta /opt/SEGGER/JLink_V634h

 

Passo 4 - Configurar o GDB para usar o J-Link

 

Neste ponto você já precisa ter um projeto pronto para testarmos o debug via J-Link.

 

Acesse Debug Configurations e crie uma nova instância do objeto GDB SEGGER J-Link Debugging.

 

Nesta etapa, 3 rotinas precisam ser configuradas:

  • Em Executable é preciso informar o caminho do arquivo /opt/SEGGER/Jlink/JLinkGDBServer. Porém já mapeamos este arquivo no passo 3 e ele já virou uma variável de sistema do eclipse via ${jlink_path}/${jlink_gdbserver}
  • Em Device Name precisamos indicar o ID do microcontrolador que estamos usando. No meu caso estou usando uma placa Nucleo-F401RE que usa o microcontrolador STM32F401RE. OBS: É preciso lembrar que estamos usando uma versão Lite do J-Link, portanto ele só executa debug e gravação de firmwares de microcontroladores usados nos kits Núcleo e Discovery.
  • Em GDB Client Setup que será usado no nosso caso será utilizada a variável de sistema ${openstm32_compiler_path}/arm-none-eabi-gdb, que faz referência ao arquivo ~/Ac6/SystemWorkbench/plugins/fr.ac6.mcu.externaltools.arm-none.linux64_1.15.0.201708311556/tools/compiler/bin/arm-none-eabi-gdb.

 

 

A Figura abaixo mostra o resultado final e o J-Link sendo usado como ferramenta de debug.

 

 

Extra

 

Ainda no período de debug, caso queira ter mais informações, você pode acessar seu J-Link via browser no endereço localhost:19080. Nesta página são exibidas diversas informações como: consumo de energia do target, log, troca de mensagens via RTT, trace, breakpoints criados, status dos registradores da CPU, etc.

 

 

Usando o J-Link no Atollic

 

Aqui já não existem mais segredos ao instalar os drivers do J-Link no Atollic. É perguntado se você deseja instalar os pacotes de Debug do J-Link; fazendo isso ele já realiza todas as etapas mostradas acima. Tudo o que você precisa fazer é indicar qual ferramenta de debug você deseja usar como mostra a figura abaixo.

 

 

Conclusão

 

Neste artigo apresentamos a ferramenta debug J-Link e como podemos incorporá-la em nossos kits de desenvolvimento da ST.

 

Mostramos passo a passo como instalar e usá-la nas 2 principais IDEs de desenvolvimento da ST.

 

Talvez ao fazer esta conversão você não veja de imediato como o seu debug melhorou, isso vai depender do tamanho de sua aplicação e o tipo de Core ARM que você está usando. Eu confesso que só vi essa melhoria usando um Kit Discovery STM32F7. A melhoria de debug foi muito absurda.

 

Vantagens:

 

Um das grandes vantagens com certeza é o ganho de velocidade durante o período de debug.

 

Acesso aos softwares de desenvolvimento que ajudam a verificar a performance e desempenho de seu firmware. Essas ferramentas são disponibilizadas gratuitamente pela SEGGER, com o porém de você ter em mãos um J-Link original (Falaremos dessas ferramentas em artigos futuros).

 

Desvantagens:

 

As desvantagens são as limitações ao se usar um J-Link versão Lite, não podendo estender o debug a microcontroladores que não são usados nos kits de desenvolvimento da ST.

 

O preço desta ferramenta em comparação ao ST-Link acaba sendo uma desvantagem também. A versão PRO pode chegar perto de $ 1.000,00 (Mil dólares), porém existem versões Educational com custo perto dos $ 60,00 (sessenta dólares).

 

Extra:

 

A SEGGER possui parceria comercial com vários fabricantes de microcontroladores, entre os mais conhecidos aqui no Brasil estão NXP e a antiga Frescale.

 

Este artigo teve foco em como usar o J-Link nos kits de desenvolvimento da ST, porém existe a possibilidade de fazer o mesmo com o Kit de desenvolvimento de outros fabricantes. Para mais informações acesse o site da SEGGER e se informe.

 

Dúvidas:

 

Caso tenha ficado alguma duvida comente aqui embaixo! =)

 

Saiba mais

 

Primeiros passos com a Placa STM32F0 Discovery

GNU ARM Cross-toolchain – OpenOCD + GDB

Ambiente de desenvolvimento para LaunchPad Tiva C no Ubuntu

 

Referências

 

https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/
https://www.segger.com/products/debug-probes/j-link/models/other-j-links/opensda-sda-v2/

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons
Convertendo ST-Link em um J-link por Jorge Guzman. Esta obra está licenciado com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Jorge Guzman
Sou formado em engenharia da computação com pós-graduação em automação industrial e engenharia de software. Possuo experiência no desenvolvimento de hardware, firmware, distribuições Linux e software para sistemas embarcados. Sou adepto ao compartilhamento do conhecimento e totalmente contra a metodologia de desenvolvimento GHP (Go Horse Process) em projetos.

5
Deixe um comentário

avatar
 
4 Comment threads
1 Thread replies
5 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Jorge GuzmanWagner CaetanoLeandro SoaresMuriel CostaRicardo Noronha Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Wagner Caetano
Membro
caetanowagner83

Tenho uma dev board do nrf52832 e tem um j-link ob. Fiquei impressionado com a velocidade, é muito rápido.

Leandro Soares
Membro
LEANDRO VS

Muito legal. Mas eu tenho uma duvida. É possível, depois de fazer essa alteração, usar esse j-link no atmel studio?

Muriel Costa
Membro
Muriel Costa

Muito bommm e de grande ajuda! Valeu pela dica e parabéns pelo artigo Jorge Guzman

Ricardo Noronha
Visitante
Ricardo Noronha

Muito bom o post!