Hello!
I can't have a debugging session working correctly with a STM32F417IE.
When I click on launch, A tab keep beeing displayed with errors such as :
No source available for "(gdb[9].proc[42000].threadGroup[i1],gdb[9].proc[42000].OSthread[1]).thread[1].frame[0]"
No source available for 0x0
No source available for 0x<more complex="" address=""> (eg. 0x80123251)</more>
In console: I have this output :
Starting target CPU...
...Target halted (PC = 0x030CF002)
Reading all registers
Removing breakpoint @ address 0x08001304, Size = 2
WARNING: Failed to read memory @ address 0x030CF002
Read 4 bytes @ address 0x2001FF7C (Data = 0x00000002)
Reading 64 bytes @ address 0x2001FF40
Read 4 bytes @ address 0x00000002 (Data = 0x02B92002)
Read 4 bytes @ address 0x00000000 (Data = 0x20020000)
Basically, I can't have my program running and I can't see what is in memory.
Thx in advance for your answer!
are you using the J-Link plug-in?
did you configure the device name properly?
Yes and Yes (using Device from Packs).
it is hard to say, you might have messed something.
can you try in a fresh workspace, to create a simple project with a template, and see if it works?
if it works, the problem might be in your project or in your workspace.
if not, perhaps Eclipse itself is broken and needs a reinstall.
Did you ever see these types of error?
nope. but I've seen a lot of broken Eclipses/workspaces.
In fact all was a brand new installation (new Eclipse, new J-Link, new workspace, new toolchain ...). I will give it more tests on Monday.
Thanks
I suggest you do a clean install following the documentation by the book and create a project from the existing template; it should work. then investigate your current project.
This is what I did at the first instance.
My project is the template you provide.
could you check if the memory map in mem.ld matches your processor?
I will check on Monday.
Out of topic: Is there a doc for µ0S++? Is it usable ?
there are several wiki pages, with various information. I used the initial version in several commercial projects, but the current version (III) is 'work in progress'.
development was postponed until the packaging plug-ins will be fully functional (cmsis & xcdl extensions), since µ0S++ is planned to be a collection of packages/components.
Last edit: Liviu Ionescu (ilg) 2015-04-11
Well, I am late.
Memory mapping seem right in mem.ld. I don't know enough to tell about the sections.ld.
My problem is quite similar to #41 except that other addresses can be displayed.
I am stuck here and don't know what to do next.
are you trying to run code in RAM? did you disable the second reset?
I don't think so.I think I am using defaults from the template project (it's in the flash,isn't it?) ?.
Then check the .map file; if this is not relevant for you, enable the listing file and inspect it too.
The addresses you are displaying seem wrong.
Here is the .map file:
http://www.pasteall.org/58041
and my mem.ld
http://www.pasteall.org/58042
those seem fine.
place the initial breakpoint at '_start' instead of 'main' and trace execution until it fails.
Beginning debug session at _start, I have "a no source for 0x0" at first.
Then I can go step by step until __initialize_hardware (); (l302, startup.c).
After that I can't move further and keep having errors (no source available for 0x.........).
step into it and try to locate the instruction where it crashes.
are you using a recent toolchain from launchpad?
is this project the only one in the workspace?
the "no source for 0x0" look like you are debugging something else
if possible, archive the entire project and make it available, so I can take a look at your configuration.
before this, be sure you have your debugging launch configuration customised to be stored in the project, as explained in the documentation.
Going deeper it seem to crash on
tickstart = HAL_GetTick(); l303 of stm32f4xx_hal_rcc.c
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5); l154 _initialize_hardware.c
configure_system_clock() l31 _initialize_hardware.c
For the archive, I will be able to do it later.
Thx.
go even deeper in this function.
probably this function has a different usage for your board, my code was only tested on F407 DISCOVERY.
I did, I just put the trace in the reverse order on my previous post.
The leaf :
__weak uint32_t HAL_GetTick(void)
{
return uwTick;
}
Here is the archive.