This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: Different section placement for kernel and application


Hi,

On 2011-01-28, Grant Edwards <grant.b.edwards@gmail.com> wrote:
> I'm curious why you want to do this. What benefit does it provide?

I have to link a C++ Application to eCos (with FreeBSD Stack and uSTL) on a STM32 derived board. 
The footprint is to big to run it from the internal flash. So we decided to run it from external RAM. 
Unfortunately the performance regarding IRQ handling of a RAM Application is too bad:
Using the timers test from the STM32 variant HAL, I've set only TIM1 active and then varied the update
interrupt period. It turned out, that with a period of 20msec. the IRQ handler run into an Assertion in
the post_dsr() function:
ASSERT FAIL: <5>intr.cxx[292]void Cyg_Interrupt::post_dsr() DSR list is not empty but its head is 0

Doing the same test with a ROM Application, the period can be lowered to 50usec.

So I'm trying to move the eCos library that contains the ISRs, DSRs etc. to the Internal Flash while keeping
the rest of the application (that has no ISRs and DSRs) still in the external RAM.

I hope this Setup will improve the IRQ handling.

Greetings,

Martin

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]