Hot!PIC32MX150F256L Graphics Reinitialize

Author
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
2018/02/22 10:57:59 (permalink)
0

PIC32MX150F256L Graphics Reinitialize

I have a project that uses a PIC32MX150F256L with LCC driver to control a 4.3" touch screen. It uses V1.11 Harmony Stack.
 
After long periods of run time the device stops being able to display text any widget that displays text. I've put in a support case, not received any help from the tech or graphics engineer that was on the case.
 
What I've determined:
  • The schemes are in-tact when the issue happens
  • Font's still exist in program memory
  • Characters I'm attempting to print exist in the range of the font and are null terminated
 
I've also found some major flaws in the Harmony graphics stack that should be made aware of.
 
1. gfx_primitive.c -GFX_TextCharDraw
 
// make sure characters are printable
                if(pFont == NULL)
                    statusBit = GFX_STATUS_ERROR_BIT;
                else if((GFX_UXCHAR)ch < (GFX_UXCHAR)pFont->resource.font.header.firstChar)
                    statusBit = GFX_STATUS_ERROR_BIT;
                else if((GFX_UXCHAR)ch > (GFX_UXCHAR)pFont->resource.font.header.lastChar)
                    statusBit = GFX_STATUS_ERROR_BIT;
#ifdef GFX_CONFIG_FONT_ANTIALIASED_DISABLE
                else if(pFont->resource.font.header.bpp > 1)
                    statusBit = GFX_STATUS_ERROR_BIT;
#endif
                if (statusBit == GFX_STATUS_ERROR_BIT)
                    return GFX_STATUS_SUCCESS;
                else
                    state = TC_GET_INFO;

 
You can clearly see that if there is a failure while attempting to print the character, this function will return success.
 
2. gfx_gol.cGFX_GOL_Tasks
 
switch ( obj->task )
    {
        case GFX_GOL_TASK_STATE_OPEN_MODULE:
            break;
                
        case GFX_GOL_TASK_STATE_RUNNING:

            /* process list of objects */
            GFX_GOL_ObjectListDraw(index);
            
            break;
    }

 
GFX_GOL_ObjectListDraw(index) calls the draw function associated with each gfx widget. Any widget that requires text will eventually call the GFX_TextCharDraw for each character to draw, which is the function above that doesn't return the correct value. Here inside the GFX_GOL_Tasks, the return status of whether or not an object drew is not checked.
 
 
If the return status of the ObjetListDraw function is a failure, I'd like to safely reinitialize the graphics stack. I cannot find any documentation on doing this. Has anyone done this?
#1
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/30 11:57:50 (permalink)
0
Bump

Colby Johnson
Product Design Engineer
OEM Solutions, Inc.
#2
Jim Nickerson
User 452
  • Total Posts : 5842
  • Reward points : 0
  • Joined: 2003/11/07 12:35:10
  • Location: San Diego, CA
  • Status: online
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 07:06:48 (permalink)
0
I wonder if you have opened a support ticket at https://support.microchip.com
#3
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 08:02:02 (permalink)
0
Yes, case number 00277864. I closed it after no response from Microchip for an extended period of time. There was no resolution.

Colby Johnson
Product Design Engineer
OEM Solutions, Inc.
#4
Jim Nickerson
User 452
  • Total Posts : 5842
  • Reward points : 0
  • Joined: 2003/11/07 12:35:10
  • Location: San Diego, CA
  • Status: online
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 08:03:34 (permalink)
0
I encourage you to try again with a new case
#5
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 08:08:49 (permalink)
0
I have had a case open with Microchip since January with no resolution. The most recent three cases I've submitted have had no useful information presented or were a no response.
 
Last time I had a case open about this issue "the information was being passed on to the graphics team."

Colby Johnson
Product Design Engineer
OEM Solutions, Inc.
#6
Jim Nickerson
User 452
  • Total Posts : 5842
  • Reward points : 0
  • Joined: 2003/11/07 12:35:10
  • Location: San Diego, CA
  • Status: online
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 08:35:23 (permalink)
0
Have you tried with the latest version Harmony ?
 
#7
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 10:56:15 (permalink)
0
Moving an in-production project on V1.11 of harmony (11 screens, 45 buttons and 61 static text objects. 223k program memory usage and 13k data) on an MX150F256L chip to v2? That's not a possible move. V1.11 is supposed to be the supported version of legacy Harmony.

Colby Johnson
Product Design Engineer
OEM Solutions, Inc.
#8
Jim Nickerson
User 452
  • Total Posts : 5842
  • Reward points : 0
  • Joined: 2003/11/07 12:35:10
  • Location: San Diego, CA
  • Status: online
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 12:07:54 (permalink)
0
I wonder if you have provided Microchip with a sample device and software that will fail in a reproducible manner ?
If they can not see the problem it will be quite difficult to fix.
I wonder if you have contacted your FAE" ?
#9
cjohnson
Starting Member
  • Total Posts : 31
  • Reward points : 0
  • Joined: 2017/04/27 11:55:47
  • Location: 0
  • Status: offline
Re: PIC32MX150F256L Graphics Reinitialize 2018/10/31 12:59:19 (permalink)
0
There was enough information added to that case mentioned above to investigate issues on Microchips side. It's the same information provided in the OP.
 
A physical device has been shipped to Microchip in the past (not this case), but in more recent cases the Microchip tech has not asked for a physical device.

Colby Johnson
Product Design Engineer
OEM Solutions, Inc.
#10
Jump to:
© 2019 APG vNext Commercial Version 4.5