Skip to content
This repository has been archived by the owner on Aug 2, 2018. It is now read-only.

Cannot access memory at address 0x8090284 #7

Closed
vmayoral opened this issue Sep 26, 2014 · 4 comments
Closed

Cannot access memory at address 0x8090284 #7

vmayoral opened this issue Sep 26, 2014 · 4 comments
Labels

Comments

@vmayoral
Copy link
Member

Issue here when executing the code.

Cannot access memory at address 0x8090284

message is suspicious. Running out of memory?

@vmayoral vmayoral added the bug label Sep 26, 2014
@vmayoral vmayoral reopened this Sep 26, 2014
@vmayoral
Copy link
Member Author

Note the backtrace:

#0  pthread_mutex_lock (mutex=0x200071e4) at pthread/pthread_mutexlock.c:120
#1  0x080651a0 in rcl_access (p=0x20000340 <dt_byte>) at ../../../dds/src/co/thread.c:444
#2  0x08023b50 in xt_type_delete (tp=0x20000340 <dt_byte>) at ../../../dds/src/xtypes/xtypes.c:2711
#3  0x08038338 in tsm_create_array (lp=0x100047b8, tsm=0x1000327c, iflags=0x10003288) at ../../../dds/src/xtypes/tsm.c:343
#4  0x0803854a in tsm_create_type (lp=0x100047b8, tsm=0x1000327c, iflags=0x10003288) at ../../../dds/src/xtypes/tsm.c:452
#5  0x08037e6c in tsm_create_struct_union (lp=0x100047b8, tsm=0x1000327c, iflags=0x10003288) at ../../../dds/src/xtypes/tsm.c:142
#6  0x0801e316 in DDS_DynamicType_register (tc=0x809f804 <dds_participant_msg_tsm+56>) at ../../../dds/src/xtypes/xtypecode.c:208
#7  0x0807f030 in msg_init () at ../../../dds/src/disc/disc_msg.c:193
#8  0x08081eb2 in spdp_init () at ../../../dds/src/disc/disc_spdp.c:91
#9  0x08053f02 in disc_init () at ../../../dds/src/disc/disc_main.c:992
#10 0x08015c56 in dds_init () at ../../../dds/src/dds/dds.c:1420
#11 0x08044024 in DDS_DomainParticipantFactory_create_participant (domain=0, qos=0x0, listener=0x0, mask=(unknown: 0))
    at ../../../dds/src/dcps/dcps_dpfact.c:76
#12 0x08011064 in dds_chat_main (argc=1, argv=0x10003754) at main.c:532
#13 0x0800348e in task_start () at task/task_start.c:139
#14 0x00000000 in ?? ()

@vmayoral
Copy link
Member Author

When debugging, we clearly can't access

(gdb) x/xw 0x8090284
0x8090284 <pthread_takesemaphore+8>:    Cannot access memory at address 0x8090284

Checking the memory by hand:

0x808fff8 <pthread_mutex_lock+112>:     0xbd8046bd
(gdb) x/xw 0x808fff9
0x808fff9 <pthread_mutex_lock+112>:     0x80bd8046
(gdb) x/xw 0x808fffc
0x808fffc <pthread_mutex_trylock>:      0xb084b580
(gdb) x/xw 0x808fffd
0x808fffd <pthread_mutex_trylock>:      Cannot access memory at address 0x8090000
(gdb) x/xw 0x808fffe
0x808fffe <pthread_mutex_trylock+2>:    Cannot access memory at address 0x8090000

This address is within the 1 MB of Flash available for the STM32F4Discovery. Why is it not possible to access?

We checked the memory protection registers:

(gdb) x/xw 0xe000ed90
0xe000ed90:     0x00000800
(gdb) x/xw 0xe000ed94
0xe000ed94:     0x00000000

@vmayoral
Copy link
Member Author

We've tried a simple "blink" program (no RTOS) and it seems that we are still not able to access those regions of memory:

(gdb) x/xw 0x808fffe
0x808fffe <pthread_mutex_trylock+2>:    Cannot access memory at address 0x8090000

Seems there might be an issue with STLINK.

@vmayoral
Copy link
Member Author

Bug found at stlink. This ros2/stlink@d855279 applies the necessary changes.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant