Thursday 19 February 2009

About Optional OAL Functions

Setting up a new hardware is always fun.

You have to start with OEMInit() but you cannot debug it because KITL isn't running at this time.

All you have is some serial output and some LEDs blinking. But wait, there is no blinking ...
In OEMInit() you may initialize some optional OAL functions by assigning some global pointers.
Under CE 6 this pointers are collected to the global struct g_pOemGlobal.

I remember the first days of CE 6 with a lot of porting hints for BSP developers. But some knowledge must have vanished. You can try to search the online help for g_pOemGlobal. No results 8-(

But you can also have a look at the private code: OemGlobal.c unveils the struct and it's default values.
Now it's easy to port this CE 5 line from OEMInit():

pWriteDebugLED = OEMWriteDebugLED;

to this under CE 6:

g_pOemGlobal->pfnWriteDebugLED = OEMWriteDebugLED;

The alive LED is back to life now and I'm happy with my powerful grep tool.

Tschüß Holger

No comments: