|
From: Alexander B. <ale...@ge...> - 2016-03-30 18:26:18
|
Hello, On 30.03.2016 19:16, Daniel Waddington wrote: > I'm trying to do bare bones process creation without using the Child or > Process helper classes (I'm toying around with serialization ideas). I > tried to construct something similar to > http://genode.org/documentation/architecture/process > but I can't seem to get it to work (error = exception base not specified on > nova32). Some base-* platforms implement the startup of threads slightly differently than described, e.g. base-foc [0] and base-nova [1]. If you really want to have portable code, you should stay with the thread implementation of the base library as we provide per base-* platform. Nevertheless - I presume, that you already try to bring up a second thread (in this case the message can be printed) and that you are missing a call to cpu_session->state() (see Thread_base::start in [1]). The state() call tells core some nova specific information (start/base of exception portal selector for the new thread) in order to successfully start a new thread. The base exception portal selector (sel_exc_base) must not be zero (because the main thread already occupies [0-31]). Hope it helps, Alex. [0] repos/base-nova/src/base/thread/thread_nova.cc [1] repos/base-foc/src/base/thread/thread_start.cc |