Beispiel #1
0
jtagtap_tms_seq(uint32_t MS, int ticks)
{
	while(ticks--) {
		jtagtap_next(MS & 1, 1);
		MS >>= 1;
	}
}
Beispiel #2
0
int jtagtap_init(void)
{
	TMS_SET_MODE();

	/* Go to JTAG mode for SWJ-DP */
	for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */
	jtagtap_tms_seq(0xE73C, 16);		/* SWD to JTAG sequence */
	jtagtap_soft_reset();

	return 0;
}
Beispiel #3
0
int
jtagtap_init(void)
{
	TMS_SET_MODE();

	for(int i = 0; i <= 50; i++) jtagtap_next(1,0);
	jtagtap_tms_seq(0xE73C, 16);
	jtagtap_soft_reset();

	return 0;
}
Beispiel #4
0
jtagtap_tdi_seq(const uint8_t final_tms, const uint8_t *DI, int ticks)
{
	uint8_t index = 1;
	while(ticks--) {
		jtagtap_next(ticks?0:final_tms, *DI & index);
		if(!(index <<= 1)) {
			index = 1;
			DI++;
		}
	}
}
Beispiel #5
0
int jtagtap_init(void)
{
	gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, 
		GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN); 

	/* Go to JTAG mode for SWJ-DP */
	for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */
	jtagtap_tms_seq(0xE73C, 16);		/* SWD to JTAG sequence */
	jtagtap_soft_reset();

	return 0;
}
Beispiel #6
0
jtagtap_tdi_tdo_seq(uint8_t *DO, const uint8_t final_tms, const uint8_t *DI, int ticks)
{
	uint8_t index = 1;
	while(ticks--) {
		if(jtagtap_next(ticks?0:final_tms, *DI & index)) {
			*DO |= index;
		} else {
			*DO &= ~index;
		}
		if(!(index <<= 1)) {
			index = 1;
			DI++; DO++;
		}
	}
}
Beispiel #7
0
int jtagtap_init(void)
{
	int err;

	assert(ftdic != NULL);

	if((err = ftdi_set_bitmode(ftdic, 0, BITMODE_RESET)) ||
	   (err = ftdi_set_bitmode(ftdic, 0, BITMODE_MPSSE))) {
		fprintf(stderr, "ftdi_set_bitmode: %d: %s\n", 
			err, ftdi_get_error_string(ftdic));
		abort();
	}

	assert(ftdi_write_data(ftdic, "\x8B\x86\x06\x00\x80\xA8\xAB\x85", 8) == 8);

	/* Go to JTAG mode for SWJ-DP */
	for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */
	jtagtap_tms_seq(0xE73C, 16);		/* SWD to JTAG sequence */
	jtagtap_soft_reset();

	return 0;
}