Está en la página 1de 32

Manual BlackcatUSB

A: Introduccin
B: Requisitos de software
C: Lista de dispositivos flash compatibles
D: Instalacin del controlador
E: Disposicin del hardware
F: Utilizar el modo bootloader para cambiar AVR Firmware
G: Uso del modo JTAG para la programacin en Flash
H: Uso del modo SPI para la programacin en Flash
I: Uso del modo NAND para el programador Flash
J: Utilizar el modo SPI para programar placas base MSI
K: Utilizacin del modo SPI para programar I2C EEPROM
L: Utilizar el smbolo del sistema / modo de consola
M: Primeros pasos con el motor de secuencias de comandos
N: Sintaxis bsica
O: Tipos de datos
P: Variables
Q: Eventos / Funciones
R: Declaraciones condicionales
S: bucles / iteraciones
T: Funcin de ejecucin automtica
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 especficos de JTAG
Z: Comandos especficos SPI
ZZ: Comandos varios

El dispositivo FlashcatUSB es un verstil 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 utilizacin de
un nico diseo de microcontrolador USB, el hardware junto con el software y el firmware
pueden permitir al dispositivo configurar su funcionamiento para cumplir con los protocolos
requeridos de un TAP
(punto de acceso de prueba) o bus de interfaz (como un perifrico serie interfaz). Dado que el
dispositivo
utiliza una interfaz USB basada en hardware, puede realizar su funcin a un ritmo mucho ms
rpido
que los puertos serie o paralelo tradicionales.
Las caractersticas 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 ncleo de 8 bits)
Dos interruptores: uno para la aplicacin 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 aplicacin
Botn para reiniciar el dispositivo o para activar el cargador de arranque USB (compatible con
DFU)
Funciones soportadas 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 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 para el modo SPI:
Soporta todos los dispositivos de memoria I2C y TWI
Direccin 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 slo una lista parcial de los dispositivos que son compatibles, ya que el modo CFI puede
configurar automticamente a cualquier dispositivo que se detecta, y en el modo SPI el 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)
Micrmetro M25P12 (128 Mbit)
Micrmetro M25P16 (16Mbit) Micrmetro
M25P16 (16Mbit) Micrmetro 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) Micrfono S25FL129P (128Mbit)
Micrfono M25PE40 (4Mbit) SST 25VF032 (32Mbit)
Micrfono S25FL128P (128Mbit) Micrfono 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 va SPI


nrdico nRF24LE1 Altera EPCS1 Altera EPCS4
Altera EPCS16 Altera EPCS64 Altera EPCS128

de la ayuda MCU con el programable memoria de la tarjeta a travs 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, pngase en contacto con nosotros por correo electrnico a
: Contact@embeddedcomputers.net .
Podemos agregar casi cualquier dispositivo de destello a peticin. 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 ejecucin manteniendo pulsada la
tecla Windows y, a continuacin, pulse la tecla R ("Ejecutar").
2. Escriba devmgmt.msc
3. Aparecer ahora la ventana del Administrador de dispositivos. Busque
el dispositivo recin conectado, normalmente en la categora "Otros
dispositivos".
4. Haga clic con el botn derecho en el dispositivo Desconocido y seleccione "Actualizar el
software del controlador".
5. Se le presentar dos opciones, "Buscar
automticamente ..." 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
slido para indicar que la tarjeta se ha conectado correctamente al software de interfaz
FlashcatUSB.
Alimentacin - Este LED (rojo) se vuelve slido cuando el dispositivo se enciende y la
aplicacin 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 botn restablecer la aplicacin 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 especfico de la aplicacin y est
destinado a ser utilizado en futuras
actualizaciones de software. El segundo pin se utiliza para configurar el dispositivo en modo de
aplicacin o modo DFU.
Selector de voltaje - Este interruptor controla la salida de voltaje. Si el interruptor est en la
posicin izquierda, la
tarjeta operar y emitir a 5v. Si el interruptor est en la posicin 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 ms 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 (tambin 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 aplicacin Modo de

cargador de arranque

Con el hardware en el modo de cargador de arranque, cada vez que se restablece el dispositivo
(pulsando el botn RESET),
FlashcatUSB se iniciar en el modo cargador de arranque. Con el software en ejecucin, la
pantalla principal mostrar ahora
que el dispositivo est en el modo bootloader ("Actualizacin 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 botn "Iniciar aplicacin". Despus 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 versin "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 voltil.

Pines PCB 2.x para JTAG


La imagen de arriba muestra las salidas de pin del puerto de E / S de 10 pines y cmo debe
conectarse al puerto de acceso de prueba (TAP) de su dispositivo de destino. FlashcatUSB slo
actuar como una
herramienta de diagnstico 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 conexin SPI.

Tenga en cuenta que los pinouts para JTAG se han cambiado en PCB versin 2.x. Esto se debe a
que
el pin superior derecho es ahora una lnea VCC dedicada y, por tanto, no se puede utilizar para
un
pin general de E / S como en versiones anteriores. Si tiene una versin 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
prcticamente 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 cmo 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 mayora de los
chips SPI
usan el ajuste de 3.3v.

* Nota: las clavijas (RST) y (PROG) slo se utilizan cuando se conecta a MCU con flash
incorporado, como el
dispositivo Nordic nRF24LE1.

El diagrama anterior es cmo debe conectar el puerto de 10 pines a un paquete SOIC-16 tpico
De un dispositivo Flash compatible con SPI.
El diagrama anterior es cmo debe conectar el puerto de 10 pines a un
paquete SOIC-8 y DIP-8 tpico de un dispositivo Flash compatible con SPI.

Opcionalmente, tambin puede adquirir tomas de insercin y clips en circuito para los
paquetes de chips SPI ms comunes . Embedded Computers lleva muchos de estos en stock.
Cuando se inicia FlashcatUSB con el dispositivo SPI conectado, el software debe
detectar automticamente el chip y cargar su configuracin en consecuencia. Si se detecta el
chip, pero no lo
admite el software, puede utilizar la pestaa SPI Settings para especificar manualmente todas
las configuraciones con los valores de la hoja de datos del chip.

Los chips de memoria no voltil de alta densidad (generalmente en los


gigabits) vienen en un paquete paralelo (generalmente BGA) que estn
conectados a un bus comn compartido (que est cableado para JTAG o
SPI) y tambin se puede usar FlashcatUSB para programar esos
Tipos de fichas.

Para utilizar esta funcin, 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 fsicamente 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 funcin slo est disponible en PCB 2.x
y no
funcionar con placas PCB 1.x anteriores.
La conexin de cableado slo utiliza 4 pines del puerto FlashcatUSB I / O. Cuando se conecta a
un dispositivo EEPROM, las lneas SDA y SCL tambin 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 (revisin 2), no necesita resistencias, ya que el adaptador
ya las contiene.

Con el dispositivo conectado correctamente, ejecute el software y, en el men Configuracin,


seleccione 'I2C
Modo EEPROM ". A continuacin, haga clic en "Detectar" en el men "Principal". Aparecer una
nueva pestaa que le
permitir leer y escribir en la EEPROM.

FlashcatUSB tambin se puede operar desde el indicador de comandos de la ventana. Esto le


permitir
crear archivos por lotes que son tiles para entornos de produccin. Para empezar, abra una
ventana de smbolo 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 funcin, 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 continuacin, se
agregan parmetros adicionales para especificar determinados ajustes. Por ejemplo:

FlashcatUSB.exe -read -file flash.bin

Lea todos los datos de la memoria flash y gurdelo en flash.bin (en el mismo directorio
en el que est FlashcatUSB.exe).

Tambin se puede usar FlashcatUSB mltiple en una sola mquina. 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 lnea de comandos usando el parmetro -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 slo 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 lnea que no est en un bloque de
eventos. El propsito de una
secuencia de comandos es realizar operaciones ms complejas que de otra manera no se pueden
realizar utilizando
la GUI estndar. Los archivos de secuencias de comandos tambin son ideales para entornos de
produccin.
Sintaxis bsica Variables de
datos
Variables
Eventos / Funciones
Declaraciones condicionales (IF ... ELSE ... ENDIF)
Loops / iteraciones (FOR ... ENDFOR) AUTORUN
Funcin

Sintaxis bsica
Las secuencias de comandos FlashcatUSB utilizan una sintaxis muy familiar, de estilo VB. Cada
lnea contiene una instruccin que
puede ser un comando a ejecutar, una condicin (IF, etc.), una instruccin de control de flujo o
el inicio de un
evento (una funcin o subprocedimiento). Para poner comentarios en el archivo de script
(declaraciones que
no tienen ningn efecto), utilice el smbolo #. Los caracteres que procedan no sern evaluados
por el
motor de secuencias de comandos.

Las declaraciones bsicas de control de flujo son: LABEL, GOTO, EXIT, RETURN.

La instruccin GOTO se puede utilizar para controlar qu lnea ejecutar. Generalmente, el


software
comienza a ejecutarse en la parte superior del archivo y prosigue hacia abajo. Para cambiar la
ubicacin, puede utilizar
la instruccin GOTO seguida de una ubicacin 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 atrs), para Una etiqueta que contiene el nombre
"SKIP_MINVAL".
Una vez encontrado, la ejecucin comenzar all. Debido a que el motor de secuencias de
comandos buscar en ambos sentidos, tambin
puede usar palabras clave GOTO para crear bucles.

La palabra clave EXIT se puede utilizar para salir de un evento o funcin, o para salir de un
segmento de condicin (por ejemplo, IF o bloque FOR). El uso de la sintaxis es EXIT o EXIT
<Event> o EXIT
GUIN. Si ejecuta script de salida, independientemente del evento en el que se encuentre, el
script completo dejar de
ejecutarse. Por ejemplo:

If (VarInt = 10) # Esto hace una comparacin 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 instruccin IF y


proceda a ejecutar la lnea siguiente despus de la instruccin 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 nmero de 32 bits (sin signo). Los valores hexadecimales se convierten
automticamente.
Data - es una matriz de bytes. Tambin 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 ";" Despus de cada byte:
MyData = 0x01; 0x02; 0x03; 0x04; 0x05; 0x06
Si asigna una variable 4 o menos bytes, la variable se convertir automticamente 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 funcin que usted puede estar familiarizado. Puedes tratarlo como una
"funcin",
Puede crear eventos y luego llamarlos como funciones e incluso devolver un valor.
Tambin se pueden asignar eventos a elementos GUI, como botones. Por lo tanto, cuando hace
clic en un botn creado,
el motor ejecutar los comandos que estn en el evento que asign a ese botn.

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 denominarn $ 1, $ 2, $ 3 y as sucesivamente para
cada variable
pasada.

Para crear un evento o una funcin, utilice la palabra clave CreateEvent seguida por un
parmetro que
especifique el nombre del evento / funcin. Y para especificar el final del Evento, utilice el
EndEvent.
EchoToMsgBox ("Hello World")
CreateEvent (EchoToMsgBox)
msgbox ($ 1)
EndEvent
Este ejemplo de cdigo abre un msgbox que dice "Hello World" cuando se ejecuta. Tambin
puede utilizar
eventos como funciones para analizar la informacin y usar el evento como si fuera una
funcin 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 bsica
Los scripts FlashcatUSB utilizan una sintaxis muy familiar, de estilo VB. Cada lnea contiene una
instruccin que
puede ser un comando a ejecutar, una condicin (IF, etc.), una instruccin de control de flujo o
el inicio de un
evento (una funcin o subprocedimiento). Para poner comentarios en el archivo de script
(declaraciones que
no tienen ningn efecto), utilice el smbolo #. Los caracteres que procedan no sern evaluados
por el
motor de secuencias de comandos.

Las declaraciones bsicas de control de flujo son: LABEL, GOTO, EXIT, RETURN.

La instruccin GOTO se puede utilizar para controlar qu lnea ejecutar. Generalmente, el


software
comienza a ejecutarse en la parte superior del archivo y prosigue hacia abajo. Para cambiar la
ubicacin, puede utilizar
La instruccin GOTO seguido de una ubicacin 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 atrs), para Una etiqueta que contiene el nombre
"SKIP_MINVAL".
Una vez encontrado, la ejecucin comenzar all. Debido a que el motor de secuencias de
comandos buscar en ambos sentidos, tambin
puede usar palabras clave GOTO para crear bucles.
La palabra clave EXIT se puede utilizar para dejar un evento o una funcin, o para salir de una
condicin
Segmento (por ejemplo, bloque IF o FOR). El uso de la sintaxis es EXIT o EXIT <Event> o EXIT
SCRIPT. Si ejecuta script de salida, independientemente del evento en el que se encuentre, el
script completo dejar de
ejecutarse. Por ejemplo:

If (VarInt = 10) # Esto hace una comparacin 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 instruccin IF y


proceda a ejecutar la lnea siguiente despus de la instruccin 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 nmero de 32 bits (sin signo). Los valores hexadecimales se convierten
automticamente.
Data - es una matriz de bytes. Tambin 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 ";" Despus de cada byte:
MyData = 0x01; 0x02; 0x03; 0x04; 0x05; 0x06
Si asigna una variable 4 o menos bytes, la variable se convertir automticamente 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 aadirse 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 funcin que usted puede estar familiarizado. Puedes tratarlo como una
"funcin",
puedes crear eventos y luego llamarlos como funciones e incluso devolver un valor.
Tambin se pueden asignar eventos a elementos GUI, como botones. Por lo tanto, cuando hace
clic en un botn creado,
el motor ejecutar los comandos que estn en el evento que asign a ese botn.

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 denominarn $ 1, $ 2, $ 3 y as sucesivamente para
cada variable
pasada.

Para crear un evento o una funcin, utilice la palabra clave CreateEvent seguida por un
parmetro que
especifique el nombre del evento / funcin. Y para especificar el final del evento, utilice la
palabra clave EndEvent.
EchoToMsgBox ("Hello World")
CreateEvent (EchoToMsgBox)
msgbox ($ 1)
EndEvent
Este ejemplo de cdigo abre un msgbox que dice "Hello World" cuando se ejecuta. Tambin
puede utilizar
eventos como funciones para analizar la informacin y usar el evento como si fuera una
funcin 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 cdigo basado en una condicin, puede utilizar la palabra clave IF seguida de una
instruccin
que puede ser evaluada como verdadera o falsa. Similar a la "IF, ELSE, ENDIF" de otros
lenguajes de programacin.
Si (5> 2)
msgbox ("Esto se ejecutar") El
otro
msgbox ("Esto no")
EndIf
La sentencia de condicin (5> 2) es evaluada y se encuentra que es verdadera. Tambin puede
utilizar Eventos
que devuelven TRUE o FALSE. Si usted precede a la declaracin de condicin con la palabra clave
"no",
lo que la declaracin se evala en, ocurrir lo contrario. Tambin 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 funcin llamada GetValue, especificndola utilizando la
palabra clave CreateEvent. Dentro del bloque de eventos, puede ejecutar comandos u otra
sintaxis
y, a continuacin, utilizar la palabra clave Return para devolver un valor a la lnea llamante, en
este caso, la
instruccin 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 parmetros que especifican el nombre de una variable, el valor inicial y el valor final.
Para (i = 0 a 9)
msgbox ("Estamos en el nmero de bucle:" & i)
EndFor

Funcin AUTORUN
Si desea que el software cargue automticamente una secuencia de comandos cuando se conecta
a una tarjeta JTAG o
dispositivo SPI, puede utilizar esta funcin. Dado que algunos dispositivos comparten el mismo
cdigo de ID de la CPU y
es posible que desee tener diferentes scripts de dispositivo, puede utilizar la funcin de
ejecucin automtica. Para ello, edite
o cree el archivo Autorun.ini ubicado en la carpeta Scripts. Cada lnea (no comentada)
representa un script de dispositivo. El formato es:
<JTAG_ID o JEDEC_ID>: <SCRIPT_NAME>: <DEVICE_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 estn 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 enviarn informacin a la
consola, otros no. Observe tambin que para los comandos de memoria, si ha iniciado ms de un
dispositivo de memoria , puede acceder a cada dispositivo utilizando parmetros con un ndice,
por ejemplo, la memoria (0) .read
realizar la operacin 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 pestaas, botones y otros elementos GUI)
Comandos especficos JTAG (comandos que se utilizarn slo en el modo JTAG)
Comandos SPI especficos (comandos que se utilizarn slo en SPI)
Comandos varios (Todos los dems comandos / funciones soportados)

Comando: OpenFile
Parmetros: String, String (opcional)
Devuelve: Datos
Descripcin:
Solicita al usuario un archivo y luego lee el archivo desde el disco y devuelve una
variable de datos . El primer parmetro es el ttulo de la ventana y el segundo opcional es
el filtro de archivo estndar a utilizar.
Ejemplos: MyData = OpenFile ("Elegir archivo", "Archivos de firmware (* .bin) | * .bin")

Comando: SaveFile
Parmetros: Data, String, String (opcional)
Sintaxis: Variable de datos para escribir, Nombre
Descripcin: Solicita al usuario que guarde una variable de datos en el disco duro.
Ejemplos: SaveFile (MyData, "Dnde guardar?", "Fileread.bin")

Comando: ReadFile
Parmetros: String
Devuelve: Datos
Descripcin: Lee un archivo desde el disco duro. El primer parmetro es el nombre del
archivo (en
relacin con la ubicacin de FlashcatUSB.exe).
Ejemplos: MyData = ReadFile ("Scripts \ EEPROM.bin")
Comando: WriteFile
Parmetros: Data, String
Descripcin:
Escribe una matriz de datos en el disco duro. El primer parmetro es la
variable de matriz de datos , el segundo es la ubicacin en relacin 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
Parmetros: Datos, Integer, Integer opcional
Sintaxis: Objeto de datos para escribir, desplazamiento de direccin de flash, longitud
opcional
Descripcin: 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
Parmetros: Entero, Entero, Opcional Bool
Devuelve: Datos
Descripcin: 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
Parmetros: Entero
Pgina 22 de 32
Devuelve: Cadena
Descripcin: Lee una cadena de la ubicacin especificada en el dispositivo flash. Devuelve
nada si no se encuentra el error o la cadena.
Ejemplos: dataStr = Memory.ReadString (0x5000)

Comando: Memory.ReadVerify
Parmetros: Entero, Entero
Devuelve: Datos
Descripcin:
Similar a ReadFlash (), esta funcin lo hace dos veces y compara el
resultado y si es necesario verifica todos los datos para asegurar Que los datos ledos son
100%
exactos. No devuelve nada si la verificacin falla. Esta funcin 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
Descripcin: Borra el sector de flash especificado
Ejemplos: sectors = Memory.GetSectorCount ()

Comando: Memory.EraseSector
Parmetros: Entero
Devuelve: Nada
Descripcin: Borra el sector de flash especificado
Ejemplos: Memory.EraseSector (0)

Comando: Memory.EraseSection
Parmetros: Integer, Integer
Devuelve: Nothing
Descripcin: Borra una seccin de la memoria flash, empezando por la direccin (el primer
parmetro) y el nmero de bytes (segundo parmetro).
Ejemplos: Memory.EraseSector (0x10000,0x8000)

Comando: Memory.EraseBulk
Parmetros: Ninguno
Devuelve: Nada
Descripcin: Borra la memoria flash completa
Ejemplos: Memory.EraseBulk ()

Command: Memory.GetSectorSize
Parmetros: Entero
Devuelve: Entero
Descripcin: Devuelve el tamao
Ejemplos: dataInt = Memory.GetSectorSize (0)

Comando: Memory.Backup
Parmetros Ninguno
Descripcin:
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
Parmetros: Ninguno
Devuelve: Bool
Descripcin: Devuelve true si se ha creado un dispositivo de memoria en un ndice dado.
Ejemplos: Memoria (2) .Exist ()

Comando: Memory.WriteWord
Parmetros: Integer, Integer
Descripcin: Escribe un entero (todos los 32 bits) en una direccin especfica del dispositivo
de memoria.
Ejemplos: Memoria (2) .WriteWord (0x80010000,0x32)
Comandos GUI

Comando: writeline
Parmetros: String
Descripcin: Muestra un mensaje en la consola.
Ejemplos: writeline ("esto es slo una prueba")

Comando: msgbox
Parmetros: String
Descripcin: Muestra un mensaje al usuario mediante una ventana emergente.
Ejemplos: msgbox ("Hello World!")

Comando: status
Parmetros: String
Descripcin: Establece el texto de estado (la barra inferior del software).
Ejemplos: status ("script is complete")

Comando: Tab.Create
Parmetros: String
Devuelve: Entero
Descripcin: Crea una pestaa especfica de la aplicacin. Devuelve el ndice de la ficha.
Ejemplos: Tab.Create ("Mi dispositivo")

Comando: Tab.
Parmetros: String, Integer, Integer, Integer, Integer
Sintaxis: Nombre del grupo, (eje X), (eje Y), Longitud, Altura
Descripcin: Crea un cuadro de grupo en la pestaa.
Ejemplos: Tab.AddGroup ("Feature", 10,10,420,140)

Comando: Tab.AddBox
Parmetros: String, String, Integer, Integer
Descripcin: Crea un cuadro de entrada en la pestaa.
Ejemplos: Tab.AddBox ("BXNAME", "texto predeterminado", 30,110)

Comando: Tab.AddText
Parmetros: String, String, Integer, Integer
Descripcin: Crea una etiqueta de texto en la pestaa.
Ejemplos: Tab.AddBox ("txtName", "Qu decir", 30,110)

Comando: Tab.AddImage
Parmetros: String, String, Integer, Integer

Ejemplos: Tab.AddImage ("ImgName", "logo.gif", 20,20)

Comando: Tab.AddButton
Parmetros: Event, String, Integer Descripcin: Agrega una imagen a la pestaa del archivo
especificado (en la carpeta de scripts) , Entero
Descripcin: Agrega un botn a su pestaa. El evento especificado se llama cuando el usuario
hace clic
en el botn.
Ejemplos: Tab.AddButton (HelloWorld, "Click Me!", 20,20)

Comando: Tab.AddProgress
Parmetros: Integer, Integer, Integer
Descripcin:
Agrega una barra de progreso a su formulario. Esta barra se actualizar automticamente a
travs de las funciones internas que usted llama (seleccionadas que pueden tardar en
procesarse). Los parmetros son el eje x, el eje y y el ancho de la barra.
Ejemplos: Tab.AddProgress (20,92,404)

Comando: Tab.Remove
Parmetros: String
Descripcin: Elimina cualquier objeto previamente agregado de tu pestaa.
Ejemplos: Tab.Remove ( "ImgName")

Comando: Tab.SetText
Parmetros: String, String
Descripcin: Cambia el texto de cualquier objeto previamente creados
ejemplos: Tab.SetText ( "txtName", "Jigga Jigga!")

Comando: Tab. ButtonDisable


Parmetros: String
Descripcin: Deshabilita un botn para que el usuario no pueda hacer clic en l y ejecutar el
evento.
Ejemplos: Tab.ButtonDisable ("btName")

Comando: Tab.ButtonEnable
Parmetros: String
Descripcin: Habilita el botn (si lo tena deshabilitado)
Ejemplos: Tab.ButtonEnable ("

Comandos especficos de JTAG

Comando: SetParam
Parmetros: Integer, Integer
Sintaxis: Setting, Value
Descripcin: Establece un parmetro 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 ms rpido el dispositivo funcione, mayor ser la tasa de error. Esto
tambin 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
Parmetros: Entero
Devuelve: Entero
Descripcin: Enva 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
Parmetros: Ninguno
Descripcin:
Intenta reprogramar el cargador de arranque de un dispositivo a ciegas (sin verificacin, sin
identificacin de dispositivo de comprobacin, etc.). Esto a veces tiene xito al restaurar un
dispositivo que
no arranca correctamente. Slo se admite en modo JTAG.
Ejemplos: FixFlash ()

Comando: JTAG.MemoryAddress
Parmetros: Integer
Descripcin: Inicializa el controlador de memoria dinmica y establece la direccin de
memoria base.
Ejemplos: JTAG.MemoryAddress (0x80000000)

Comando: JTAG.MemoryType
Parmetros: String
Descripcin: Establece el tipo de dispositivo de la memoria. Esto puede ser "RAM", "CFI" o
"SPI".
Nota: El modo SPI sobre JTAG an no es compatible.
Ejemplos: JTAG.MemoryType ("CFI")

Comando: JTAG.MemorySize
Parmetros: Integer
Descripcin: Establece el tamao de la memoria (en bytes) de la memoria dinmica
Ejemplos: JTAG.MemorySize (0x800000)

Comando: JTAG.MemoryInit
Parmetros: Ninguno
Descripcin: Inicializar y conectar la interfaz FlashcatUSB a la memoria
interfaz. Es posible que deba especificar la direccin y el tamao antes de llamar a esta
funcin. Si tiene xito, la GUI agregar la pestaa "Memoria". Este comando tambin devuelve
el ndice nico del dispositivo creado.
Ejemplos: MemIndex = JTAG.MemoryInit ()

Comando: JTAG.FlashInit
Parmetros: Ninguno
Descripcin:
Se conectar al flash CFI compatible en el controlador de memoria para permitir la
lectura y escritura. Esto crear la pestaa "Flash" en la GUI. Debe configurar
FlashBase antes.
Ejemplos: JTAG.FlashInit ()

Comando: JTAG.FlashFind
Parmetros: Ninguno
Descripcin : Explorar todo el rango de direcciones de memoria para un flash compatible
con CFI.
Ejemplos: JTAG.FlashFind ()

Comando: JTAG.BigEndian
Parmetros: Ninguno
Descripcin: Establece el endian para los dispositivos de memoria JTAG a grandes.
Ejemplos: JTAG.BigEndian ()

Comando: JTAG.LittleEndian
Parmetros: Ninguno
Descripcin: Establece el endian para los dispositivos de memoria JTAG a poco.
Ejemplos: JTAG.LittleEndian ()

Comando: JTAG.Debug
Parmetros: Bool (verdadero o Falso)
Descripcin: escribe los datos JTAG registran con la bandera estndar para poner el
dispositivo de destino
en el modo de depuracin: (PRACC | Proben | SETDEV | JTAGBRK)
Ejemplos : JTAG.Debug (true) #Will enviar el comando JTAG debug

Comando: JTAG.Reset
Sintaxis:
Descripcin:
Escribe el registro de datos JTAG con el indicador estndar 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
Parmetros: Data (byte array)
Descripcin:
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
Parmetros: Data (matriz de bytes)
Descripcin:
Este comando ejecutar un archivo compacto (binario) "Serial Vactor 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 especficos

Comando: SPI.Fosc
Parmetros: Integer
Descripcin:
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
Parmetros: String
Descripcin: Se utiliza para establecer el orden de bits para todos los comandos SPI. Para el
bit ms significativo, utilice
"MSB" para el bit menos significativo "LSB".
Ejemplos: SPI.Order ("MSB")

Comando: SPI.Mode
Parmetros: Integer
Descripcin: Se utiliza para establecer el modo de dispositivo SPI. Modos admitidos 0, 1, 2, 3.
Ejemplos: SPI.Mode (0)

Comando: SPI.Swap
Parmetros: Bool
Descripcin: Se utiliza para invertir el orden de los bits de los datos que se estn 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
Parmetros: Entero
Descripcin: Espera la cantidad de tiempo especificada (en milisegundos), til slo en
secuencias de comandos.
Ejemplos: Pausa (1000) #Waits 1 segundo

Comando: Verificar
parmetros: Ninguno o Bool
Devuelve: Bool o nada
Descripcin: Se utiliza para activar o desactivar el proceso de verificacin de flash. Tambin
se puede utilizar para
devolver el ajuste actual.
Ejemplos: Verificar (true)

Comando: Modo de
Parmetros: Ninguno
Devuelve: String
Descripcin: Devuelve una cadena que indica qu modo est en FlashcatUSB.
Ejemplos: Modo () #Returns "JTAG"

Comando: pedir
Parmetros: String
Devuelve: Bool
Descripcin: pregunta al usuario una pregunta de s o no y devuelve ese valor. Puede usar
esto en
una instruccin if para hacer secciones condicionales.
Ejemplos: pedir ( "Continuar guin?")

Comando: hexagonales
Parmetros: Entero
Devuelve: String
Descripcin: Convierte un valor entero o variable en una cadena hexadecimal
Ejemplos: hexagonal (255) #ouputs "0xFF"

Comando: cambiar el tamao de


Parmetros: Data, Integer , Entero (opcional)
Descripcin: Cambia el tamao de una matriz de bytes (normalmente en una variable),
comenzando en el primer parmetro. El
parmetro opcional se puede utilizar para especificar cuntos copiar.
Ejemplos: resize (datavar, 2) #removes los dos primeros bytes

Comando: Len
Parmetros: String, Integer o Data
Devuelve: Entero
Descripcin: Devuelve la longitud de una cadena, el nmero de bytes en un objeto de datos o
el
nmero de bytes para contener un entero.
Ejemplos: len ("hello") #returns 5
dataVar = 0x1F; 0x2F; 0x2F; 0xFF; 0x2A; 0x50
len (dataVar) #returns 6
len (302) #returns 2

Comando: Byte
Parmetros: Datos, Integer
Devuelve: Entero
Descripcin : Devuelve el valor del byte ubicado en una matriz de datos.
Ejemplos: DataVar = 0x1F; 0x3F; 0x2F; 0xFF; 0x2A; 0x50
palabra (dataVar, 2) #Returns 47

Command: Word
Parmetros: Data, Integer
Devuelve: Entero
Descripcin: Devuelve el valor de los cuatro bytes ubicados en una matriz de datos.
Ejemplos: DataVar = 0x1F; 0x3F; 0x2F; 0xFF; 0x2A; 0x50
palabra (dataVar, 2) #Returns 805251664

Comando: HWord
Parmetros: Data, Integer
Devuelve: Entero
Descripcin: Devuelve el valor de los dos bytes ubicados en una matriz de datos.
Ejemplos: dataVar = 0x1F; 0x2F; 0x2F; 0xFF; 0x2A; 0x50
hword (dataVar, 2) #Returns 12287

Comando: valor
Parmetros: String
Devuelve: String
Descripcin: Devuelve el valor de texto de un objeto Tab, como un cuadro de texto creado.
Ejemplos: strVar = valor (MYINPUTBOX)

Comando: ToInteger
Parmetros: String
Devuelve: Entero
Descripcin: Convierte un entero almacenado en una cadena como un entero.
Ejemplos: ToInteger ("234") #Returns 234

Comando: copy
Parmetros: Data, Data
Returns: Data
Descripcin: Copia dos variables de datos y las devuelve como una nueva variable combinada
de datos.
Ejemplos: dataVar = copy (data1, data2) #equals datos1 + datos2