I have inherited a design from a long-departed engineer that uses the eGUI/D4D library to drive a color graphic LCD. It runs on an MK70 processor that uses MQX. Development is on IAR's Embedded Workbench.
I am trying to locate the code that puts together a screen before writing it to the display. To simplify things, let's focus on the title bar, which must be filled with an application-specific string.
I stopped the debugger in function D4D_RedrawScreenObject(), which is getting ready to dispatch a message to output the new screen. I single-step down to the line before function call:
D4D_SendMessage(&msg);
Structure msg has a member: pScreen, which holds address 0x300FC, which is visible in the Locals window. It has a member: textBuff, which has a member: pText, which holds 0x300D4.
According to a comment in header file d4d_screen.h (the most explicit documentation I have found so far on this subject), pText should be a pointer to the text string I am looking for. But when I bring up 0x300D4 in the memory window, it contains 4 bytes of 0s.
However, when I single step over function call:
D4D_SendMessage(&msg);
the desired text appears in the title bar of my LCD.
Does the field get filled later, or am I looking in the wrong place?
I have located an eGUI pointer page at:
- https://community.nxp.com/docs/DOC-330064
searched the library guide at:
- http://gargy007.github.io/egui_doc/
downloaded and parsed the "Freescale Embedded GUI (D4D)" (DRM116), and the PowerPoint presentation at:
- https://www.nxp.com/docs/en/supporting-information/EGUIPRE.ppt
but find no answer to the question above.
Advance thanks for your insights.