from version 2.1 to 3.0: something changed with register_event? vlcd_server not working anymore

2 messages Options
Embed this post
Permalink
Dennis Gessner

from version 2.1 to 3.0: something changed with register_event? vlcd_server not working anymore

Reply Threaded More More options
Print post
Permalink
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

_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Josh Matthews

Re: from version 2.1 to 3.0: something changed with register_event? vlcd_server not working anymore

Reply Threaded More More options
Print post
Permalink
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



_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer