AnsweredAssumed Answered

HardFault_handler in GUI_Init ()

Question asked by t.rouse on Aug 2, 2016
Latest reply on Sep 6, 2016 by t.rouse


I've just soldered a second PCB with a STM32F429ZIT6. The first PCB runs perfectly, so the code seems correct. I compile, and debug the code. The code is loaded correctly because there is any complain from Keil.

I've inherited this code from my old colleage which he currently isn't in my company, so I soldered this new board according to the schematic and I’ve resoldered all solders.

So, I’ve compile the code and load through debug and starts, goes fine untill arrives in GUI_Init which crashes!

I’ve debug the code and crashes in the last line of GUI_X_Config function:

void GUI_X_Config(void) {
  // 32 bit aligned memory area
        #ifdef GUI_BUFFER_IN_EXT_RAM
                static U32 aMemory[GUI_NUMBYTES / 4]__attribute__((at(GUI_BUFFER_ADDRESS)));
                static U32 aMemory[GUI_NUMBYTES / 4];
  // Assign memory to emWin
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  // Set default font

I go over to disassembly code and in the line 0x08003C6A BD10 POP {r4,pc} The code goes to HardFault_Handler function.

The disassembly code is below:

0x08003C5E 4803      LDR           r0,[pc,#12]  ; @0x08003C6C
0x08003C60 F7FDFF22  BL.W          GUI_ALLOC_AssignMemory (0x08001AA8)
   104:   GUI_SetDefaultFont(GUI_FONT_6X8);
0x08003C64 4802      LDR           r0,[pc,#8]  ; @0x08003C70
0x08003C66 F7FFFD81  BL.W          GUI_SetDefaultFont (0x0800376C)
   106: }
0x08003C6A BD10      POP           {r4,pc}
0x08003C6C 0000      DCW           0x0000
0x08003C6E D060      DCW           0xD060
0x08003C70 0B30      DCW           0x0B30
0x08003C72 0804      DCW           0x0804
    88: {
0x08003C74 B510      PUSH          {r4,lr}

Is it possible that the code is the problem?

If, for example, the display is not connect correctly should be the problem?

What does exactly GUI_Init function? does it check the hardware?