System halted while creating embedded wizard root object

asked Nov 20, 2018 in Platform Packages by cagriyeleser

We are a problem while creating embedded wizard root object. EW is returned as system halted [MemManage_Handler]
commented Nov 20, 2018 by mli
Hi cagriyeleser,

could you please describe more detailed, what are you doing?

For example:
Which board is used?
Which example?
Which toolchain is used?
Which versions of Embedded Wizard and toolchain is used?

Kind Regards,

2 Answers

0 votes
answered Nov 20, 2018 by cagriyeleser
Which board is used? STM32F746IET6 176LQFP (not board, my own board with changed pins)
Which example? Hello world
Which toolchain is used? GCC
Which versions of Embedded Wizard and toolchain is used? 9.0

This board is working fine with Keil example with name "emWin Example (STM32F746G-Discovery)" (by changing pins sdram and LTDC, QSPI pins are same)
0 votes
answered Nov 23, 2018 by Manfred Schweyer


based on the provided information, it is difficult to give good advices.

In case you are using a custom specific board, it is important to ensure that all components (SDRAM, QSPI flash) are running reliable before trying to bring-up a complete GUI application.

Have tried the memory test in order to ensure that timing and refresh of SDRAM are ok?

Best regards,


commented Nov 23, 2018 by cagriyeleser
We did that memory test and no passed. By changing following parameters, odd addresses are not passed but even addresses are OK.

We use W9864G6KH as SDRAM.  We set values as the following for this SDRAM. QSPI is not active for now.

#define SDRAM_DEVICE_ADDR  ((uint32_t)0xC0000000)
#define SDRAM_DEVICE_SIZE  ((uint32_t)0x400000)
#define SDCLOCK_PERIOD                   FMC_SDRAM_CLOCK_PERIOD_2
#define REFRESH_COUNT                    ((uint32_t)0x0603)

  Timing.LoadToActiveDelay    = 2;
  Timing.ExitSelfRefreshDelay = 6;
  Timing.SelfRefreshTime      = 4;
  Timing.RowCycleDelay        = 6;
  Timing.WriteRecoveryTime    = 2;
  Timing.RPDelay              = 2;
  Timing.RCDDelay             = 2;

  sdramHandle.Init.SDBank             = FMC_SDRAM_BANK1;
  sdramHandle.Init.ColumnBitsNumber   = FMC_SDRAM_COLUMN_BITS_NUM_8;
  sdramHandle.Init.RowBitsNumber      = FMC_SDRAM_ROW_BITS_NUM_12;
  sdramHandle.Init.MemoryDataWidth    = SDRAM_MEMORY_WIDTH;
  sdramHandle.Init.InternalBankNumber = FMC_SDRAM_INTERN_BANKS_NUM_4;
  sdramHandle.Init.CASLatency         = FMC_SDRAM_CAS_LATENCY_2;
  sdramHandle.Init.WriteProtection    = FMC_SDRAM_WRITE_PROTECTION_DISABLE;
  sdramHandle.Init.SDClockPeriod      = SDCLOCK_PERIOD;
  sdramHandle.Init.ReadBurst          = FMC_SDRAM_RBURST_ENABLE;
  sdramHandle.Init.ReadPipeDelay      = FMC_SDRAM_RPIPE_DELAY_0;
commented Nov 23, 2018 by Manfred Schweyer
Can you ensure that the hardware layout is correct?
commented Nov 23, 2018 by cagriyeleser
I tried an example no use SDRAM and work fine. But example with SDRAM has problem. I controlled hardware again and again and true.
commented Nov 23, 2018 by cagriyeleser
Additively, we tried Keil SDRAM test example for some addresses test OK.

I needed approximately 3MB. Keil example tests 0x9000 bytes addresses. First addresses is OK. I changed the code and revised as a loop (for 3MB) to try more addresses, and test result is fail.

Ask Embedded Wizard

Welcome to the question and answer site for Embedded Wizard users and UI developers.

Ask your question and receive answers from the Embedded Wizard support team or from other members of the community!

Embedded Wizard Website | Privacy Policy | Imprint