cancel
Showing results for 
Search instead for 
Did you mean: 

In STM32L552 Nucleo-144, unable to load non secure code when call happened from secure to non secure.

MSatish
Associate II

I am working on STM32L552 Nucle0-144 board with Trustzone enabled.

Secure code starts from 0x0C000000 and non secure code vector table located at 0x08040000. After completing the initializations in secure code I am calling non secure reset handler by loading the address from 0x08040004. Here I observed in disassembly that non secure Vector table contents are all 0's (Zeros), hence not able to load the non secure initialization code. Please guide me to resolve this

1 ACCEPTED SOLUTION

Accepted Solutions
Bubbles
ST Employee

Hi @MSatish​ ,

that's not how the TZ is supposed to work.

Look at AN5347, specifically chapter 5.2 on why the access is blocked.

J

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

View solution in original post

2 REPLIES 2
Bubbles
ST Employee

Hi @MSatish​ ,

that's not how the TZ is supposed to work.

Look at AN5347, specifically chapter 5.2 on why the access is blocked.

J

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.

MSatish
Associate II

Hi @JHOUD​ , thanks for your reply.

Now I learnt that the area I am considering (0x08040000 - 0x0807ffff) as a non secure is actually configured as secure in secure area2 Watermark Registers(SECWM2_PSTRT, SECWM2_PEND). Now I have modified this area to out of the non secure code present. Now non secure code is executing as expected. Your recommendation is really helped me. Thanks a ton 🙂