<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC MicrocontrollersのトピックRe: emWin gets stuck in GUI_Init</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515144#M1044</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Mon Jun 01 07:21:14 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;So hard faults are typically caused by stack overflow or being out of heap. Although focussed on debugging with LPCXpresso, you may find this useful background:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fdebugging-hard-fault" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/debugging-hard-fault&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And again, although I can't give you generic GCC advice, the following LPCXpresso FAQs may give you some clues on things to look at in your setup:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fheap-checking-redlib" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/heap-checking-redlib&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fstartup-code-interrupt-handlers" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/startup-code-interrupt-handlers&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fown-linker-scripts" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/own-linker-scripts&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso Support&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:18:00 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:18:00Z</dc:date>
    <item>
      <title>emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515140#M1040</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Valametti on Wed May 27 05:02:07 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a project for LPC1768 mbed platform that draws simple graphics into Sharp memory LCD using prebuild emWin library.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I exported the code from mbed online compiler and compiled it using using LPCXpresso. It works great, although first I had to play with library settings in order to get LPCXpresso to find the correct emWin library.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My company is using plain make and arm-none-eabi-g++. Therefore I exported the project also to GCC (Arm embedded). After getting the libraries right, the code compiles and runs, but gets stuck in GUI_Init().&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any idea what's wrong? I don't know if the code crashes or is in some infinite loop. The mbed lights don't blink.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Below, there are snippets of the emWin config files and main.cpp I have. They include some logging:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;GUI_X.c:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "GUI.h"
#include "trace.h"

volatile GUI_TIMER_TIME OS_TimeMS;

void GUI_X_InitOS(void)&amp;nbsp;&amp;nbsp;&amp;nbsp; { /*OS_CreateRSema(&amp;amp;RSema);*/&amp;nbsp;&amp;nbsp;&amp;nbsp; }
void GUI_X_Unlock(void)&amp;nbsp;&amp;nbsp;&amp;nbsp; { /*OS_Unuse(&amp;amp;RSema);*/ }
void GUI_X_Lock(void)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { /*OS_Use(&amp;amp;RSema);*/&amp;nbsp; }
U32&amp;nbsp; GUI_X_GetTaskId(void) { return 0; /*(U32)OS_GetTaskID();*/ }


GUI_TIMER_TIME GUI_X_GetTime(void) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("GUI_X_GetTime\r\n");
&amp;nbsp; return OS_TimeMS;
}

void GUI_X_Delay(int ms) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("GUI_X_Delay %d\r\n", ms);
&amp;nbsp; int tEnd = OS_TimeMS + ms;
&amp;nbsp; while ((tEnd - OS_TimeMS) &amp;gt; 0);
}

void GUI_X_Init(void) { DEBUG("GUI_X_Init\r\n"); }

void GUI_X_ExecIdle(void) { DEBUG("GUI_X_ExecIdle\r\n");}

void GUI_X_Log&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (const char *s) { DEBUG("Log: %s\r\n", s); }
void GUI_X_Warn&amp;nbsp;&amp;nbsp;&amp;nbsp; (const char *s) { DEBUG("Warn: %s\r\n", s); }
void GUI_X_ErrorOut(const char *s) { DEBUG("ErrorOut: %s\r\n", s); }
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;GUIConf.c:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdint.h&amp;gt;
#include "GUI.h"
#include "trace.h"

#define GUI_NUMBYTES&amp;nbsp; 1024 * 4

#define GUI_BLOCKSIZE 0x128

void GUI_X_Config(void) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("GUI_X_Config \r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp; static uint8_t aMemory[GUI_NUMBYTES];

&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_SetDefaultFont(GUI_FONT_8X16);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LCDConf.c:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "GUI.h"
#include "GUIDRV_Lin.h"
#include "trace.h"

#define XSIZE_PHYS 416
#define YSIZE_PHYS 240

#define COLOR_CONVERSION GUICC_1

#define DISPLAY_DRIVER GUIDRV_LIN_1

void LCD_X_Config(void) {

&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("LCD_X_Config");

&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_SetVSizeEx(0, XSIZE_PHYS, YSIZE_PHYS);

}

int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("LCD_X_DisplayDriver layer: %x, cmd: %x, data %p\r\n", LayerIndex, Cmd, pData);
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (Cmd)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case LCD_X_INITCONTROLLER: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default: {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;main.cpp:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
int main(void) {
...
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("START\r\n");
...
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("Entering GUI_Init\r\n");
&amp;nbsp;&amp;nbsp;&amp;nbsp; led4 = GUI_Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp; DEBUG("Exited GUI_Init\r\n");
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The output logs are as following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso, Works OK:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
START
Entering GUI_Init
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_Init()
GUI_X_Config 
LCD_X_ConfigLCD_X_DisplayDriver layer: 0, cmd: 7, data 0x10007b28
GUI_X_Init
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_Init...
LCD_X_DisplayDriver layer: 0, cmd: 1, data 0x0
LCD_X_DisplayDriver layer: 0, cmd: 4, data 0x10007b08
LCD_X_DisplayDriver layer: 0, cmd: 4, data 0x10007b08
LCD_X_DisplayDriver layer: 0, cmd: 5, data 0x0
LCD_X_DisplayDriver layer: 0, cmd: 3, data 0x10007b38
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_ALLOC_Alloc... requesting %d, %d avail 0x0000002C 0x00000838
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_ALLOC_AllocNoInit... requesting %d, %d avail 0x0000002C 0x00000844
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_ALLOC_AllocNoInit : Handle 0x00000002
Exited GUI_Init
LCD_X_DisplayDriver layer: 0, cmd: 2, data 0x10007b64
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;GCC Arm Embedded, gets stuck in GUI_Init()&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
START
Entering GUI_Init
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GUI_Init()
GUI_X_Config 
LCD_X_ConfigLCD_X_DisplayDriver layer: 0, cmd: 7, data 0x10007b30
GUI_X_Init
Log: 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LCD_Init...
LCD_X_DisplayDriver layer: 0, cmd: 1, data 0
LCD_X_DisplayDriver layer: 0, cmd: 4, data 0x10007b10
LCD_X_DisplayDriver layer: 0, cmd: 4, data 0x10007b10
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:17:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515140#M1040</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:17:57Z</dc:date>
    </item>
    <item>
      <title>Re: emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515141#M1041</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Wed May 27 05:26:38 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;So the obvious difference between an LPCXpresso IDE project and a vanilla GCC build that you probably want to compare are going to be:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Linker scripts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Startup code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Library usage (e.g Newlib vs Newlib Nano - I assume as you are exporting from mbed this is all C++, so no Redlib library usage)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4) Heap and stack location and potentially size.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Looking at the two linker map files would be where I would start.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso Support&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:17:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515141#M1041</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:17:58Z</dc:date>
    </item>
    <item>
      <title>Re: emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515142#M1042</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Valametti on Thu May 28 23:18:03 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for tips. The linker scripts and the map files are different, indeed. However I don't know them well enough to spot the problems. Is there any way to see, if I'm running out of stack or RAM?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:17:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515142#M1042</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515143#M1043</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Valametti on Mon Jun 01 05:31:29 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Well, It's not any infinite loop, but hard fault. I took some debug prints and got the following results: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
extern "C" void HardFault_Handler() {
&amp;nbsp;&amp;nbsp; DEBUGLN("In Hard Fault Handler\n");
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;HFSR = 0x%08lx\n", SCB-&amp;gt;HFSR);
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;DFSR = 0x%08lx\n", SCB-&amp;gt;DFSR);
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;CFSR = 0x%08lx\n", SCB-&amp;gt;CFSR);
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;MMFAR = 0x%08lx\n", SCB-&amp;gt;MMFAR);
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;BFAR = 0x%08lx\n", SCB-&amp;gt;BFAR);
&amp;nbsp;&amp;nbsp; DEBUGLN("SCB-&amp;gt;AFSR = 0x%08lx\n", SCB-&amp;gt;AFSR);

&amp;nbsp;&amp;nbsp; while(1);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Outputs:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
In Hard Fault Handler

SCB-&amp;gt;HFSR = 0x40000000

SCB-&amp;gt;DFSR = 0x00000008

SCB-&amp;gt;CFSR = 0x00000400

SCB-&amp;gt;MMFAR = 0xe000ed34

SCB-&amp;gt;BFAR = 0xe000ed38

SCB-&amp;gt;AFSR = 0x00000000

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;Is this related to emWin, or something else? "SCB-&amp;gt;CFSR = 0x00000400" Does that indicate that the fault happened somewhere before? &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Finfocenter.arm.com%2Fhelp%2Findex.jsp%3Ftopic%3D%2Fcom.arm.doc.dui0552a%2FCihcfefj.html" rel="nofollow noopener noreferrer" target="_blank"&gt;http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/Cihcfefj.html&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515143#M1043</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515144#M1044</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Mon Jun 01 07:21:14 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;So hard faults are typically caused by stack overflow or being out of heap. Although focussed on debugging with LPCXpresso, you may find this useful background:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fdebugging-hard-fault" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/debugging-hard-fault&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And again, although I can't give you generic GCC advice, the following LPCXpresso FAQs may give you some clues on things to look at in your setup:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fheap-checking-redlib" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/heap-checking-redlib&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fstartup-code-interrupt-handlers" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/startup-code-interrupt-handlers&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.lpcware.com%2Fcontent%2Ffaq%2Flpcxpresso%2Fown-linker-scripts" rel="nofollow" target="_blank"&gt;http://www.lpcware.com/content/faq/lpcxpresso/own-linker-scripts&lt;/A&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXpresso Support&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515144#M1044</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:00Z</dc:date>
    </item>
    <item>
      <title>Re: emWin gets stuck in GUI_Init</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515145#M1045</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Valametti on Tue Jun 02 05:28:59 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I ported the configuration to LPCXpresso and the same problem happens there also. I tried to move the display frame buffer and emWin's memory block to AHB RAM block to free some memory. Seems that emWin (or someone else) doesn't like that. I get hard fault again. Can you tell there are some restrictions of the data location for the prebuilt emWin library?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The only change I made was that I placed __BSS(RAM2) statements in front of two variables.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;

__BSS(RAM2) FrameBuffer buffer; //Global variable

... and

void GUI_X_Config(void) {
__BSS(RAM2) static uint8_t aMemory[GUI_NUMBYTES];
...
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the map file tells the variables should be about in the correct place:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
...
.bss_RAM2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007c000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x48c0
 *(.bss.$RAM2*)
 .bss.$RAM2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007c000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x30c0 ./src/main.o
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007c000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer
 .bss.$RAM2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007f0c0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1800 ./emWin_Config/GUIConf.o
...
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:18:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/emWin-gets-stuck-in-GUI-Init/m-p/515145#M1045</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:18:01Z</dc:date>
    </item>
  </channel>
</rss>

