Magnus Lundin wrote:
> Hi, here are som thoughts after looking throuh some parts of the jtag
> subsystem.
>
> What is a stable state ? A state that is unchanged or a state that is
> unchanged and has no sideeffects ? Only RESET and PAUSE ?
>
A stable state is one that can persist with subsequent clocks. Most
states are such that they persist for only one clock cycle. In all
cases a stable state can only persist with a subsequent clock cycle if
the TMS line is in a specific value. That is only of the two possible
TMS values allows the stable state to persist. A stable state is any in
the TAP state diagram which has an arrow looping back to itself. I see
6 of them in the state diagram.
I would go blind looking at these arrays. You talk about using states,
but then I see a table of numbers. Numbers don't mean anything to me.
I am not a computer. The code has to be readable, as a human. Maybe I
mis-understand you.
We already have the jtag_add_pathmove() function. Its API is elegant
and in theory it can do anything we need anywhere. Why do we need
other? What is more readable than an array of states through which you
wish to travel, specified in a human readable #define TAP_<state> ? See
here from xsvf.c:
static tap_state_t exception_path[] = {
TAP_DREXIT2,
TAP_DRSHIFT,
TAP_DREXIT1,
TAP_DRUPDATE,
TAP_IDLE,
};
jtag_add_pathmove(
sizeof(exception_path)/sizeof(exception_path[0]), exception_path);
It is like connecting the dots for me, I understand it. This function
can handle any use case that I can think of.
Dick
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development