none
Assert Failure, flat display driver RRS feed

  • Question

  • Hello,

    I am trying to add a flat display driver and run it for the first time. I got the following debug output:

    PID:00400002 TID:01A70006 +DisplayInit((NULL), 1)
    PID:00400002 TID:01A70006 -DisplayInit(rc = 1)
    PID:00400002 TID:01A70006 +DrvEnableDriver(0x00040001, 124, 0xc4416140, 0xcc76f560)
    PID:00400002 TID:01A70006 -DrvEnableDriver(rc = 1)
    PID:00400002 TID:01A70006 +FlatGPE::NumModes()
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f434, 4, 0xcc76f430, 4, 0x0)
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 -FlatGPE::NumModes(count = 1)
    PID:00400002 TID:01A70006 +FlatGPE::NumModes()
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f434, 4, 0xcc76f430, 4, 0x0)
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 -FlatGPE::NumModes(count = 1)
    PID:00400002 TID:01A70006 +FlatGPE::GetModeInfo(0xc4416510, 0)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f404, 8, 0x0, 0, 0xcc76f400)
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 0)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f404, 8, 0xc4416540, 56, 0xcc76f400)
    PID:00400002 TID:01A70006 commandGetModeInfo
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 -FlatGPE::GetModeInfo(sc = 0x00000000)
    PID:00400002 TID:01A70006 +OEMIoControl(0x10100fc, 0x0, 0, 0xcc76f42c, 12, 0xcc76f418)
    PID:00400002 TID:01A70006 OEMIoControl: Unsupported Code 0x10100fc - device 0x0101 func 63
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 0)
    PID:00400002 TID:01A70006 +FlatGPE::SetMode(0, 0xcc76f6c4)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f308, 8, 0x0, 0, 0xcc76f304)
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 0)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f308, 8, 0xc44165e0, 56, 0xcc76f304)
    PID:00400002 TID:01A70006 commandGetModeInfo
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f308, 8, 0x0, 0, 0x0)
    PID:00400002 TID:01A70006 commandSetMode  stub
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 -FlatGPE::SetMode(sc = 0x00000000)
    PID:00400002 TID:01A70006 +FlatGPE::GetModeInfo(0xcc76f418, 0)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f38c, 8, 0x0, 0, 0xcc76f388)
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 0)
    PID:00400002 TID:01A70006 +OEMIoControl(0x101011c, 0xcc76f38c, 8, 0xc4416c60, 56, 0xcc76f388)
    PID:00400002 TID:01A70006 commandGetModeInfo
    PID:00400002 TID:01A70006 -OEMIoControl(rc = 1)
    PID:00400002 TID:01A70006 -FlatGPE::GetModeInfo(sc = 0x00000000)
    PID:00400002 TID:01A70006 ASSERT FAILURE at d:\chelanrtm14\private\winceos\coreos\gwe\mgdi\base\driver.cpp line 792

    That is the last debug message from the flat display driver.

    What is wrong with it? I mean the last line. I don't have access to the private part. BTW are there any constrains from hardware to use this display driver (Can it be used with any board with some modifications of course)? Is there any good documentation available for the flat driver?

    Thanks 

    Friday, June 17, 2011 9:24 AM

All replies

  • The hflat display device driver can be used if your HW has a flat (contiguous) frame buffer and if the OAL of your BSP implement the required commands (see %_WINCEROOT%\PUBLIC\COMMON\OAK\INC\ddhal.h) which the driver sends as IOCTL's

     

    http://blogs.msdn.com/b/ce_base/archive/2007/02/07/hal-flat-display-driver-demystified.aspx


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Friday, June 17, 2011 12:13 PM
  • Thanks a lot. I have checked documentation for my hardware and I found no information about a type of a frame buffer. What is the flat frame buffer? BTW I am using MCDE DSI.
    Friday, June 17, 2011 1:40 PM
  • The HFLAT is based on GPE classes which assumes a flat-frame buffer. Flat-frame implies that all display device memory must be in a single block of contiguous memory
    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Friday, June 17, 2011 3:09 PM
  • It is said that

    Sample code for how to write OAL part of the HAL Flat display driver can be found under:

     

    Windows CE 5.0:

    %_WINCEROOT%\Platform\DBAu1100\src\kernel\oal\lcd.c

     

    Windows CE 6.0:

    %_WINCEROOT%\Platform\Aspen7750R\src\oal\oallib\ddi.c


    But where can I find it in Windows CE 7.0? I need an example how to write hardware related code in the OAL level.

    thanks

    Thursday, June 23, 2011 8:16 AM
  • You can find a sample implementation in %_WINCEROOT%\platform\BSPtemplate. If you do not have it, http://blogs.msdn.com/b/ce_base/archive/2008/05/30/bsp-template-now-available-for-ce-6-0-ce6r2.aspx.


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Thursday, June 23, 2011 9:02 AM
  • In the template there are stub functions that have to be implemented. It would be nice to see actual implementation of them at least for some hardware. Were they also empty in Windows CE 6.0 for Aspen7750R platform? I have no idea how to inform the flat driver about low level operations of my display hardware (initialization of the chips etc).
    Thursday, June 23, 2011 11:29 AM
  • I admiy that there is very few information about this topic: you can try to retrieve on the web the BSP's mentioned in the docs.

    takr in account that the HAL DDI handlers implementation is very HW specific: looking at the code for, let's say, an SH4 processor may help you a little but it's unlikely something you can't reuse for your BSP...


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com
    Thursday, June 23, 2011 12:27 PM
  • I tried to find the BSPs in the Internet, but it seems that they are not available. Could anybody upload the files (

    Windows CE 5.0:

    %_WINCEROOT%\Platform\DBAu1100\src\kernel\oal\lcd.c

     

    Windows CE 6.0:

    %_WINCEROOT%\Platform\Aspen7750R\src\oal\oallib\ddi.c) somewhere? Or send them to me by e-mail (jker987@gmail.com). I will be infinitely grateful.

    Friday, June 24, 2011 1:12 PM