Hello experts,
I am using SAM L11 (Core is Cortex-M23).I did a simple test of the interrupt.In the case of the handler was the secure world, it worked as I expected.The instruction sequences are as the follows. *(int*)(0xE000E380) = 0; *(int*)(0xE000E100) = 1; *(int*)(0xE000E200) = 1; for(i=0;i<1000;i++);However, when Interrupt Target Non-secure Register (0xE000E380) was set,the HardFault had occurred. As for SAM L11, would it be reasonable behavior? *(int*)(0xE000E380) = 1; *(int*)(0xE000E100) = 1; *(int*)(0xE000E200) = 1; /* HardFault */ for(i=0;i<1000;i++);Although I put the vector of the secure world to the non-secure world address, the phenomenon was not changed.From the specification aspect, how does it work?
Thank you and best regards,
Yasuhiko Koumoto.
With the first code arrangement, it might be possible that your Non-secure world hasn't boot up and hence Non-secure Main stack pointer has not been initialized.