* [ECOS] Fwd: STM32 ROMINT don't run
[not found] <CACra8jX5=y1-7iRktxuvK11T8zTNBPfR38=5b57PK2EJNbQ1nA@mail.gmail.com>
@ 2014-01-22 17:24 ` Samuel Charnet
2014-01-23 17:06 ` [ECOS] " John Dallaway
0 siblings, 1 reply; 8+ messages in thread
From: Samuel Charnet @ 2014-01-22 17:24 UTC (permalink / raw)
To: ecos-discuss
Hi,
I want to try the ecos OS. My board come from waveshare, it is based
on stm32f407ig core ( http://www.wvshare.com/product/EVK407I.htm )
After some days I have ecos from CVS compiled. With the configtool I
have created my library with the stm3240 template and i have modified
the startup type to ROMINT
I have a simple thread which blink a led. I can upload the binary file
to the stm32 (i use the last openocd from source and olimex
arm-usb-ocd-h jtag device)
Unfortunately the led don't blink. With gdb i can't break on any
function and the stack seems broken.
The objdump seems ok but i am not a veteran with embeded developpment.
Could you give me some hints, i do not know where to search.. thanks in advance.
This is a gdb output :
(gdb) b cyg_user_start
Breakpoint 1 at 0x80001a2: file plsee.c, line 151.
(gdb) target remote :3333
Remote debugging using :3333
hal_reset_vsr () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/hal_misc.c:132
132 {
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.
stm32f4x.cpu -- clearing lockup after double fault
Program received signal SIGINT, Interrupt.
0x00000000 in ?? ()
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-22 17:24 ` [ECOS] Fwd: STM32 ROMINT don't run Samuel Charnet
@ 2014-01-23 17:06 ` John Dallaway
2014-01-23 18:02 ` Samuel Charnet
0 siblings, 1 reply; 8+ messages in thread
From: John Dallaway @ 2014-01-23 17:06 UTC (permalink / raw)
To: Samuel Charnet; +Cc: ecos-discuss
Hi Samuel
On 22/01/14 17:24, Samuel Charnet wrote:
> I want to try the ecos OS. My board come from waveshare, it is based
> on stm32f407ig core ( http://www.wvshare.com/product/EVK407I.htm )
>
> After some days I have ecos from CVS compiled. With the configtool I
> have created my library with the stm3240 template and i have modified
> the startup type to ROMINT
>
> I have a simple thread which blink a led. I can upload the binary file
> to the stm32 (i use the last openocd from source and olimex
> arm-usb-ocd-h jtag device)
>
> Unfortunately the led don't blink. With gdb i can't break on any
> function and the stack seems broken.
You may be observing the following issue:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001864
Try modifying hal/cortexm/arch/current/src/hal_misc.c to read as follows:
> #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMINT)
> // Relocate data from ROM to RAM
Does that resolve the issue for you?
John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-23 17:06 ` [ECOS] " John Dallaway
@ 2014-01-23 18:02 ` Samuel Charnet
2014-01-24 8:57 ` John Dallaway
0 siblings, 1 reply; 8+ messages in thread
From: Samuel Charnet @ 2014-01-23 18:02 UTC (permalink / raw)
To: ecos-discuss; +Cc: John Dallaway
Hi John,
> You may be observing the following issue:
>
> http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001864
>
> Try modifying hal/cortexm/arch/current/src/hal_misc.c to read as follows:
>
>> #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMINT)
>> // Relocate data from ROM to RAM
>
> Does that resolve the issue for you?
>
> John Dallaway
> eCos maintainer
> http://www.dallaway.org.uk/john
Thanks for your quick answer.
I had a hope but it is not enought, it still doesn't run.
the stack is different :
(gdb) target remote :3333
Remote debugging using :3333
0x00000000 in ?? ()
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.
stm32f4x.cpu -- clearing lockup after double fault
Program received signal SIGINT, Interrupt.
0x00000000 in ?? ()
(gdb) where
#0 0x00000000 in ?? ()
#1 0x08001d3c in Cyg_Exception_Control::deliver_exception
(this=<optimized out>, exception_number=<optimized out>,
exception_info=<optimized out>)
at /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/except.cxx:234
#2 0x0800005e in hal_default_exception_vsr () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
#3 0x0800005e in hal_default_exception_vsr () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-23 18:02 ` Samuel Charnet
@ 2014-01-24 8:57 ` John Dallaway
2014-01-24 11:19 ` Samuel Charnet
2014-01-25 11:07 ` Samuel Charnet
0 siblings, 2 replies; 8+ messages in thread
From: John Dallaway @ 2014-01-24 8:57 UTC (permalink / raw)
To: Samuel Charnet; +Cc: eCos Discussion
Hi Samuel
On 23/01/14 18:02, Samuel Charnet wrote:
> John Dallaway wrote:
>
>> You may be observing the following issue:
>>
>> http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001864
>>
>> Try modifying hal/cortexm/arch/current/src/hal_misc.c to read as follows:
>>
>>> #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMINT)
>>> // Relocate data from ROM to RAM
>
> Thanks for your quick answer.
>
> I had a hope but it is not enought, it still doesn't run.
>
> the stack is different :
>
> (gdb) target remote :3333
> Remote debugging using :3333
> 0x00000000 in ?? ()
> (gdb) c
> Continuing.
> Note: automatically using hardware breakpoints for read-only addresses.
> stm32f4x.cpu -- clearing lockup after double fault
> Program received signal SIGINT, Interrupt.
> 0x00000000 in ?? ()
> (gdb) where
> #0 0x00000000 in ?? ()
> #1 0x08001d3c in Cyg_Exception_Control::deliver_exception
> (this=<optimized out>, exception_number=<optimized out>,
> exception_info=<optimized out>)
> at /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/except.cxx:234
> #2 0x0800005e in hal_default_exception_vsr () at
> /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
> #3 0x0800005e in hal_default_exception_vsr () at
> /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb)
If you have not already done so, disable compiler optimisation by
removing "-O2" from the CYGBLD_GLOBAL_CFLAGS option. Also enable
CYGPKG_INFRA_DEBUG. You should then be able to step into your code from
system reset and see where the exception is triggered.
Note that STM3240G-EVAL ROMINT startup is similar to STM32F4-Discovery
ROM startup which is working fine. So I don't think there is a major
problem here. Check all references to "CYG_HAL_STARTUP == ROM" and
"CYG_HAL_STARTUP_ROM". Modify these expressions if the code they control
is also relevant for ROMINT startup.
Good luck with your debugging...
John Dallaway
eCos maintainer
http://www.dallaway.org.uk/john
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-24 8:57 ` John Dallaway
@ 2014-01-24 11:19 ` Samuel Charnet
2014-01-25 11:07 ` Samuel Charnet
1 sibling, 0 replies; 8+ messages in thread
From: Samuel Charnet @ 2014-01-24 11:19 UTC (permalink / raw)
To: John Dallaway; +Cc: eCos Discussion
First, thanks for help, ecos is a complex piece of code ^^
I have already try stm32discovery template but i have another problem,
my jtag device hang with this one. I have set assert and ROM option,
default template, this is the result with gdb :
(gdb) target remote :3333
Remote debugging using :3333
Ignoring packet error, continuing...
warning: unrecognized item "timeout" in "qSupported" response
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Remote communication error. Target disconnected.: Connexion
ré-initialisée par le correspondant.
(gdb) q
OpenOCD complain too :
wrote 49152 bytes from file plsee.bin in 2.094767s (22.914 KiB/s)
Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg:
0x23b, part: 0xba00, ver: 0x4)
Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020,
part: 0x6413, ver: 0x0)
Warn : Invalid ACK 0 in JTAG-DP transaction
>
> Note that STM3240G-EVAL ROMINT startup is similar to STM32F4-Discovery
> ROM startup which is working fine. So I don't think there is a major
> problem here. Check all references to "CYG_HAL_STARTUP == ROM" and
> "CYG_HAL_STARTUP_ROM". Modify these expressions if the code they control
> is also relevant for ROMINT startup.
>
I add another CYG_HAL_STARTUP_ROMINT in var_io.h, i think there is no more.
This is the stack with stm3240 template, the exception is broken ?
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.
stm32f4x.cpu -- clearing lockup after double fault
Program received signal SIGINT, Interrupt.
0x08001be2 in diag_write_long_num (n=65535, base=16, sign=43,
pfzero=0, width=0) at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/diag.cxx:189
189 cyg_ucount8 d = n % base;
(gdb) wher
#0 0x08001be2 in diag_write_long_num (n=65535, base=16, sign=43,
pfzero=0, width=0) at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/diag.cxx:189
#1 0x08001cd6 in diag_write_num (n=65535, base=16, sign=43, pfzero=0,
width=0) at /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/diag.cxx:218
#2 0x08001b4c in diag_write_hex (n=65535) at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/diag.cxx:157
#3 0x08002c72 in write_thread_id () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/tcdiag.cxx:132
#4 0x08002d2c in cyg_assert_msg (psz_func=0x800cf44 "void
Cyg_Exception_Control::deliver_exception(cyg_code, CYG_ADDRWORD)",
psz_file=0x800ced0
"/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/except.cxx",
linenum=214,
psz_msg=0x800cf24 "Out of range exception number") at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/infra/current/src/tcdiag.cxx:173
#5 0x08004a4a in Cyg_Exception_Control::deliver_exception
(this=0x20002dc0, exception_number=537001784,
exception_info=537001784)
at /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/except.cxx:213
#6 0x0800474a in Cyg_Thread::deliver_exception (this=0x0,
exception_number=537001784, exception_info=537001784)
at /home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/thread.cxx:1012
#7 0x08004aec in cyg_hal_deliver_exception (code=537001784,
data=537001784) at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/kernel/current/src/common/except.cxx:247
#8 0x0800801a in hal_deliver_exception (regs=0x2001ff38) at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/hal_misc.c:350
#9 0x0800005e in hal_default_exception_vsr () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
#10 0x0800005e in hal_default_exception_vsr () at
/home/lucky/Devel/PLSee/ecos/ecos-3.0/packages/hal/cortexm/arch/current/src/vectors.S:184
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) q
>
> If you have not already done so, disable compiler optimisation by
> removing "-O2" from the CYGBLD_GLOBAL_CFLAGS option. Also enable
> CYGPKG_INFRA_DEBUG. You should then be able to step into your code from
> system reset and see where the exception is triggered.
It's done.
> Good luck with your debugging...
>
I need it ;)
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-24 8:57 ` John Dallaway
2014-01-24 11:19 ` Samuel Charnet
@ 2014-01-25 11:07 ` Samuel Charnet
2014-01-25 13:41 ` Samuel Charnet
1 sibling, 1 reply; 8+ messages in thread
From: Samuel Charnet @ 2014-01-25 11:07 UTC (permalink / raw)
To: John Dallaway; +Cc: eCos Discussion
I still can't debug
I looked in more detail objdump output and i have a strange thing :
So, this is the header :
$ arm-none-eabi-objdump -h hello
hello: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .debug_aranges 000012e0 00000000 00000000 000050d8 2**3
CONTENTS, READONLY, DEBUGGING
1 .debug_info 00047978 00000000 00000000 000063b8 2**0
CONTENTS, READONLY, DEBUGGING
2 .debug_abbrev 0000b993 00000000 00000000 0004dd30 2**0
CONTENTS, READONLY, DEBUGGING
3 .debug_line 0000b85d 00000000 00000000 000596c3 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_frame 00002ba8 00000000 00000000 00064f20 2**2
CONTENTS, READONLY, DEBUGGING
5 .debug_str 00008f1a 00000000 00000000 00067ac8 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_loc 00012afc 00000000 00000000 000709e2 2**0
CONTENTS, READONLY, DEBUGGING
7 .rom_vectors 00000008 08000000 08000000 00000098 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
8 .ARM.exidx 00000008 08000008 08000008 000000a0 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
9 .text 00004d18 08000010 08000010 000000a8 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
10 .rodata 00000160 08004d28 08004d28 00004dc0 2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
11 .eh_frame 00000008 08004e88 08004e88 00004f20 2**0
ALLOC
12 .data 000001b8 20000288 08004e90 00004f20 2**3
CONTENTS, ALLOC, LOAD, DATA
13 .bss 000034bc 20000440 08005048 000050d8 2**3
ALLOC
14 .ARM.attributes 0000002f 00000000 00000000 000834de 2**0
CONTENTS, READONLY
15 .comment 00000070 00000000 00000000 0008350d 2**0
CONTENTS, READONLY
16 .debug_ranges 000046c8 00000000 00000000 0008357d 2**0
CONTENTS, READONLY, DEBUGGING
The text section should be
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-25 11:07 ` Samuel Charnet
@ 2014-01-25 13:41 ` Samuel Charnet
2014-01-28 20:36 ` Samuel Charnet
0 siblings, 1 reply; 8+ messages in thread
From: Samuel Charnet @ 2014-01-25 13:41 UTC (permalink / raw)
To: John Dallaway; +Cc: eCos Discussion
hum sorry, my mail was truncated
The text section should be at 0x8000010, the same address as the
reset_vector function, it is the entry point.
But in objdump i can see "start address 0x08000011", is it normal ?
When I try to break to reset_vector, nothing append, can I conclude
that reset_vector is not called ?
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
* [ECOS] Re: STM32 ROMINT don't run
2014-01-25 13:41 ` Samuel Charnet
@ 2014-01-28 20:36 ` Samuel Charnet
0 siblings, 0 replies; 8+ messages in thread
From: Samuel Charnet @ 2014-01-28 20:36 UTC (permalink / raw)
To: John Dallaway; +Cc: eCos Discussion
Hi,
I come back to tell my problem is solved ! gcc 4.7.2 was my problem, i
now use the toolchain from ecos centric and i can begin to play :)
I am surprise because this toolchain work with ST standard library and
chibios RT..
2014-01-25 Samuel Charnet <samcharnet@gmail.com>:
> hum sorry, my mail was truncated
>
> The text section should be at 0x8000010, the same address as the
> reset_vector function, it is the entry point.
>
> But in objdump i can see "start address 0x08000011", is it normal ?
>
> When I try to break to reset_vector, nothing append, can I conclude
> that reset_vector is not called ?
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-01-28 20:36 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CACra8jX5=y1-7iRktxuvK11T8zTNBPfR38=5b57PK2EJNbQ1nA@mail.gmail.com>
2014-01-22 17:24 ` [ECOS] Fwd: STM32 ROMINT don't run Samuel Charnet
2014-01-23 17:06 ` [ECOS] " John Dallaway
2014-01-23 18:02 ` Samuel Charnet
2014-01-24 8:57 ` John Dallaway
2014-01-24 11:19 ` Samuel Charnet
2014-01-25 11:07 ` Samuel Charnet
2014-01-25 13:41 ` Samuel Charnet
2014-01-28 20:36 ` Samuel Charnet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).