EBlink - Servidor GDB para microcontroladores ARM Cortex-M

Não há muita informação na rede sobre o servidor EBlink que apareceu há vários anos. Este post tentará corrigir a situação.


O EBlink suporta a maioria dos modelos de microcontroladores STM32 (séries F0, F1, F2, F3, F4, F7, H7, L0, L1, L1, L4, G0 e G4), além do EFR32.


É interessante, pois ele suporta scripts na linguagem do tipo C, esquilo, envolvidos no processo de piscar e depurar microcontroladores. Isso permite editar os scripts para adicionar novos microcontroladores ou alterar o trabalho com os existentes, sem interferir no código fonte do EBlink. Eu posso assumir dessa maneira que é possível adicionar microcontroladores com um núcleo ARM Cormex-M de outros fabricantes, por exemplo, a empresa Milander , mas isso não foi verificado.


Depuradores ST-Link v2 e v3 são suportados, bem como CMSIS-DAP.


Arquivos executáveis ​​para Windows x86, Linux x86-64 e Raspberry PI estão disponíveis no momento. O desenvolvedor promete publicar o código fonte no futuro.


A versão mais recente pode ser baixada no github .
A versão atual 2.0 é carregada no disco .


Silencioso sobre a interface da linha de comandos versão 2.0.

eblink - uso:


EBlink <options> -h, --help Print this help -g, --nogui No GUI message boxes -v <level>, --verbose <0..7> Specify level of verbose logging (default 4) -a [type], --animation [0..] Set the animation type (0=off, 1 = cursor, >1 = dot) -I <options>, --interf Select interface -T <options>, --target Select target(optional) -S <file>, --script <file> Load a device script file -D <def>, --define <def> Define script global variable "name=value" -F <options>, --flash <options> Run image flashing -G [options], --gdb <options> Launch GDB server --script and --interf are mandatory, normally combined with --flash or/and --gdb eg EBlink -I stlink -S stm32-auto -G EBlink -I stlink -S stm32-auto -G -D flashSize=1024 -D ramSize=16 EBlink -I stlink,dr,speed=3000 -S silabs-auto -F erase,verify,run,file=mytarget.elf EBlink -I cmsis-dap -T cortex-m,nu -S stm32-auto -G port=4242,nc,s -S myReset.scr 

==== Interfaces


nome: CMSIS-DAP - driver de protocolo de depuração do ARM


 Usage -I cmsis-dap[,options] <not yet implemented> 

nome: STlink - driver de interface STmicro V2 / 3


 Usage -I stlink[,options] dr : Disable reset at connection (hotplug) speed=nnn : Interface speed (default max possible) swd : use SWD (default) jtag : use Jtag device=<usb_bus>:<usb_addr> : Select probe explicit eg -I stlink,dr,speed=3000 

==== Metas


nome: córtex-m


  Usage -T cortex-m[,options] nu : Disable stack unwind at exception eg -T cortex-m,nu 

==== Carregador Flash


 Usage -F [options] erase : Chip erase the flash verify : Verify flash after upload run : Start image file=<file> : Load the file, <file>.hex = Intel HEX format <file>.srec = Motorola srec file format Default = ELF file format eg -F file=test.elf -F run,file=test.hex -F erase,verify,run,file=test.srec -F erase -F run Default (without erase) only modified sectors are (re)flashed. 

==== Servidor GDB


  Usage -G [options] s : Shutdown after disconnect nc : Don't use EBlink flash cache port=ppp : Select different TCP port, default 2331 address=xxxx : Select different listen address, default 0.0.0.0 eg -G s,nc 

O EBlink teve um bom desempenho como depurador para o ambiente EmBitz 1.11 .


Na rede, foram encontrados arquivos que adicionam a interface do depurador e tudo o que é necessário é extrair o arquivo morto para uma pasta com o ambiente EmBitz 1.11 instalado. O archive contém arquivos EBlink e a interface do depurador. Para usar o depurador, é necessário selecionar o EBlink na interface Selected na janela de opções da interface Debug (abre no menu Debug> Interfaces) e se tornará o servidor GDB atual do destino ativo do projeto.


Spoiler


O EBlink também pode ser usado para fazer upload de firmware de lançamento. Para fazer isso, adicione uma ferramenta ao EmBitz ( menu Ferramentas > Configurar ferramentas ... ) que chamaremos de EBlink flash .


Spoiler


Linha de comando do aplicativo:


 -I stlink -S stm32-auto -a -F verify,run,file="${PROJECT_DIR}${TARGET_OUTPUT_DIR}${TARGET_OUTPUT_BASENAME}.hex" 

No log do IDE, você pode ver a operação da ferramenta - o EBlink atualizou o microcontrolador STM32F103C8T6.


Da mesma forma, você pode integrar o EBlink a outros IDEs, por exemplo, o CooCox, que não é desenvolvido há muito tempo, o que permitirá trabalhar com as séries STM32H7, STM32G0 e STM32G4, recentemente exibidas, que não são suportadas pelas versões atuais do coco.


Todos os arquivos mencionados no artigo foram carregados no Yandex.Disk .

Source: https://habr.com/ru/post/pt485514/


All Articles