Manual BlackcatUSB
A: Introducción B: Requisitos de software C: Lista de dispositivos flash compatibles D: Instalación del controlador E: Disposición del hardware F: Utilizar el modo bootloader para cambiar AVR Firmware G: Uso del modo JTAG para la programación en Flash H: Uso del modo SPI para la programación en Flash I: Uso del modo NAND para el programador Flash J: Utilizar el modo SPI para programar placas base MSI K: Utilización del modo SPI para programar I2C EEPROM L: Utilizar el símbolo del sistema / modo de consola M: Primeros pasos con el motor de secuencias de comandos N: Sintaxis básica O: Tipos de datos P: Variables Q: Eventos / Funciones R: Declaraciones condicionales S: bucles / iteraciones T: Función de ejecución automática U: Lista de comandos de consola o secuencia de comandos V: Comandos de E / S de archivos W: Comandos de memoria X: Comandos GUI Y: Comandos específicos de JTAG Z: Comandos específicos SPI ZZ: Comandos varios El dispositivo FlashcatUSB es un versátil programador de memoria Flash multiprotocolo. Se trata de una herramienta de hardware rentable que se utiliza tanto por profesionales de la industria y aficionados. Mediante la utilización de un único diseño de microcontrolador USB, el hardware junto con el software y el firmware pueden permitir al dispositivo disposit ivo configurar su funcionamiento para cumplir con los protocolos requeridos de un TAP (punto de acceso de prueba) o bus de interfaz (como un periférico serie interfaz). Da do que el dispositivo utiliza una interfaz USB basada en hardware, puede realizar su función a un ritmo mucho más rápido que los puertos serie o paralelo tradicionales. Las características de la placa de hardware: USB 1.1, 2.0 y 3.0 compatible 32KB de memoria programable (4KB reservados para el cargador de arranque USB) 16 MHz procesador basado en RISC (Atmel ATmega AVR núcleo de 8 bits) Dos interruptores: uno para la aplicación y otro para el modo bootloader Salida de voltaje triple: 1.8v, 3.3v y 5.0v (Actual a 120ma) LED para indicar el estado actual de la aplicación Botón para reiniciar el dispositivo o para activar el cargador de arranque USB (compatible con DFU) Funciones soportadas actualmente actualmente para el modo JTAG:
Memoria flash compatible con CFI - Algoritmos Intel, AMD y SST admitidos Modos DMA y PrAcc Soportado para acceso a memoria de destino MIPS soportado (para EJTAG) Registro de instrucciones (IR) auto seccionado de 4 a 512 bits. Funciones soportadas actualmente actualmente para el modo SPI: Compatible con los modos 0, 1 y 2 Dispositivos de alta densidad compatibles: de 1 a 128 mbit. (Direccionamiento de 24 bits) Dispositivos de densidad ultra alta compatibles: 256 mbit a 1 Gbit (direccionamiento de 32 bits) Modo de alta velocidad (FOSC / 2) - Permite leer hasta 400Kbytes por segundo Capacidad de programar MCU a bordo Flash / NV Memoria Funciones soportadas actualmente actualmente para el modo SPI: Soporta todos los dispositivos de memoria I2C y TWI Dirección seleccionable (A0, A1, A2) Soporta velocidades de datos de hasta 400kHz REQUISITOS DE SOFTWARE Un ordenador con al menos un procesador de 1 GHz y 256 MB de memoria disponible y un puerto USB 1.1 / 2.0. USB 3.0 es compatible con el firmware JTAG / SPI / NAND, pero no con el cargador de arranque del dispositivo suministrado por el fabricante . Esto significa que puede que necesite cambiar el firmware del AVR utilizando un puerto USB 2.0 nativo . Sistemas operativos compatibles: Windows XP, Windows Vista, Windows 7, 8, 8.1 y 10. Soporta entornos de 32 bits y 64 bits. Microsoft .NET Framework 4.0: Descargar: http://www.microsoft.com/download/en/details.aspx?id=17851 Esta es sólo una lista parcial de los dispositivos que son compatibles, ya que el modo CFI puede configurar automáticamente automáticamente a cualquier dispositivo que se detecta, y en el modo SPI el e l usuario puede auto-configurar el dispositivo necesario para ser programado. CFI verificado dispositivos de flash compatibles: Spansion S29GL256M AMD 29LV320DT Intel TE28F320C3T Spansion S29GL128M AMD 29LV320MB Intel TE28F320C3B Spansion S29GL064M AMD 29LV320MT Intel TE28F640C3T Spansion S29GL064M AMD 29LV400BB Intel TE28F640C3B Spansion S29GL032M AMD 29LV800BB Intel 28F320J5 Spansion S70GL02G ATMEL AT49BV / LV16X Intel 28F640J5 Spansion S29GL01G ATMEL AT49BV / LV16XT Intel 28F320J3 Spansion S29GL512 HYHYNIX HY29F400TT Intel 28F640J3 Spansion S29GL256 HYHYNIX HY29LV1600T Intel 28F128J3 Spansion S29GL128 Intel 28F160B3 Samsung K8D1716UB AMD 28F400BT Intel 28F160B3 Samsung K8D1716UT AMD 29DL322GB Intel 28F800B3 Samsung K8D3216UB AMD 29DL322GT Intel 28F320B3 Samsung K8D3216UT AMD 29DL323GB Intel 28F320B3 ST M28W160CB AMD 29DL323GT Intel 28F640B3 ST M29D323DB AMD 29DL324GB Intel 28F640B3 FUJITSU 29DL323GB AMD 29DL324GT Intel TE28F800C3T FUJITSU 29DL323TE
Memoria flash compatible con CFI - Algoritmos Intel, AMD y SST admitidos Modos DMA y PrAcc Soportado para acceso a memoria de destino MIPS soportado (para EJTAG) Registro de instrucciones (IR) auto seccionado de 4 a 512 bits. Funciones soportadas actualmente actualmente para el modo SPI: Compatible con los modos 0, 1 y 2 Dispositivos de alta densidad compatibles: de 1 a 128 mbit. (Direccionamiento de 24 bits) Dispositivos de densidad ultra alta compatibles: 256 mbit a 1 Gbit (direccionamiento de 32 bits) Modo de alta velocidad (FOSC / 2) - Permite leer hasta 400Kbytes por segundo Capacidad de programar MCU a bordo Flash / NV Memoria Funciones soportadas actualmente actualmente para el modo SPI: Soporta todos los dispositivos de memoria I2C y TWI Dirección seleccionable (A0, A1, A2) Soporta velocidades de datos de hasta 400kHz REQUISITOS DE SOFTWARE Un ordenador con al menos un procesador de 1 GHz y 256 MB de memoria disponible y un puerto USB 1.1 / 2.0. USB 3.0 es compatible con el firmware JTAG / SPI / NAND, pero no con el cargador de arranque del dispositivo suministrado por el fabricante . Esto significa que puede que necesite cambiar el firmware del AVR utilizando un puerto USB 2.0 nativo . Sistemas operativos compatibles: Windows XP, Windows Vista, Windows 7, 8, 8.1 y 10. Soporta entornos de 32 bits y 64 bits. Microsoft .NET Framework 4.0: Descargar: http://www.microsoft.com/download/en/details.aspx?id=17851 Esta es sólo una lista parcial de los dispositivos que son compatibles, ya que el modo CFI puede configurar automáticamente automáticamente a cualquier dispositivo que se detecta, y en el modo SPI el e l usuario puede auto-configurar el dispositivo necesario para ser programado. CFI verificado dispositivos de flash compatibles: Spansion S29GL256M AMD 29LV320DT Intel TE28F320C3T Spansion S29GL128M AMD 29LV320MB Intel TE28F320C3B Spansion S29GL064M AMD 29LV320MT Intel TE28F640C3T Spansion S29GL064M AMD 29LV400BB Intel TE28F640C3B Spansion S29GL032M AMD 29LV800BB Intel 28F320J5 Spansion S70GL02G ATMEL AT49BV / LV16X Intel 28F640J5 Spansion S29GL01G ATMEL AT49BV / LV16XT Intel 28F320J3 Spansion S29GL512 HYHYNIX HY29F400TT Intel 28F640J3 Spansion S29GL256 HYHYNIX HY29LV1600T Intel 28F128J3 Spansion S29GL128 Intel 28F160B3 Samsung K8D1716UB AMD 28F400BT Intel 28F160B3 Samsung K8D1716UT AMD 29DL322GB Intel 28F800B3 Samsung K8D3216UB AMD 29DL322GT Intel 28F320B3 Samsung K8D3216UT AMD 29DL323GB Intel 28F320B3 ST M28W160CB AMD 29DL323GT Intel 28F640B3 ST M29D323DB AMD 29DL324GB Intel 28F640B3 FUJITSU 29DL323GB AMD 29DL324GT Intel TE28F800C3T FUJITSU 29DL323TE
AMD Intel 29LV160DB TE28F800C3B FUJITSU 29LV160B AMD Intel 29LV160DT TE28F160C3T FUJITSU 29LV160T AMD Intel 29LV320DB TE28F160C3B FUJITSU 29LV320BE Micron 28F160C34B MXIC 25FL0165A FUJITSU 29LV320TE Micron 28F160C34T MXIC 29LV800T FUJITSU 29LV800B Micron 28F322P3 MXIC 29LV800B TOSHIBA TC58FVT160B SHARP 28F320BJE MXIC 29LV161B TOSHIBA TC58FVB321 SHARP LH28F160BJHG MXIC 29LV161T TOSHIBA TC58FVT160 SHARP 28F160S3 MXIC 29LV320B TOSHIBA TC58FVT321 SHARP 28F320S3 MXIC 29LV320T SST 39VF1600 ST MT28W320 MXIC 29LV800BMC SST 39VF1601 ST 29W320DB ST M58LW064D SST 39VF3201 ST 29W320DT ST M29W800AB SST 39VF800 ST M29W160EB ST M29W160ET Dispositivos flash compatibles SPI verificados: Atmel AT25DF641 (64Mbit) Micron N25Q00A (1Gbit) MXIC MX25L4006 (4Mbit) Atmel AT25DF321S (32Mbit) Micron N25Q512 (512Mbit) MXIC MX25L20 (2Mbit) Atmel AT25DF321 (32Mbits) Micron N25Q256 (256Mbit) MXIC MX25L10 (1Mbit) Atmel AT25DF161 (16Mbit) Atmel AT25DF021 (16Mbit) Atmel AT25DF021 (32Mbit) Atmel AT25DF021 (32Mbit) Atmel AT25DF021 (32Mbit) Atmel AT25DF021 (64Mbit) Micron M25P128 (128 Mbit) Micrómetro M25P12 (128 Mbit) Micrómetro M25P16 (16Mbit) Micrómetro M25P16 (16Mbit) Micrómetro M25P16 (16Mbit) EON EN25Q16 (16Mbit) Atmel AT45DB641 (16Mbit) Atornillo AT45DB161 (16Mbit) Atornillo AT45DB161 (16Mbit) Atornillador AT45DB161 (16Mbit) Atornillo AT45DB321 (33Mbit) Atmel AT45DB081 (8Mbit) Atmel AT45DB021 (4Mbit) Atmel AT45DB021 (4Mbit) Atmel AT45DB021 (2Mbit) Atmel AT45DB021 (2Mbit) Atmel AT45DB021 (2Mbit ) Microm M25PX32 (64Mbit) Micros M25PX32 (16Mbit) Micros M25PX32 (16Mbit) Micros M25PE16 (16Mbit) SST 25VF064B (64Mbit) SST 25VF064B (32Mbit) SST 25VF032B (32Mbit) Micrófono S25FL129P (128Mbit) Micrófono M25PE40 (4Mbit) SST 25VF032 (32Mbit) Micrófono S25FL128P (128Mbit) Micrófono M25PE20 (2Mbit ) SST 25VF032B (32Mbit) Spansion S25FL08A (16Mbit) Spansion S25FL08A (16Mbit) Spansion S25FL128S (128Mbit) Spansion S25FL128S (128Mbit) Spansion S25FL08A (64Mbit) Windbond W25Q32 (32Mbit) SST 25VF080B (8Mbit) Spansion S25FL008A (8Mbit) Spansion S25FL008A (8Mbit) Spansion S25FL008A (8Mbit) Spansion S25FL128K (128Mbit) SST 25VF020A (2Mbit) Spansion S25FL064K (64Mbits) Windbond W25X32 (32Mbit) SST 25VF010A (1Mbit) Spansion S25FL032K (32Mbit) Windbond W25X16 (16Mbit) PMC PM25LV016B (16Mbit)
Spansion S25FL06K (4Mbit) Spansion S25FL06K (4Mbit) Spansion S25FL004K (4Mbit) Spansion S25FL004K (4Mbit) Spansion S25FL004K (4Mbit) Spansion S25FL004K (4Mbit) MXIC MX25L128 (128 Mbits) PMC PM25LV010 (1 Mbit) Spansion S25FL132K (32Mbit) MXIC MX25L640 (64Mbit) PMC PM25LV512 (512Kbit) Spansion S25FL116K (16Mbit) MXIC MX25L320 (32Mbit) 25VF064C PCT (64Mbit) Spansion S25FL216K (16Mbit) MXIC MX25L323 (32Mbit) PCT 26VF032 (32Mbit) Spansion S25FL208K (8Mbit) MXIC MX25L160 (16Mbit) PCT 25VF032B (32Mbit) Spansion S25FL204K (4 Mbits) MXIC MX25L80 (8Mbit) PCT 26VF016 (16Mbit) Spansion S25FL004A (4 Mbits) MXIC MX25L40 (4 Mbits) PCT 25VF016B (16Mbit) PCT 25VF080B (4Mbit) PCT 25VF040B (4Mbit) PCT 25VF010B (2Mbit) PCT 25VF010A (1Mbit) PCT 25VF512A (512Kbit) Amic A25L080M (8Mbit) ISUKLD040 (4Mbit) MCU de la ayuda con con la memoria incorporada programable vía SPI nórdico nRF24LE1 Altera EPCS1 Altera EPCS4 Altera EPCS16 Altera EPCS64 Altera EPCS128 de la ayuda MCU con el programable memoria de la tarjeta a través de JTAG de Xilinx XC2C32A Xilinx XC2C64A Xilinx XC2C128 Xilinx XC2C256 Xilinx XC2C384 Xilinx XC2C512 Xilinx XC9500XL Xilinx XC95288XL Xilinx XC95144XL Xilinx XC9572XL Xilinx XC9536XL
Si el flash no está en la lista anterior, póngase en contacto con nosotros por correo electrónico a :
[email protected] . Podemos agregar casi cualquier dispositivo de destello a petición. Lo hacemos frecuentemente para muchas empresas e individuos. Cuando conecta FlashcatUSB a su PC por primera vez, debe notar un mensaje emergente de "Nuevo hardware encontrado", dependiendo del sistema operativo que esté utilizando, es posible que deba instalar manualmente el controlador. Para ello: 1. Abra el comando de ejecución manteniendo pulsada la tecla Windows y, a continuación, pulse la tecla R ("Ejecutar"). 2. Escriba devmgmt.msc 3. Aparecerá ahora la ventana del Administrador de dispositivos. Busque el dispositivo recién conectado, normalmente en la categoría "Otros dispositivos". 4. Haga clic con el botón derecho en el dispositivo Desconocido y seleccione "Actualizar el software del controlador". 5. Se le presentará dos opciones, "Buscar automáticamente ..." y "Buscar en mi computadora ...". Seleccione la última para buscar el controlador. 6. Seleccione la carpeta "RC18 Release \ Drivers". Puede utilizar este controlador para todos los firmware de FlashcatUSB, incluidos SPI, JTAG, NAND y DFU. Dado que se crea un dispositivo USB diferente con cada firmware de AVR,
Definiciones de las etiquetas del diagrama: Estado - Este LED (azul) parpadea cuando el dispositivo está leyendo o escribiendo en la memoria. Este LED será sólido para indicar que la tarjeta se ha conectado correctamente al software de interfaz FlashcatUSB. Alimentación - Este LED (rojo) se vuelve sólido cuando el dispositivo se enciende y la aplicación defirmware incorporadaha comenzado. USB - Es el tipo USB B que necesita conectarse a un cable USB que luego se conecta a su PC. Restablecer - Este botón restablecerá la aplicación de firmware. Si el interruptor # 2 se ha desactivado, la placa se iniciará en modo DFU. Cambiar- Este conmutador tiene dos pines, el primero es específico de la aplicación y está destinado a ser utilizado en futuras actualizaciones de software. El segundo pin se utiliza para configurar el dispositivo en modo de aplicación o modo DFU. Selector de voltaje - Este interruptor controla la salida de voltaje. Si el interruptor está en la posición izquierda, la tarjeta operará y emitirá a 5v. Si el interruptor está en la posición correcta, la tarjeta funcionará y emitirá 3.3v. Puerto de E / S - Este es el puerto de 10 pines que está conectado a su dispositivo de destino o memoria Flash.
FlashcatUSB se entrega con el firmware más reciente de SPI instalado. Esto significa que fuera del embalaje, puede utilizar el dispositivo para leer y escribir en cualquier dispositivo SPI. Sin embargo, si desea utilizar un
protocolo diferente , como el modo JTAG o NAND, debe cambiar el firmware en el propio dispositivo. Puede cambiar el firmware del dispositivo por USB usando el modo de cargador de arranque incorporado. Cuando en el modo bootloader (también conocido como modo DFU), el software FlashcatUSB le permitirá reprogramar el dispositivo utilizando cualquier archivo HEX compatible con Atmel AVR. En este paquete de software, incluimos firmware SPI, firmware JTAG y archivos de firmware NAND ubicados en la carpeta "Firmware" del software. Para poner el dispositivo en modo Bootloader, simplemente coloque el interruptor # 2 de ON a OFF. Como se muestra en el siguiente diagrama:
Modo de aplicación Modo de
cargador de arranque Con el hardware en el modo de cargador de arranque, cada vez que se restablece el dispositivo (pulsando el botón RESET), FlashcatUSB se iniciará en el modo cargador de arranque. Con el software en ejecución, la pantalla principal mostrará ahora que el dispositivo está en el modo bootloader ("Actualización del Firmware del Dispositivo") y que está listo para ser reprogramado con el firmware del AVR.
Para cambiar el firmware del AVR, haga clic en "Cargar archivo", seleccione el archivo HEX del firmware, haga clic en "Programa" y, una vez completado, haga clic en el botón "Iniciar aplicación". Después de haber cambiado correctamente el firmware, Recomendamos que establezca el interruptor # 2 en ON, para evitar que el dispositivo se reinicie en el modo DFU.
Con la versión "JTAG" del firmware del AVR instalada, puede utilizar FlashcatUSB para interactuar con un procesador SoC (system-on-a-chip) sobre JTAG. Esto permite que el software se integre y se comunique directamente con dispositivos de memoria conectados, normalmente memoria (en
forma de DRAM) y almacenamiento en la forma de memoria Flash no volátil.
Pines PCB 2.x para JTAG La imagen de arriba muestra las salidas de pin del puerto de E / S de 10 pines y cómo debe conectarse al puerto de acceso de prueba (TAP) de su dispositivo de destino. FlashcatUSB sólo actuará como una herramienta de diagnóstico pasivo para el sistema de destino, por lo que el dispositivo tendrá que ser encendido por sí mismo. Nota: el pin TDO en FlashcatUSB se conecta al pin TDO en el puerto JTAG de destino y lo mismo para TDI, ya que no se intercambian como las etiquetas de conexión SPI. Tenga en cuenta que los pinouts para JTAG se han cambiado en PCB versión 2.x. Esto se debe a que el pin superior derecho es ahora una línea VCC dedicada y, por tanto, no se puede utilizar para un pin general de E / S como en versiones anteriores. Si tiene una versión anterior de PCB, el pinout heredado es:
Pines PCB 1.x para JTAG Con el firmware "SPI" instalado, puede utilizar el dispositivo como programador de alta velocidad para prácticamente todas las memorias Flash compatibles con SPI.
La imagen de arriba muestra las salidas de pin del puerto de E / S de 10 pines y cómo debe estar conectado al bus SPI del dispositivo de destino. A diferencia del modo JTAG, puede utilizar el pin VCC para alimentar el dispositivo de destino. Debe tomar nota de la potencia externa que necesita el chip y asegurarse de que tiene el voltaje seleccionado en la tarjeta FlashcatUSB. La mayoría de los chips SPI usan el ajuste de 3.3v. * Nota: las clavijas (RST) y (PROG) sólo se utilizan cuando se conecta a MCU con flash incorporado, como el dispositivo Nordic nRF24LE1.
El diagrama anterior es cómo debe conectar el puerto de 10 pines a un paquete SOIC-16 típico De un dispositivo Flash compatible con SPI.
El diagrama anterior es cómo debe conectar el puerto de 10 pines a un paquete SOIC-8 y DIP-8 típico de un dispositivo Flash compatible con SPI.
Opcionalmente, también puede adquirir tomas de inserción y clips en circuito para los paquetes de chips SPI más comunes . Embedded Computers lleva muchos de estos en stock.
Cuando se inicia FlashcatUSB con el dispositivo SPI conectado, el software debe detectar automáticamente el chip y cargar su configuración en consecuencia. Si se detecta el chip, pero no lo admite el software, puede utilizar la pestaña SPI Settings para especificar manualmente todas las configuraciones con los valores de la hoja de datos del chip.
Los chips de memoria no volátil de alta densidad (generalmente en los gigabits) vienen en un paquete paralelo (generalmente BGA) que están conectados a un bus común compartido (que está cableado para JTAG o SPI) y también se puede usar FlashcatUSB para programar esos Tipos de fichas. Para utilizar esta función, conecte el puerto de 10 pines en FlashcatUSB al bus SPI del dispositivo de destino.
Pin-out para el modo NAND
FlashcatUSB se puede utilizar para programar la memoria del BIOS de muchas diversas placas madre de una variedad de fabricantes. Algunos pueden requerir un clip SOIC, mientras que otros, como MSI, tienen un encabezado de pin a bordo. Primero localice el encabezado de clavija IDC en la placa base etiquetada JSPI1. Tenga en cuenta que esta pinheader se omite a menudo en el manual, por lo que tendrá que encontrarlo físicamente en la pizarra.
Observe que el GND está conectado a 2 pins en JSPI1, pin 7 y pin 8. VCC está conectado al pin 1 y al pin 2. El pin 9 (el pin izquierdo superior) no está conectado a nada.
Para programar un dispositivo EEPROM compatible con I2C o TWI, FlashcatUSB debe cargarse con el firmware AVR 4.01 o posterior. Tenga en cuenta que esta función sólo está disponible en PCB 2.x y no funcionará con placas PCB 1.x anteriores.
La conexión de cableado sólo utiliza 4 pines del puerto FlashcatUSB I / O. Cuando se conecta a un dispositivo EEPROM, las líneas SDA y SCL también deben tener una resistencia que se conecte a VCC. Recomendamos usar valores de 4.7K, aunque cualquier resistencia de 4K a 10K debe ser adecuada. Si está utilizando el adaptador SPI DIP (revisión 2), no necesita resistencias, ya que el adapt ador ya las contiene.
Con el dispositivo conectado correctamente, ejecute el software y, en el menú Configuración, seleccione 'I2C
Modo EEPROM ". A continuación, haga clic en "Detectar" en el menú "Principal". Aparecerá una nueva pestaña que le permitirá leer y escribir en la EEPROM.
FlashcatUSB también se puede operar desde el indicador de comandos de la ventana. Esto le permitirá crear archivos por lotes que son útiles para entornos de producción. Para empezar, abra una ventana de símbolo del sistema, vaya a la carpeta donde está FlashcatUSB.exe y escriba: FlashcatUSB.exe -help Esto mostrará una lista de comandos que puede utilizar. Para utilizar esta función, llame a FlashcatUSB.exe y especifique el modo que desea realizar. Esto está limitado a leer, escribir datos o ejecutar un archivo de script. A continuación, se agregan parámetros adicionales para especificar determinados ajustes. Por ejemplo: FlashcatUSB.exe -read -file flash.bin Lea todos los datos de la memoria flash y guárdelo en flash.bin (en el mismo directorio en el que está FlashcatUSB.exe). También se puede usar FlashcatUSB múltiple en una sola máquina. Primero ejecute el comando: FlashcatUSB.exe -listpaths Esto mostrará una ventana similar a ésta: En este ejemplo, un dispositivo FlashcatUSB está
conectado a USB \ VID_16C0 & PID_05DE \ 6 & 2A68B436 & 0 & 4 Ahora puede especificar que en la línea de comandos usando el parámetro -PATH, Como: FlashcatUSB.exe -read -file out.bin path "USB \ VID_16C0 & PID_05DE \ 6 & 2A68B436 & 0 & 4" Nota: use comillas para encapsular la cadena de ruta de acceso.
Un archivo de script es sólo un documento de texto sin formato. Puede abrir y editar uno mediante el Bloc de notas. El contenido de un archivo de script se compone de comandos, etiquetas, eventos y condition / loops. Cuando se ejecuta un archivo de script, se ejecutará cualquier línea que no esté en un bloque de eventos. El propósito de una secuencia de comandos es realizar operaciones más complejas que de otra manera no se pueden realizar utilizando la GUI estándar. Los archivos de secuencias de comandos también son ideales para entornos de producción. Sintaxis básica Variables de datos Variables Eventos / Funciones Declaraciones condicionales (IF ... ELSE ... ENDIF) Loops / iteraciones (FOR ... ENDFOR) AUTORUN Función Sintaxis básica Las secuencias de comandos FlashcatUSB utilizan una sintaxis muy familiar, de estilo VB. Cada línea contiene una instrucción que puede ser un comando a ejecutar, una condición (IF, etc.), una instrucción de control de flujo o el inicio de un evento (una función o subprocedimiento). Para poner comentarios en el archivo de script (declaraciones que no tienen ningún efecto), utilice el símbolo #. Los caracteres que procedan no serán evaluados por el motor de secuencias de comandos.
Las declaraciones básicas de control de flujo son: LABEL, GOTO, EXIT, RETURN. La instrucción GOTO se puede utilizar para controlar qué línea ejecutar. Generalmente, el
software comienza a ejecutarse en la parte superior del archivo y prosigue hacia abajo. Para cambiar la ubicación, puede utilizar la instrucción GOTO seguida de una ubicación que se indica mediante una etiqueta. Una etiqueta es un Palabra especificada por el usuario que termina con dos puntos. Por ejemplo: Var1 = 10 GOTO SKIP_MINVAL Var1 = Var1 - 5 SKIP_MINVAL: msgbox (Var1) # Var1 = 10 A medida que el script se ejecuta, cuando alcanza la palabra clave GOTO, el motor buscará el documento (hacia delante y hacia atrás), para Una etiqueta que contiene el nombre "SKIP_MINVAL". Una vez encontrado, la ejecución comenzará allí. Debido a que el motor de secuencias de comandos buscará en ambos sentidos, también puede usar palabras clave GOTO para crear bucles. La palabra clave EXIT se puede utilizar para salir de un evento o función, o para salir de un segmento de condición (por ejemplo, IF o bloque FOR). El uso de la sintaxis es EXIT o EXIT
o EXIT GUIÓN. Si ejecuta script de salida, independientemente del evento en el que s e encuentre, el script completo dejará de ejecutarse. Por ejemplo: If (VarInt = 10) # Esto hace una comparación para ver si VarInt es 10 SomeFunction () Var2 = 0x40 exit Var3 = 0x40 # Esto no se ejecutará Endif Cuando el script llegue al comando exit, entonces saldrá De esta instrucción IF y proceda a ejecutar la línea siguiente después de la instrucción EndIf. Tipos de datos Existen 4 tipos de datos principales con los que puede trabajar. Estos son: Bool - es un valor de TRUE o FALSE String - es un valor de caracteres legibles en ASCII, especificado mediante comillas. Entero- es un número de 32 bits (sin signo). Los valores hexadecimales se convierten automáticamente. Data - es una matriz de bytes. También se puede especificar con 0x80, 0x81, 0x82, etc. Variables
Una variable es un nombre al que asigna un objeto. Puede asignar una cadena, datos, enteros o valores booleanos. Por ejemplo: ThisVar = "Hello World" Ahora creará una variable llamada ThisVar cuyo valor de cadena es "Hello World". Para crear una matriz de datos utilice ";" Después de cada byte: MyData = 0x01; 0x02; 0x03; 0x04; 0x05; 0x06 Si asigna una variable 4 o menos bytes, la variable se convertirá automáticamente en un tipo entero en lugar de un tipo de datos. Para crear una variable booleana: DoVar = True Y para crear un entero: VarInt = 470 Las variables enteras se pueden sumar o restar. Las variables String y Data se pueden combinar. VarInt = 5 VarInt + = 10 msgbox (VarInt) #this producirá el resultado de 15 Para cadenas y datos, utilice el operando "&", por ejemplo: VarStr = "Hello" VarStr = VarStr & "World! Msgbox (VarStr) # Producirá "¡Hola Mundo!" MyData = 0x02; 0x02; 0x03; 0x04; 0x05 MyData = MyData & 0x06; 0x07 msgbox (hex (MyData)) # Producirá "0x01020304050607" El comando hexadecimal convierte la matriz de datos en una cadena hexadecimal que se puede imprimir. Eventos / Funciones Un Evento es similar a una función que usted puede estar familiarizado. Puedes tratarlo como una "función", Puede crear eventos y luego llamarlos como funciones e incluso devolver un valor. También se pueden asignar eventos a elementos GUI, como botones. Por lo tanto, cuando hace clic en un botón creado, el motor ejecutará los comandos que están en el evento que asignó a ese botón.
Los eventos son muy útiles. Puede pasar variables a eventos y recuperar valores de eventos. Cuando pasa una variable o valor a un evento, el evento creará una nueva variable para cada argumento pasado. Estas nuevas variables se denominarán $ 1, $ 2, $ 3 y así sucesivamente para cada variable pasada. Para crear un evento o una función, utilice la palabra clave CreateEvent seguida por un parámetro que especifique el nombre del evento / función. Y para especificar el final del Evento, utilice el EndEvent. EchoToMsgBox ("Hello World") CreateEvent (EchoToMsgBox) msgbox ($ 1)
EndEvent Este ejemplo de código abre un msgbox que dice "Hello World" cuando se ejecuta. También puede utilizar eventos como funciones para analizar la información y usar el evento como si fuera una función de comando . Por ejemplo: msgbox (CombineString) ("Hello", "World")) CreateEvent (CombineString) StrVar = $ 1 & $ 2 Devolver StrVar EndEvent La salida de esto producirá un msgbox que dice "Hello World".
Sintaxis básica Los scripts FlashcatUSB utilizan una sintaxis muy familiar, de estilo VB. Cada línea contiene una instrucción que puede ser un comando a ejecutar, una condición (IF, etc.), una instrucción de control de flujo o el inicio de un evento (una función o subprocedimiento). Para poner comentarios en el archivo de script (declaraciones que no tienen ningún efecto), utilice el símbolo #. Los caracteres que procedan no serán evaluados por el motor de secuencias de comandos.
Las declaraciones básicas de control de flujo son: LABEL, GOTO, EXIT, RETURN. La instrucción GOTO se puede utilizar para controlar qué línea ejecutar. Generalmente, el software comienza a ejecutarse en la parte superior del archivo y prosigue hacia abajo. Para cambiar la ubicación, puede utilizar La instrucción GOTO seguido de una ubicación que se indica mediante el uso de una etiqueta. Una etiqueta es una palabra especificada por el usuario que termina con dos puntos. Por ejemplo: Var1 = 10 GOTO SKIP_MINVAL Var1 = Var1 - 5 SKIP_MINVAL: msgbox (Var1) # Var1 = 10 A medida que el script se ejecuta, cuando alcanza la palabra clave GOTO, el motor buscará el documento (hacia delante y hacia atrás), para Una etiqueta que contiene el nombre "SKIP_MINVAL". Una vez encontrado, la ejecución comenzará allí. Debido a que el motor de secuencias de comandos buscará en ambos sentidos, también puede usar palabras clave GOTO para crear bucles.
La palabra clave EXIT se puede utilizar para dejar un evento o una función, o para salir de una condición Segmento (por ejemplo, bloque IF o FOR). El uso de la sintaxis es EXIT o EXIT o EXIT SCRIPT. Si ejecuta script de salida, independientemente del evento en el que se e ncuentre, el script completo dejará de ejecutarse. Por ejemplo: If (VarInt = 10) # Esto hace una comparación para ver si VarInt es 10 SomeFunction () Var2 = 0x40 exit Var3 = 0x40 # Esto no se ejecutará Endif Cuando el script llegue al comando exit, entonces saldrá De esta instrucción IF y proceda a ejecutar la línea siguiente después de la instrucción EndIf. Tipos de datos Existen 4 tipos de datos principales con los que puede trabajar. Estos son: Bool - es un valor de TRUE o FALSE String - es un valor de caracteres legibles en ASCII, especificado mediante comillas. Entero - es un número de 32 bits (sin signo). Los valores hexadecimales se convierten automáticamente. Data - es una matriz de bytes. También se puede especificar con 0x80, 0x81, 0x82, etc.
Variables Una variable es un nombre al que asigna un objeto. Puede asignar una cadena, datos, enteros o valores booleanos. Por ejemplo: ThisVar = "Hello World" Ahora creará una variable llamada ThisVar cuyo valor de cadena es "Hello World". Para crear una matriz de datos utilice ";" Después de cada byte: MyData = 0x01; 0x02; 0x03; 0x04; 0x05; 0x06 Si asigna una variable 4 o menos bytes, la variable se convertirá automáticamente en un tipo entero en lugar de un tipo de datos. Para crear una variable booleana: DoVar = True Y para crear un entero: VarInt = 470 Las variables enteras pueden añadirse o restarse. Las variables String y Data se pueden combinar. VarInt = 5 VarInt + = 10 Msgbox (VarInt) #this producirá el resultado de 15 Para cadenas y datos, utilice el operando "&", por ejemplo: VarStr = "Hello" VarStr = VarStr & "World!" Msgbox (VarStr) # Producirá "¡Hola Mundo!"
MyData = 0x02; 0x02; 0x03; 0x04; 0x05 MyData = MyData & 0x06; 0x07 msgbox (hex (MyData)) # Producirá "0x01020304050607" El comando hexadecimal convierte la matriz de datos en una cadena hexadecimal que se puede imprimir. Eventos / Funciones Un Evento es similar a una función que usted puede estar familiarizado. Puedes tratarlo como una "función", puedes crear eventos y luego llamarlos como funciones e incluso devolver un valor. También se pueden asignar eventos a elementos GUI, como botones. Por lo tanto, cuando hace clic en un botón creado, el motor ejecutará los comandos que están en el evento que asignó a ese botón.
Los eventos son muy útiles. Puede pasar variables a eventos y recuperar valores de eventos. Cuando pasa una variable o valor a un evento, el evento creará una nueva variable para cada argumento pasado. Estas nuevas variables se denominarán $ 1, $ 2, $ 3 y así sucesivamente para cada variable pasada. Para crear un evento o una función, utilice la palabra clave CreateEvent seguida por un parámetro que especifique el nombre del evento / función. Y para especificar el final del evento, utilice la palabra clave EndEvent. EchoToMsgBox ("Hello World") CreateEvent (EchoToMsgBox) msgbox ($ 1) EndEvent Este ejemplo de código abre un msgbox que dice "Hello World" cuando se ejecuta. También puede utilizar eventos como funciones para analizar la información y usar el evento como si fuera una función de comando . Por ejemplo: msgbox (CombineString) ("Hello", "World")) CreateEvent (CombineString) StrVar = $ 1 & $ 2 Devolver StrVar EndEvent La salida de esto producirá un msgbox que dice "Hello World".
Declaraciones condicionales Para ejecutar código basado en una condición, puede utilizar la palabra clave IF seguida de una instrucción que puede ser evaluada como verdadera o falsa. Similar a la "IF, ELSE, ENDIF" de otros lenguajes de programación. Si (5> 2) msgbox ("Esto se ejecutará") El otro
msgbox ("Esto no") EndIf La sentencia de condición (5> 2) es evaluada y se encuentra que es verdadera. También puede utilizar Eventos que devuelven TRUE o FALSE. Si usted precede a la declaración de condición con la palabra clave "no", lo que la declaración se evalúa en, ocurrirá lo contrario. También puede utilizar el "!" Para el mismo efecto. Si no es así (GetValue ()> 10) msgbox (" EndIf CreateEvent (GetValue) retVar = 5 return RetVar EndEvent En el ejemplo anterior, puede crear una función llamada GetValue, especificándola utilizando la palabra clave CreateEvent. Dentro del bloque de eventos, puede ejecutar comandos u otra sintaxis y, a continuación, utilizar la palabra clave Return para devolver un valor a la línea llamante, en este caso, la instrucción IF que compara el valor devuelto para ser mayor que 10.
Loops / Iterations Para realizar tareas repetitivas, puede utilizar un bucle FOR. Esto se especifica mediante la palabra clave FOR seguida de parámetros que especifican el nombre de una variable, el valor inicial y el valor final. Para (i = 0 a 9) msgbox ("Estamos en el número de bucle:" & i) EndFor
Función AUTORUN Si desea que el software cargue automáticamente una secuencia de comandos cuando se conecta a una tarjeta JTAG o dispositivo SPI, puede utilizar esta función. Dado que algunos dispositivos comparten el mismo código de ID de la CPU y es posible que desee tener diferentes scripts de dispositivo, puede utilizar la función de ejecución automática. Para ello, edite o cree el archivo Autorun.ini ubicado en la carpeta Scripts. Cada línea (no comentada) representa un script de dispositivo. El formato es: : <SCRIPT_NAME>: Agregue tantas secuencias de comandos como necesite y cuando ejecute el software, cuando se conecte a un dispositivo cargará todos los scripts que coincidan con el ID de la CPU o JEDEC ID. Para cambiar guiones, Simplemente cambie el elemento del menú en la lista desplegable. Para su comodidad, el último
script ejecutado será recordado para uso futuro.
LISTA DE COMANDOS DE CONSOLA O DE ESCRITURA La siguiente es una lista completa de comandos que están incorporados en el motor de script FlashcatUSB. Puede ejecutarlos en un archivo de secuencia de comandos o desde la ventana de consola del software. Algunos comandos enviarán información a la consola, otros no. Observe también que para los comandos de memoria, si ha iniciado más de un dispositivo de memoria , puede acceder a cada dispositivo utilizando parámetros con un índice, por ejemplo, la memoria (0) .read realizará la operación de lectura desde el primer dispositivo de memoria; La memoria (1) .read hará lo mismo desde el segundo dispositivo, y así sucesivamente. Comandos de E / S de archivos (funciones para leer / escribir en el disco duro) Comandos de memoria(Funciones para leer / escribir en la memoria SPI / CFI) Comandos GUI (para crear pestañas, botones y otros elementos GUI) Comandos específicos JTAG (comandos que se utilizarán sólo en el modo JTAG) Comandos SPI específicos (comandos que se utilizarán sólo en SPI) Comandos varios (Todos los demás comandos / funciones soportados)
Comando: OpenFile Parámetros: String, String (opcional) Devuelve: Datos Descripción: Solicita al usuario un archivo y luego lee el archivo desde el disco y devuelve una variable de datos . El primer parámetro es el título de la ventana y el segundo opcional es el filtro de archivo estándar a utilizar. Ejemplos: MyData = OpenFile ("Elegir archivo", "Archivos de firmware (* .bin) | * .bin") Comando: SaveFile Parámetros: Data, String, String (opcional) Sintaxis: Variable de datos para escribir, Nombre Descripción: Solicita al usuario que guarde una variable de datos en el disco duro. Ejemplos: SaveFile (MyData, "¿Dónde guardar?", "Fileread.bin") Comando: ReadFile Parámetros: String Devuelve: Datos Descripción: Lee un archivo desde el disco duro. El primer parámetro es el nombre del archivo (en relación con la ubicación de FlashcatUSB.exe). Ejemplos: MyData = ReadFile ("Scripts \ EEPROM.bin")
Comando: WriteFile Parámetros: Data, String Descripción: Escribe una matriz de datos en el disco duro. El primer parámetro es la variable de matriz de datos , el segundo es la ubicación en relación con FlashcatUSB.exe donde desea guardar el archivo. Este comando no solicita al usuario. Ejemplos: WriteFile (MyData, "Scripts \ EEPROM.bin")
Comandos de memoria Comando: Memory.Write Parámetros: Datos, Integer, Integer opcional Sintaxis: Objeto de datos para escribir, desplazamiento de dirección de flash, longitud opcional Descripción: Escribe una variable de datos en el dispositivo de flash. Funciona para los dispositivos flash CFI y SPI , pero tenga en cuenta que debe haber iniciado el flash. Ejemplos: Memory.Write (dataVar, 0,256) #Writes Comando: Memory.Read Parámetros: Entero, Entero, Opcional Bool Devuelve: Datos Descripción: Lee los datos del dispositivo flash. Funciona para los dispositivos flash tipo CFI y SPI , pero tenga en cuenta que debe haber iniciado el flash. Ejemplos: dataVar = Memory.Read (0,512) #Reads 512 bytes Comando: Memory.ReadString Parámetros: Entero Página 22 de 32 Devuelve: Cadena Descripción: Lee una cadena de la ubicación especificada en el dispositivo flash. Devuelve nada si no se encuentra el error o la cadena. Ejemplos: dataStr = Memory.ReadString (0x5000) Comando: Memory.ReadVerify Parámetros: Entero, Entero Devuelve: Datos Descripción: Similar a ReadFlash (), esta función lo hace dos veces y compara el resultado y si es necesario verifica todos los datos para asegurar Que los datos leídos son 100% exactos. No devuelve nada si la verificación falla. Esta función es preferible a ReadFlash, donde la integridad de los datos es vital. Ejemplos: dataVar = Memory.ReadVerify (0,512) #Reads 512 bytes Comando: Memory.GetSectorCount Devuelve: Entero
Descripción: Borra el sector de flash especificado Ejemplos: sectors = Memory.GetSectorCount () Comando: Memory.EraseSector Parámetros: Entero Devuelve: Nada Descripción: Borra el sector de flash especificado Ejemplos: Memory.EraseSector (0) Comando: Memory.EraseSection Parámetros: Integer, Integer Devuelve: Nothing Descripción: Borra una sección de la memoria flash, empezando por la dirección (el primer parámetro) y el número de bytes (segundo parámetro). Ejemplos: Memory.EraseSector (0x10000,0x8000) Comando: Memory.EraseBulk Parámetros: Ninguno Devuelve: Nada Descripción: Borra la memoria flash completa Ejemplos: Memory.EraseBulk () Command: Memory.GetSectorSize Parámetros: Entero Devuelve: Entero Descripción: Devuelve el tamaño Ejemplos: dataInt = Memory.GetSectorSize (0) Comando: Memory.Backup Parámetros Ninguno Descripción: Anteriormente conocido como "Dump", esto lee todos los datos de flash (dos veces) y luego le pide al usuario que guarde el archivo en disco. Útil para hacer una copia de seguridad de flash que tiene integridad de datos. Ejemplos: Memory.Backup () Comando: Memory.Exist Parámetros: Ninguno Devuelve: Bool Descripción: Devuelve true si se ha creado un dispositivo de memoria en un índice dado. Ejemplos: Memoria (2) .Exist () Comando: Memory.WriteWord Parámetros: Integer, Integer Descripción: Escribe un entero (todos los 32 bits) en una dirección específica del dispositivo de memoria. Ejemplos: Memoria (2) .WriteWord (0x80010000,0x32)
Comandos GUI Comando: writeline Parámetros: String Descripción: Muestra un mensaje en la consola. Ejemplos: writeline ("esto es sólo una prueba") Comando: msgbox Parámetros: String Descripción: Muestra un mensaje al usuario mediante una ventana emergente. Ejemplos: msgbox ("Hello World!") Comando: status Parámetros: String Descripción: Establece el texto de estado (la barra inferior del software). Ejemplos: status ("script is complete") Comando: Tab.Create Parámetros: String Devuelve: Entero Descripción: Crea una pestaña específica de la aplicación. Devuelve el índice de la ficha. Ejemplos: Tab.Create ("Mi dispositivo") Comando: Tab. Parámetros: String, Integer, Integer, Integer, Integer Sintaxis: Nombre del grupo, (eje X), (eje Y), Longitud, Altura Descripción: Crea un cuadro de grupo en la pestaña. Ejemplos: Tab.AddGroup ("Feature", 10,10,420,140) Comando: Tab.AddBox Parámetros: String, String, Integer, Integer Descripción: Crea un cuadro de entrada en la pestaña. Ejemplos: Tab.AddBox ("BXNAME", "texto predeterminado", 30,110) Comando: Tab.AddText Parámetros: String, String, Integer, Integer Descripción: Crea una etiqueta de texto en la pestaña. Ejemplos: Tab.AddBox ("txtName", "Qué decir", 30,110) Comando: Tab.AddImage Parámetros: String, String, Integer, Integer Ejemplos: Tab.AddImage ("ImgName", "logo.gif", 20,20) Comando: Tab.AddButton
Parámetros: Event, String, Integer Descripción: Agrega una imagen a la pestaña del archivo especificado (en la carpeta de scripts) , Entero Descripción: Agrega un botón a su pestaña. El evento especificado se llama cuando el usuario hace clic en el botón. Ejemplos: Tab.AddButton (HelloWorld, "Click Me!", 20,20) Comando: Tab.AddProgress Parámetros: Integer, Integer, Integer Descripción: Agrega una barra de progreso a su formulario. Esta barra se actualizará automáticamente a través de las funciones internas que usted llama (seleccionadas que pueden tardar en procesarse). Los parámetros son el eje x, el eje y y el ancho de la barra. Ejemplos: Tab.AddProgress (20,92,404) Comando: Tab.Remove Parámetros: String Descripción: Elimina cualquier objeto previamente agregado de tu pestaña. Ejemplos: Tab.Remove ( "ImgName") Comando: Tab.SetText Parámetros: String, String Descripción: Cambia el texto de cualquier objeto previamente creados ejemplos: Tab.SetText ( "txtName", "Jigga Jigga!") Comando: Tab. ButtonDisable Parámetros: String Descripción: Deshabilita un botón para que e l usuario no pueda hacer clic en él y ejecutar el evento. Ejemplos: Tab.ButtonDisable ("btName") Comando: Tab.ButtonEnable Parámetros: String Descripción: Habilita el botón (si lo tenía deshabilitado) Ejemplos: Tab.ButtonEnable ("
Comandos específicos de JTAG Comando: SetParam Parámetros: Integer, Integer Sintaxis: Setting, Value Descripción: Establece un parámetro de dispositivo en la placa (firmware controlado). Los retrasos se establecen en milisegundos y es la cantidad de tiempo que el AVR debe esperar entre leer o escribir instrucciones. El objetivo principal de este comando es afinar el rendimiento; Cuanto más rápido el dispositivo funcione, mayor será la tasa de error. Esto también puede afectar diferentes dispositivos de destino de manera diferente.
Ajustes: 1: Intel retardo de destello 2: AMD flash retardo de 3: Memoria leer retardo Ejemplos: SetParam (1, 30) #Sets el retraso de flash de Intel a 30 ms de comando: Ejctrl Parámetros: Entero Devuelve: Entero Descripción: Envía un mensaje de control JTAG al dispositivo de destino. Estos tipos de comandos son muy dependientes del dispositivo de destino. Esto se puede utilizar para detener (0x10000) o iniciar (0x0) el procesador de destino. Se devuelve el resultado del comando. Ejemplos: Ejctrl (0x10000) #Espera el procesador de destino Comando: FixFlash Parámetros: Ninguno Descripción: Intenta reprogramar el cargador de arranque de un dispositivo a ciegas (sin verificación, sin identificación de dispositivo de comprobación, etc.). Esto a veces tiene éxito al restaurar un dispositivo que no arranca correctamente. Sólo se admite en modo JTAG. Ejemplos: FixFlash () Comando: JTAG.MemoryAddress Parámetros: Integer Descripción: Inicializa el controlador de memoria dinámi ca y establece la dirección de memoria base. Ejemplos: JTAG.MemoryAddress (0x80000000) Comando: JTAG.MemoryType Parámetros: String Descripción: Establece el tipo de dispositivo de la memoria. Esto puede ser "RAM", "CFI" o "SPI". Nota: El modo SPI sobre JTAG aún no es compatible. Ejemplos: JTAG.MemoryType ("CFI") Comando: JTAG.MemorySize Parámetros: Integer Descripción: Establece el tamaño de la memoria (en bytes) de la memoria dinámica Ejemplos: JTAG.MemorySize (0x800000) Comando: JTAG.MemoryInit Parámetros: Ninguno Descripción: Inicializará y conectará la interfaz FlashcatUSB a la memoria interfaz. Es posible que deba especificar la dirección y el tamaño antes de llamar a esta función. Si tiene éxito, la GUI agregará la pestaña "Memoria". Este comando también devuelve el índice único del dispositivo creado.
Ejemplos: MemIndex = JTAG.MemoryInit () Comando: JTAG.FlashInit Parámetros: Ninguno Descripción: Se conectará al flash CFI compatible en el controlador de memoria para permitir la lectura y escritura. Esto creará la pestaña "Flash" en la GUI. Debe configurar FlashBase antes. Ejemplos: JTAG.FlashInit () Comando: JTAG.FlashFind Parámetros: Ninguno Descripción : Explorará todo el rango de direcciones de memoria para un flash compatible con CFI. Ejemplos: JTAG.FlashFind () Comando: JTAG.BigEndian Parámetros: Ninguno Descripción: Establece el endian para los dispositivos de memoria JTAG a grandes. Ejemplos: JTAG.BigEndian () Comando: JTAG.LittleEndian Parámetros: Ninguno Descripción: Establece el endian para los dispositivos de memoria JTAG a poco. Ejemplos: JTAG.LittleEndian () Comando: JTAG.Debug Parámetros: Bool (verdadero o Falso) Descripción: escribe los datos JTAG registran con la ban dera estándar para poner el dispositivo de destino en el modo de depuración: (PRACC | Proben | SETDEV | JTAGBRK) Ejemplos : JTAG.Debug (true) #Will enviar el comando JTAG debug Comando: JTAG.Reset Sintaxis: Descripción: Escribe el registro de datos JTAG con el indicador estándar para emitir un procesador Reiniciar. Este comando puede tener resultados diferentes dependiendo de la parte del procesador particular : (PRRST | PERRST) Ejemplos: JTAG.Reset #Will enviar un comando de reinicio JTAG Comando: JTAG.RunSVF Parámetros: Data (byte array) Descripción: Este comando ejecutará un comando " Serial Vactor Format "y procese y escriba todos los comandos a un dispositivo JTAG conectado. Esto puede ser utilizado para programar Xilinx CPLD por ejemplo.
Ejemplos: JTAG.RunSVF (DataVar) # Ejecuta un archivo * .SVF Comando: JTAG.RunXSVF Parámetros: Data (matriz de bytes) Descripción: Este comando ejecutará un archivo compacto (binario) "Serial V actor Format" y escribirá todo Los comandos a un dispositivo JTAG conectado. Esto puede Se puede utilizar para programar Xilinx CPLD por ejemplo. Ejemplos: JTAG.RunXSVF (DataVar) # Ejecuta un archivo * .XSVF
SPI Comandos específicos Comando: SPI.Fosc Parámetros: Integer Descripción: Se utiliza para establecer el hardware SPI reloj divisor. La velocidad SPI es el reloj del sistema (16 MHz) dividido por el valor Fosc. Valores soportados: 2, 4, 8, 16, 32, 64, 128 Ejemplos: SPI.Fosc (4) Comando: SPI.Order Parámetros: String Descripción: Se utiliza para establecer el orden de bits para todos los comandos SPI. Para el bit más significativo, utilice "MSB" para el bit menos significativo "LSB". Ejemplos: SPI.Order ("MSB") Comando: SPI.Mode Parámetros: Integer Descripción: Se utiliza para establecer el modo de dispositivo SPI. Modos admitidos 0, 1, 2, 3. Ejemplos: SPI.Mode (0) Comando: SPI.Swap Parámetros: Bool Descripción: Se utiliza para invertir el orden de los bits de los datos que se están escribiendo o se leen al flash. Por ejemplo, si su flash utiliza MSB, pero su microprocesador es LSB y lee los datos del flash SPI, puede utilizar este comando para intercambiar los bits de forma conveniente. Ejemplos: SPI.Swap (true)
Comandos varios Comando: Pausa
Parámetros: Entero Descripción: Espera la cantidad de tiempo especificada (en milisegundos), útil sólo en secuencias de comandos. Ejemplos: Pausa (1000) #Waits 1 segundo Comando: Verificar parámetros: Ninguno o Bool Devuelve: Bool o nada Descripción: Se utiliza para activar o desactivar el proceso de verificación de flash. También se puede utilizar para devolver el ajuste actual. Ejemplos: Verificar (true) Comando: Modo de Parámetros: Ninguno Devuelve: String Descripción: Devuelve una cadena que indica qué modo está en FlashcatUSB. Ejemplos: Modo () #Returns "JTAG" Comando: pedir Parámetros: String Devuelve: Bool Descripción: pregunta al usuario una pregunta de sí o no y devuelve ese valor. Puede usar esto en una instrucción if para hacer secciones condicionales. Ejemplos: pedir ( "Continuar guión?") Comando: hexagonales Parámetros: Entero Devuelve: String Descripción: Convierte un valor entero o variable en una cadena hexadecimal Ejemplos: hexagonal (255) #ouputs "0xFF" Comando: cambiar el tamaño de Parámetros: Data, Integer , Entero (opcional) Descripción: Cambia el tamaño de una matriz de bytes (normalmente en una variable), comenzando en el primer parámetro. El parámetro opcional se puede utilizar para especificar cuántos copiar. Ejemplos: resize (datavar, 2) #removes los dos primeros byt es Comando: Len Parámetros: String, Integer o Data Devuelve: Entero Descripción: Devuelve la longitud de una cadena, el número de bytes en un objeto de datos o el número de bytes para contener un entero. Ejemplos: len ("hello") #returns 5 dataVar = 0x1F; 0x2F; 0x2F; 0xFF; 0x2A; 0x50