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

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

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

1,119 次查看
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

标签 (1)
标记 (2)
0 项奖励
回复
1 回复

1,025 次查看
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 项奖励
回复