nxp-mcuxpresso/mcux-sdk

[BUG] MIMXRT1176 StartupCode may not set Vector Table

Closed this issue · 4 comments

Describe the bug
If __USE_CMSIS is defined, but __MCUXPRESSO is not, the startup code does not set the Vector Table

Only define__USE_CMSIS as symbol

  • Environment (please complete the following information):
    • Tag/Commit hash: [MCUX_2.11.0]
    • Toolchain: [ARMGCC 10.3-2021.07]
    • Board/SoC: [MIMXRT1176 on MIMXrt1170-EVK]
    • Example [iled_blinky_cm7]
  • Steps to reproduce the behavior:
    1. In MCUXpresso use the excample MIMXRT1176 iled_blinky_cm7
    2. Remove define __MCUXPRESSO from the C Build Settings
    3. Set a breakpoint in SystemTick_Handler and run the application.
    4. After some time, when pausing the debug run, the programm counter register does not point to an valid adress.

Expected behavior
The SystemTick_Handler should be called.
The startup code of LPC55S69 does work without __MCUXPRESSO

Hi @ChristianMosbach, below is feedback from developer, please help check:

"with ARMGCC, the VTOR is set in devices/MIMXRT1176/gcc/startup_MIMXRT1176_cm7.S. It doesn't rely on any macro. __MCUXPRESSO should not be defined in armgcc build.

Does it mean you are was building MCUX IDE startup devices/MIMXRT1176/mcuxpresso/startup_mimxrt1176_cm7.c with armgcc?"

Hello @mcuxsusan,

Yes, I built startup_mimxrt1176_cm7.c with armgcc.

As I said, it works with the mcuxpresso startup code for the LPC55S69.

Thank You

Hi @ChristianMosbach , startup_mimxrt1176_cm7.c is designed for mcuxpresso IDE. We have dedicated startup_MIMXRT1176_cm7.S for armgcc. In other word, building startup_mimxrt1176_cm7.c with armgcc is an invalid use case and is not qualified.
LPC55S69 happening to work doesn't mean this is a valid case.

Thank you for your answer!