EBlink - Servidor GDB para microcontroladores ARM Cortex-M

No hay mucha información en la red sobre el servidor EBlink que apareció hace varios años. Esta publicación intentará solucionar la situación.


EBlink es compatible con la mayoría de los modelos de microcontroladores STM32 (series F0, F1, F2, F3, F4, F7, H7, L0, L1, L4, G0 y G4), así como con EFR32.


Es interesante porque admite scripts en el lenguaje C-like Squirrel que están involucrados en el proceso de flasheo y depuración de microcontroladores. Esto permite editar los scripts para agregar nuevos microcontroladores o cambiar el trabajo con los existentes sin interferir con el código fuente EBlink. Puedo suponer de esta manera que es posible agregar microcontroladores con un núcleo ARM Cormex-M de otros fabricantes, por ejemplo, la compañía Milander , pero esto no se ha verificado.


Se admiten depuradores ST-Link v2 y v3, así como CMSIS-DAP.


Los archivos ejecutables para Windows x86, Linux x86-64 y Raspberry PI están actualmente disponibles. El desarrollador promete publicar el código fuente en el futuro.


La última versión se puede descargar desde github .
La versión actual 2.0 se carga en el disco .


Silencioso sobre la interfaz de línea de comandos versión 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


nombre: CMSIS-DAP - Controlador de protocolo de depuración ARM


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

nombre: STlink - controlador de interfaz 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 

==== Objetivos


nombre: cortex-m


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

==== Cargador 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 

EBlink funcionó bien como depurador para el entorno EmBitz 1.11 .


Se encontraron archivos en la red que agregan la interfaz del depurador y todo lo que se necesita es extraer el archivo a una carpeta con el entorno EmBitz 1.11 instalado. El archivo contiene archivos EBlink y la interfaz del depurador y para usar el depurador debe seleccionar EBlink en la ventana de opciones de la interfaz de depuración (se abre desde el menú Debug> Interfaces) y se convertirá en el servidor GDB actual del objetivo activo del proyecto.


Spoiler


EBlink también se puede usar para cargar firmware de lanzamiento. Para hacer esto, agregue una herramienta al EmBitz ( Herramientas > Menú Configurar herramientas ... ) que llamaremos EBlink flash .


Spoiler


Línea de comando de aplicación:


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

En el registro IDE puede ver el funcionamiento de la herramienta: EBlink ha actualizado el microcontrolador STM32F103C8T6.


Del mismo modo, puede integrar EBlink con otros IDE, por ejemplo, CooCox, que no se ha desarrollado durante mucho tiempo, lo que permitirá trabajar con las series STM32H7, STM32G0 y STM32G4 recientemente aparecidas que no son compatibles con las versiones actuales de coco.


Todos los archivos mencionados en el artículo se cargaron en Yandex.Disk .

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


All Articles