Bus Fault

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a firmware project of mine. The IDE is the Ac6 System Workbench.
The target processor is an STM32F373VCT6.

I find that whenever I have a function that has within it a call to another
function this instruction sequence appears among the first instructions in
the function that does the call.

sub.w r3, sp, #12224    ; 0x2fc0
subs r3, #60    ; 0x3c
movs r2, #0
str r2, [r3, #0]

This sequence results in a Bus Fault because in the last instruction r3
points to a location in flash memory instead of a location in RAM as it
should. The details of how that happens is posted in this thread of mine
that I began when I thought this was a FREERTOS problem:
https://sourceforge.net/p/freertos/discussion/382005/thread/da34d0b6/

This instruction sequence is not just near the start thread function for
which I posted source code. It is near the start of every start thread
function in the project. If there are no function calls withing the start
thread function the above instructions disappear.

Why do these functions need to store a value of 0 at a location so far from
the current stack pointer address? What is this instruction sequence
supposed to accomplish?




--
View this message in context: http://gcc.1065356.n5.nabble.com/Bus-Fault-tp1246632.html
Sent from the gcc - Help mailing list archive at Nabble.com.



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux