[okl4-developer] from version 2.1 to 3.0: something changed with register_event? vlcd_server not working anymore
Josh Matthews
jmatthews at ok-labs.com
Wed Feb 11 06:29:53 EST 2009
Hi Dennis,
You can remove the register_event call - it was used with the Iguana event
server to allow multiple wombat's to share the LCD, and you probably don't
need it for your application.
However, Iguana has been deprecated in OKL4 3.0 - capabilities are now
fully supported in the kernel itself, and other mechanisms (such as memory
abstractions) are provided by the OKL4 library (libokl4). There are
several advantages to this approach (reduction in overhead, for example).
To properly port your 2.1 application to 3.0, I would strongly encourage
you to port it on top of libokl4 - check out the libokl4 reference manual
as a starting point
(http://wiki.ok-labs.com/downloads/release-3.0/okl4lib-ref-manual-3.0.pdf).
Let us know if you need any assistance with understanding libokl4.
Best regards,
Josh
On Tue, February 10, 2009 5:58 am, Dennis Gessner wrote:
> Hello everyone,
>
> I have some problems with porting my applications from version 2.1 to
> version 3.0. I'm using iguana and I need the vlcd-server (gta01 device).
> What I've done:
>
> edited "platform/s3c2410/tools/machines.py"
>
> -> ("s3c2410_lcd", "vlcd", memory_lcd, interrupt_lcd),
>
> so it is not commented out any more (why was it?).
>
> Now I get the following message while compiling:
>
> ----
> ./tools/build.py machine=gta01 project=iguana pyfreeze=false
> TOOLCHAIN=gnu_arm_eabi_toolchain pistachio.TOOLCHAIN=gnu_arm_toolchain
> ----
> [CC ] build/iguana/vlcd/object/src/lcd_server.o
> iguana/vlcd/src/lcd_server.c: In function 'main':
> iguana/vlcd/src/lcd_server.c:271: warning: implicit declaration of
> function 'thread_l4tid'
> iguana/vlcd/src/lcd_server.c:271: error: incompatible type for argument
> 1 of 'register_event'
> scons: *** [build/iguana/vlcd/object/src/lcd_server.o] Error 1
> scons: building terminated because of errors.
>
>
> ---- line 271 in lcd_server.c ----
> register_event(thread_l4tid(env_thread(iguana_getenv("MAIN"))), 0x1000,
> EV_WOMBAT_SWITCH);
>
> Now I tried to find out, how other iguana servers use register_event and
> found out:
>
> ---- grep "register_event(" ./ -R ----
> ./vtouch/src/touch_server.c:
> register_event(thread_l4tid(env_thread(iguana_getenv("MAIN"))), 0x1000,
> EV_WOMBAT_SWITCH);
> ./vlcd/src/lcd_server.c:
> register_event(thread_l4tid(env_thread(iguana_getenv("MAIN"))), 0x1000,
> EV_WOMBAT_SWITCH);
> ./vcom/src/com_server.c:
> register_event(thread_l4tid(thread_myself()), 0x1000, EV_WOMBAT_SWITCH);
> ./vspi/src/spi_server.c:
> register_event(thread_l4tid(env_thread(iguana_getenv("MAIN"))), 0x1000,
> EV_WOMBAT_SWITCH);
>
> But it looks like non of these servers are build anymore in version
> 3.0... Inside event/event.h register_event is defined with:
>
> -> int register_event(L4_ThreadId_t who, L4_Word_t mask, int ev);
>
> and thread_l4tid is defined:
>
> -> L4_ThreadId_t thread_l4tid(thread_ref_t server);
>
> This does not look wrong!? How can i solve this problem? Any Suggestions
> are very welcome.
>
> Best regards,
> Dennis
More information about the Developer
mailing list