wiki:TBR/Website/FAQ

Version 14 (modified by JoelSherrill, on Mar 19, 2009 at 6:08:48 PM) (diff)

/* Changing the console buffer size and baud rate */ Add rtems_termios_set_initial_baud

FAQ

Some questions are answered in the General Information.

Processor-specific memory sizes of RTEMS elements

<i>For the memory sizes of RTEMS elements inside Chapter 8 of the processor-specific application supplement, are they in bytes or words?</i>

They should be in bytes.

Multiprocessor Communications Interface Layer

<i>The Multiprocessor Communications Interface Layer describes the use of global objects as a means of communication, but does that mean you can use any device (serial port, CANbus, ethernet) to act as the conduit for the MPCI packets ?</i>

Yes. The only provided driver is for shared memory.

Demonstrates of MPCI between two nodes

<i>Can you give an example application that demonstrates the implementation of the MPCI between two nodes ?</i>

The driver portion is in c/src/lib/libchip/shmdr. Each of the mptests is an example.

JAUS message set with the RTEMS OS

<i>Has anyone implemented a JAUS message set with the RTEMS OS ?</i>

Not that I know of but I do know Robert Wade. :)

Select on serial ports

<i>Does RTEMS support select() on serial ports ?</i>

No. However, there is a method to register a call back on serial communications that can be used for the same effect. ioctl( fd, RTEMS_IO_RCVWAKEUP, &wakeup);

Here is a code snippet:

void receive_callback(struct termios *tty, void * arg ) {

(void) rtems_event_send( (rtems_id) arg, EVENT_RS232_RX );

}

To install the callback:

rtems_id task; struct ttywakeup wakeup;

rtems_task_ident( RTEMS_SELF, RTEMS_LOCAL, &task); wakeup.sw_pfn = receive_callback; wakeup.sw_arg = (void *) task ; ioctl( fd, RTEMS_IO_RCVWAKEUP, &wakeup);

Changing the console buffer size and baud rate

<i>Is there some appropriate way of configuring the console buffer size (and baud rate) in bsp.h, or some way of calling the termios code to get the rate changed and buffer resized at startup ?</i>

To change the buffer size call {{{rtems_termios_bufsize</code> before the console termios driver is initialised. The call is defined in <file>libio_.h</file> in {{{cpukit/libcsupport</code>.

To change the default baud rate for the console port, call rtems_termios_set_initial_baud after calling rtems_termios_open in the device driver. The powerpc/gen5200 BSP uses this feature so the RTEMS console honors the baud rate configured via U-Boot. Later in the application you can make a termios set attribute call before you use the serial port or console. This could be in a BSP hook or {{{main</code>.

OSI protocols with RTEMS

<i>Does RTEMS support the OSI protocol stack ?</i>

RTEMS does not provide an OSI protocol stack with its released code, how-ever RTEMS does work with commercial OSI protocol stacks. This includes IP tunnelling using GRE between the RTEMS TCP/IP stack the OSI protocol stack.