Hi Zack,

#1: Fixed
#2: Fixed
#3: Fixed

All were tested against the MC1322x after I made the changes.

I did not attach a new MC1322x config since that did not change.

Thanks!

Jeff

Attachment: OOCD-jlink-patch.v2
Description: Binary data

Attachment: OOCD-target-patch.v2
Description: Binary data



El Mar 27, 2009, a las 14:51 , Zach Welch escribió:

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
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to