This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

I get a HardFault, when I call a Non-Secure function (Nucleo L552ZE-Q)

Hello everyone,

I am currently working on an OS that currently doesn't support TrustZone, where I want to do one simple task: Jump to a non-secure function and immediatly return to the secure function.

I modified the function pointer to the ns_function according to this link and configured the SAU according to this page and used the -mcmse flag, TZEN is also set. However, I get a forced Hard Fault, when I try to execute the non-secure code. Why does that happen? Is there something else I have to take into account?

I've only worked once with the Nucleo L552ZE-Q, which was the only time I ever worked with TrustZone. Furthermore, I cannot use the STM32CubeIDE, since the project was not developed with it. Also, the code for secure and non-secure should be in the same binary.

I am using version 11.2.1 of the toolchain from arm.

Thank you very much for any tips you can give me.

Parents
  • Is it required to link with the --import-cmse-lib-out, when the code is in the same file? There is an error when I am adding it to the Makefile, which I cannot pin down right now.
    Similarly, is it required to use the scatter files? I was discouraged to use them in the beginning of the project, because we are using a linker script.

    I think I should cover the points mentioning the header files. And also, the acle-functions are included. I generally covered the points mentioned in the pages above, excluding the scatter files and the --import-cmse-lib-out option.

Reply
  • Is it required to link with the --import-cmse-lib-out, when the code is in the same file? There is an error when I am adding it to the Makefile, which I cannot pin down right now.
    Similarly, is it required to use the scatter files? I was discouraged to use them in the beginning of the project, because we are using a linker script.

    I think I should cover the points mentioning the header files. And also, the acle-functions are included. I generally covered the points mentioned in the pages above, excluding the scatter files and the --import-cmse-lib-out option.

Children
No data