How to use __attribute__ to allocate a buffer for vector interrupt

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to use __attribute__ to allocate a buffer for vector interrupt

461 Views
InHome
Contributor III

Hello developers,
I am developing an RTOS on MPC4857G e200 from NXP, the compiler used is a GCC gnu compiler.
I am using the __attribute__ keyword to affect a buffer to the interrupt_ram.
This is the line code:

static TpfnDCore_eHandler interruptBuffer[754] __attribute__ ((section ("interrupts_ram")));
and the interrupts_ram in the linker file is :
.interrupts_ram : ALIGN(4096)
{
__VECTOR_RAM = .;
*(.m_interrupts_ram)
. += __RAM_VECTOR_TABLE_SIZE;
} > m_data
the size is: __RAM_VECTOR_TABLE_SIZE = 0xC00;

my buffer has all the 754 inteterrupt adresses elments of void(*str)(void).

When I compile the code I got an error message:

Description Resource Path Location Type
Ld error: section interrupts_ram LMA [01006550,01007117] overlaps section .sdata LMA RTOS_Z4_0 C/C++ Problem

The size of the ram is 0xc00 is it a 0xc00 bites or words(32)?

I think the memory is not sufficient to store my buffer in that section, how I could add more space to the ram interrupt section?

Thank you in advance,

 

0 Kudos
Reply
0 Replies