On Fri, 2009-03-27 at 12:12 -0700, Jeff Williams wrote:
> Hi Duane,
>
> I broke the fixes into two patches. I'm also attaching the config for
> this part.
>
> Patch #1: JLink
>
> I really tried to get this stuff to work without changing the state
> table, but the fact is that the state table is part of the problem
> (and the fix). When I walk all 36 routes of the current state table
> using the ARM reference manual it surprises me that it works. Tho' I
> am new to this, so I could be missing something.
1) With gcc 4.1.2, I get the following new warning in jtag.h (which
appears in every file that includes it):
../../src/jtag/jtag.h:82: warning: useless storage class specifier in
empty declaration
After dropping the standalone typedef that follows it, that enum type
definition can be written like this to eliminate the warning:
typedef enum jtag_state {
....
} jtag_state_t;
I would also see you drop the first name (jtag_state), but some code
appears to reference that declaration rather than the _t type name.
2) Add a forward declaration of debug_state_machine before the
jtag_tap_execute execute to eliminate its implicit declaration warning.
> Patch #2: target (Thumb problems)
>
> I removed the experimental clock_in_out routine, but I did leave the
> two debug statements where I see crashing out of thumb mode. I figure
> if folks are going to help us here then this bit of unobtrusive code
> is a good places for others to hook into the problem.
Here are the new warnings that I see produced by this patch:
gcc ..... -c -o arm7_9_common.o arm7_9_common.c
arm7tdmi.c: In function 'arm7tdmi_clock_data_in':
arm7tdmi.c:224: warning: assignment from incompatible pointer type
arm7tdmi.c: In function 'arm7tdmi_clock_data_in_endianness':
arm7tdmi.c:285: warning: assignment from incompatible pointer type
arm7tdmi.c: In function 'arm7tdmi_read_core_regs':
arm7tdmi.c:401: warning: passing argument 3 of 'arm7tdmi_clock_out'
makes pointer from integer without a cast
arm7tdmi.c:401: warning: passing argument 4 of 'arm7tdmi_clock_out'
makes integer from pointer without a cast
arm7tdmi.c:404: warning: passing argument 3 of 'arm7tdmi_clock_out'
makes pointer from integer without a cast
arm7tdmi.c:404: warning: passing argument 4 of 'arm7tdmi_clock_out'
makes integer from pointer without a cast
arm7tdmi.c:406: warning: passing argument 3 of 'arm7tdmi_clock_out'
makes pointer from integer without a cast
arm7tdmi.c:406: warning: passing argument 4 of 'arm7tdmi_clock_out'
makes integer from pointer without a cast
These should all be trivial to make disappear. When tested, these
changes do not appear to make anything worse, and it might even be an
improvement.
Cheers,
Zach
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development