tree: b7e5a546e6c2c946f226fb78f1a47c3741e1a4ce [path history] [tgz]
  1. camkes-putchar-client/
  2. include/
  3. src/
  4. CMakeLists.txt
  5. README.md
  6. SerialServer.camkes
components/SerialServer/README.md

SerialServer

This is a CAmkES component that is intended to abstract over a platform's serial device and multiplex client access to it.

Dependencies

This component currently has no dependencies.

Usage

For clients to use the functionality exposed by the component, the clients will need to be connected to these CAmkES interfaces using the seL4RPCCall and seL4SerialServer connector respectively.

provides PutChar processed_putchar *or* provides PutChar raw_putchar;
provides GetChar getchar;

Additionally, this other interface needs to be connected to a TimeServer component instance.

uses Timer timeout;

This component is capable of an asynchronous data-transfer interface with the use of virtqueues, and this requires these interfaces to be connected using the seL4VirtQueues and seL4GlobalAsynchCallback connector respectively.

maybe uses VirtQueueDev read; *and* maybe uses VirtQueueDev write;
emits Callback self_read; *to* maybe consumes Callback serial_read_wait; *and* emits Callback self_write; *to* maybe consumes Callback serial_write_wait;

An example of this asynchronous interface in action can be found in the serialserver_loopback application in the camkes respository.

Supported platforms

Currently, this component supports the following platforms:

  • ARM-based platforms that have an existing serial driver implementation in libplatsupport
  • pc99

Additional platforms simply only require a corresponding serial driver to be implemented in the libplatsupport library of the util_libs respository.