Hi all,
I have something new.
/(gdb) info threads
[New Thread 1]
[New Thread 2]
[New Thread 3]
Id Target Id Frame
4 Thread 3 (Threadxx : : Sleeping) 0x8034a40c in Cyg_Flag::wait
(this=0x8020b3c0 <Cyg_Scheduler::unlock_inner(unsigned int)+16>,
pattern=1, mode=0 '\000')
at /home/xxx/ecos/packages/kernel/current/src/sync/flag.cxx:224
3 Thread 2 (Threadxx : : Ready) procxx (ctx=0x0) at
/home/xx/procxx.c:164
2 Thread 1 (Idle Thread : : Ready) 0x11110006 in ?? ()
* 1 Thread 4 (Threadxx : : Sleeping) 0x80349bc4 in
Cyg_Counting_Semaphore::wait (this=0x8020b3c0
<Cyg_Scheduler::unlock_inner(unsigned int)+16>, timeout=9240330010848395264)
at /home/xxx/ecos/packages/kernel/current/src/sync/cnt_sem.cxx:145
Cannot access memory at address 0x0/
It's look like openocd ask 'ctx' (what is context ?) for Thread 2 but it
search at address 0x00000000
/
Debug: 3044 535277 gdb_server.c:1200 gdb_read_memory_packet(): addr:
0x80210244, len: 0x00000004
Debug: 3045 535277 target.c:1769 target_read_buffer(): reading buffer of
4 byte at 0x80210244
Debug: 3046 535277 arm7_9_common.c:2117 arm7_9_read_memory(): address:
0x80210244, size: 0x00000004, count: 0x00000001
Debug: 3047 535278 gdb_server.c:368 gdb_put_packet_inner(): sending
packet '$0dc0a0e1#4e'
Debug: 3048 535278 gdb_server.c:235 gdb_get_char_inner(): received
'$m0,4#fd'
Debug: 3049 535278 gdb_server.c:247 gdb_get_char_inner(): returned char
'$' (0x24)
Debug: 3050 535278 gdb_server.c:595 gdb_get_packet_inner(): character: '$'
Debug: 3051 535278 gdb_server.c:273 gdb_get_char_fast(): returned char
'f' (0x66)
Debug: 3052 535278 gdb_server.c:273 gdb_get_char_fast(): returned char
'd' (0x64)
Debug: 3053 535278 gdb_server.c:2050 gdb_input_inner(): received packet:
'm0,4'*
Debug: 3054 535278 gdb_server.c:1200 gdb_read_memory_packet(): addr:
0x00000000, len: 0x00000004
Debug: 3055 535278 target.c:1769 target_read_buffer(): reading buffer of
4 byte at 0x00000000
Debug: 3056 535278 arm7_9_common.c:2117 arm7_9_read_memory(): address:
0x00000000, size: 0x00000004, count: 0x00000001
Warn : 3057 535279 arm7_9_common.c:2257 arm7_9_read_memory(): memory
read caused data abort (address: 0x00000000, size: 0x4, count: 0x1)
Debug: 3058 535279 arm9tdmi.c:488 arm9tdmi_write_xpsr_im8(): xpsr_im:
13, rot: 0, spsr: 0
Debug: 3059 535279 gdb_server.c:1163 gdb_error(): Reporting -307 to GDB
as generic error*/
I give you my configuration, if someone use eCos and an ARM7TDMI or
ARM926-ejs :
ecos.c
const struct eCos_params eCos_params_list[] = {
{
"cortex_m3", /* target_name */
4, /* pointer_width; */
0x0c, /* thread_stack_offset; */
0x9c, /* thread_name_offset; */
0x3c, /* thread_state_offset; */
0xa0, /* thread_next_offset */
0x4c, /* thread_uniqueid_offset */
&rtos_eCos_Cortex_M3_stacking /* stacking_info */
},
{
"arm7tdmi", /* target_name */
4, /* pointer_width; */
0x0c, /* thread_stack_offset; */ //OK
0xec, /* thread_name_offset; */ //OK
0x4c, /* thread_state_offset; */ //OK
0xf0, /* thread_next_offset */ //OK
0x5c, /* thread_uniqueid_offset */ //OK
&rtos_eCos_ARM7TDMI_stacking /* stacking_info */
},
{
"arm926ejs", /* target_name */
4, /* pointer_width; */
0x0c, /* thread_stack_offset; */ //OK
0xec, /* thread_name_offset; */ //OK
0x4c, /* thread_state_offset; */ //OK
0xf0, /* thread_next_offset */ //OK
0x5c, /* thread_uniqueid_offset */ //OK
&rtos_eCos_ARM7TDMI_stacking /* stacking_info */
}
};
rtos_ecos_stacking.c
static const struct stack_register_offset
rtos_eCos_ARM7TDMI_stack_offsets[] = {
{ 0x7c, 32 }, /* r0 */
{ 0x80, 32 }, /* r1 */
{ 0x84, 32 }, /* r2 */
{ 0x88, 32 }, /* r3 */
{ 0x8c, 32 }, /* r4 */
{ 0x90, 32 }, /* r5 */
{ 0x94, 32 }, /* r6 */
{ 0x98, 32 }, /* r7 */
{ 0x9c, 32 }, /* r8 */
{ 0xa0, 32 }, /* r9 */
{ 0xa4, 32 }, /* r10 */
{ 0xa8, 32 }, /* r11 */
{ 0xac, 32 }, /* r12 */
{ -2, 32 }, /* sp */
{ 0xb0, 32 }, /* lr */
{ 0xb4, 32 }, /* pc */
{ -1, 96 }, /* FPA1 */
{ -1, 96 }, /* FPA2 */
{ -1, 96 }, /* FPA3 */
{ -1, 96 }, /* FPA4 */
{ -1, 96 }, /* FPA5 */
{ -1, 96 }, /* FPA6 */
{ -1, 96 }, /* FPA7 */
{ -1, 96 }, /* FPA8 */
{ -1, 32 }, /* FPS */
{ 0x40, 32 }, /* xPSR */
};
If someone could try and tell me if it's work for you, it would be great.
Best regards
Vivien
------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel