Hi,
I have a display driver for my platform, but I only have the dll file, not
the source code. I also have a cec file for this driver. I added the cec
file to the catalog, and then added the driver from the catalog to my
platform. I copied the dll file to the
WINCEROOT\PLATFORM\CEPC\DRIVERS\DISPLAY\SMI directory and changed the
corresponding dirs file accordingly. I made the following changes in the
platform files:
In platform.bib file:
----------------------------------------------------------------
; @CESYSGEN IF CE_MODULES_DISPLAY
IF BSP_NODISPLAY !
IF IMG_NODISPLAY !
;
; MGDI NOP Display driver
IF BSP_DISPLAY_NOP
ddi.dll $(_FLATRELEASEDIR)\ddi_nop.dll NK SH
ENDIF
ENDIF IMG_NODISPLAY !
ENDIF BSP_NODISPLAY !
; SMI Display driver
IF BSP_DISPLAY_SMI
ddi_smi.dll $(_FLATRELEASEDIR)\ddi_smi.dll NK SH
ENDIF
; @CESYSGEN ENDIF CE_MODULES_DISPLAY
-----------------------------------------------------------
In platform.reg file:
-----------------------------------------------------------
IF BSP_DISPLAY_SMI
; @CESYSGEN IF CE_MODULES_PCI
; GWES will be able to auto-detect the display adapter if a candidate value
; points to the adapter's PCI instance. Values from Candidate1 to
Candidate32
; (decimal) are possible; GWES will examine them sequentially until it finds
; a match.
[HKEY_LOCAL_MACHINE\System\GDI\DisplayCandidates]
"Candidate5"="Drivers\\BuiltIn\\PCI\\Instance\\SMI"
; @CESYSGEN ENDIF CE_MODULES_PCI
ENDIF ; BSP_DISPLAY_SMI
IF BSP_DISPLAY_SMI
[HKEY_LOCAL_MACHINE\System\GDI\Drivers]
"Display"="ddi_smi.dll"
;
; SMI driver settings
;
[HKEY_LOCAL_MACHINE\Drivers\Display\SMI]
;; 800x600x16
"CxScreen"=dword:320
"CyScreen"=dword:258
"BPP"=dword:10
ENDIF ; BSP_DISPLAY_SMI
---------------------------------------------------
When I build my platform, I can see the ddi_smi.dll in the _FLATRELEASEDIR
and when I check the nk.bin file with viewbin, I see that the dll is built
in the image.
in the .obj file:
==== ddi_smi.dll ===============================
TOCentry (ddi_smi.dll) -------------------------
dwFileAttributes : 0x7
ftTime : 11/11/2002 15:07:22
nFileSize : 0x1A000 (106496)
ulE32Offset : 0x8062A6A4
ulO32Offset : 0x80DACFC0
ulLoadOffset : 0x81136000
e32_rom (ddi_smi.dll) --------------------------
e32_objcnt : 2
e32_imageflags : 0x212E
e32_entryrva : 0x132C8
e32_vbase : 0x1F00000
e32_subsysmajor : 0x4
e32_subsysminor : 0x14
e32_stackmax : 0x10000
e32_vsize : 0x1E000
o32_rom[0] (ddi_smi.dll) ------------------------
o32_vsize : 0x1337C
o32_rva : 0x1000
o32_psize : 0x13400
o32_dataptr : 0x80E84000
o32_realaddr : 0x1F01000
o32_flags : 0x60000020
o32_rom[1] (ddi_smi.dll) ------------------------
o32_vsize : 0x7EB0
o32_rva : 0x15000
o32_psize : 0x28CA
o32_dataptr : 0x80ED209C
o32_realaddr : 0x1F15000
o32_flags : 0xC0002040
But when I download the image to the platform and boot (using eboot.bin), I
get the following errors:
Loaded symbols for
'C:\WINCE410\PUBLIC\REGAPPDENE2\RELDIR\CEPC_X86DEBUG\GWES.EXE'
4294784007 PID:21ef5ef6 TID:21fb27d2 0x81ef51a8: Grow Gdi handle table from
0 to 64
4294784056 PID:21ef5ef6 TID:21fb27d2 0x81ef51a8: >>> Loading module ddi.dll
at address 0x01EE0000-0x01EFE000
Loaded 'C:\WINCE410\PUBLIC\REGAPPDENE2\RELDIR\CEPC_X86DEBUG\DDI.DLL', no
matching symbolic information found.
4294784063 PID:21ef5ef6 TID:21fb27d2 0x81ef51a8: Unknown: DEBUGCHK failed in
file d:\jameson\private\winceos\coreos\gwe\mgdi\base\.\driver.cpp at line
327
How can I correctly load and use this dll file? Do I have to obtain the sour
ce codes and compile them? I also tried putting the following in the files
section of the .bib file, but it didn't help and I got the same errors.
IF BSP_DISPLAY_SMI
ddi_smi.dll $(_FLATRELEASEDIR)\ddi_smi.dll NK SH
ENDIF
I will be very glad if someone can give me a hint. Thanks already,
Selin