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 Esta obra está licenciada 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.

7
Deixe um comentário

avatar
 
5 Comment threads
2 Thread replies
5 Followers
 
Most reacted comment
Hottest comment thread
6 Comment authors
Andréa batisteJorge GuzmanWagner CaetanoLeandro SoaresMuriel Costa Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Andréa batiste
Visitante
Andréa batiste

Será que aqueles ST Link clones que compramos no Aliexpress aceita essa mudança de firmware??

Wagner Caetano
Visitante
Wagner

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

Leandro Soares
Visitante
Leandro Vilar Soares

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

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!