Why placing .noinit section in Linker messes up the RAM vector table?

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

Why placing .noinit section in Linker messes up the RAM vector table?

572 Views
islam1
Contributor I

Hello All,

I am having a problem after adding a `.noinit` section in Linker script as mentioned in this Example, after adding it variables in this section dont get init as intended but as a consequence i realized that the ADC0 interrupt was not being triggered anymore after triggering a conversion (it works if the .noinit section is removed) , after deeper analysis i realized that the the interrupt actually is fired but the DMA7 handler is being called instead, so i thought that the VTOR register might hold a wrong address of the offset-ed RAM vector table, i checked it and it hold the correct address (as per the .map file) .

So i believe that the RAM vector table is offset-ed/messed up in a way by this section (as this section is placed right before the RAM interrupts table).

i would appreciate any help

i am using S32K146

Thanks

s32k146‌ s32k146 boot‌ #s32

Labels (1)
Tags (2)
0 Kudos
1 Reply

478 Views
jiri_kral
NXP Employee
NXP Employee

Hi, 

thanks for report. There is a bug in the example - Vector table needs to be put on address aligned to 0x400. I'm going to fix the example. Quick fix:

pastedImage_1.png 

Jiri 

0 Kudos