Hi,
Sorry, it should be:
if ((svf_check_tdo_para[i].enabled)
    && (buf_cmp_mask(&svf_tdi_buffer[index], &svf_tdo_buffer[index],
                              &svf_mask_buffer[index], len)))

If you cut [index], it will alway compare from the first data.
And in d3 mode, svf_check_tdo will be called when there is a valid data, 
which need to be compared. So it will be OK.

But in normal mode, many data will be commited and then call svf_check_tdo.
So it will be faster on some dongles.
svf_check_tdo_para_index is the number of data to be compared.
index = svf_check_tdo_para[i].buffer_offset; is the index of the data in the 
buffer.

Patch in the attachment fix this problem.
If it is tested OK, I think this patch can be commited.

2009-04-03 



Best Regards, Simon Qian

SimonQian([email protected]) ---- www.SimonQian.com



发件人: Johann F. 
发送时间: 2009-04-03  16:45:57 
收件人: SimonQian 
抄送: openocd-development 
主题: Re: [Openocd-development] xsvf patch 
 
On Thu, 2 Apr 2009 18:22:33 +0800
"SimonQian" <[email protected]> wrote:
> Hi,
> Attached patch fixs:
> 1. call buf_cmp_mask to compare buffer with mask.
> 2. remove long lines according to GNU coding standard.
> 
> NOTE: The patch is untested, I don't have XC9572XL to test on.
> And I'll prepare a patch for vsllink code according to GNU coding standard.
> 
Hi,
The patch make segmentation fault because buf_cmp_mas expect a pointer
(*u8).
svf.c: 669 > if ((svf_check_tdo_para[i].enabled)
&& (buf_cmp_mask(svf_tdi_buffer[index], svf_tdo_buffer[index],
svf_mask_buffer[index], len)))
I cut off [index], then it work with -d3 option, but not without. Is
index a byte-position in buffers? Why svf_check_tdo need
values svf_check_tdo_para_index and index? 
regards
Johann

Attachment: svf.patch
Description: Binary data

_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to