Leer la API de Macraigor para usbWiggler
MacraigorApi_ JtagScanlO
BOOLEAN_TYPE MacraigorApi_JTAGScanIO( char *shift_register, unsigned_int length_in_bits, MEMORY_BUFFER_TYPE *data_in_ptr, MEMORY_BUFFER_TYPE *data_out_ptr)
Use JTAG para escanear la secuencia de bits contenida en la matriz
*data_in_ptr
a lashift_register
de la CPU seleccionada actualmente y al mismo tiempo recolecta los bits que llegan de la CPU en*data_out_ptr
array, dejando la CPU en el estado "RunTestidle" al final de la operación Devuelve VERDADERO si el comando se completó con éxito
shift_register
["IR" / "DR"] - registro de desplazamiento de destino (IR = JTAG Registro de instrucciones, DR = Registro de datos JTAG
length_in_bits
[1 - ...] número de bits para cambiar dentro / fuera de la CPU
data_in_ptr
puntero a la matriz que contiene los bits que se desplazarán a la CPU, en el formato [8,7,6,5,4,3,2,1,0] [15,14,13,12,11,10,9,8]] donde El final del bit de operación de escaneo O será el bit más cercano a SDO y bit N será el bit más cercano a SDI
data_out_ptr
puntero a la matriz que contiene el bit escaneado desde la CPU en el el mismo formato que data_in_ptr, donde el bit de bit Obit O contiene el primer bit escaneado desde la CPU
No estoy seguro de entender esta descripción claramente. Entonces, jugar con el código C ++ y Cortex M3 Hice esto:
int scanBits = 0x292;
unsigned char data_in[256];
unsigned char *data_in_ptr = &data_in[0];
unsigned char data_out[256];
unsigned char *data_out_ptr = &data_out[0];
MacraigorApi_JTAGScanIO("DR",
scanBits,
(MEMORY_BUFFER_TYPE *)data_in_ptr,
(MEMORY_BUFFER_TYPE *)data_out_ptr);
Y el data_out_ptr
me mostró un resultado como este:
1110010001001111111111111111111111111111111001001101001010101010011001
0010110000000000000000000000000000000000000000001100011111110100110111
1110111111011111101111000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000100110000010001001111101010100
0010000110000000100000010001001110001001000000001000000100010011111101
1100011100000000000011000111111101000110000000000000110001111111010011
1100000000000000000000000000000000001000000001000000100010101001010100
0000000000001100011111110011011100000000010000101010101011100001111111
0000000000100000000101100011000010100000000001100011111110011001100000
000000000000000000000000000000000000000000101000100111110010000
¿Puede alguien explicarme en palabras más simples lo que significa esta descripción de API ? Soy nuevo en este campo, por lo que gran parte de la jerga aquí no es tan clara para mí.
También estoy un poco confundido sobre esto, ¿Cómo puedo, a partir de este flujo de bits , obtener qué datos? estaba en una X dirección ?