Usage – Comtrol eCos User Manual

Page 321

Advertising
background image

Chapter 11. Porting Guide

IRQ_DISABLE

Disable debugging receive interrupts on the device.

IRQ_ENABLE

Enable debugging receive interrupts on the device.

DBG_ISR_VECTOR

Returns the ISR vector used by the device for debugging receive interrupts.

SET_TIMEOUT

Set GETC timeout in milliseconds.

FLUSH_OUTPUT

Forces driver to flush data in its buffers. Note that this may not affect hardware buffers (e.g. FIFOs).

DBG_ISR

ISR used to handle receive interrupts from the device (see ).

GETC_TIMEOUT

Read a character from the device with timeout.

Usage

The

standard

eCos

diagnostics

IO

functions

use

the

channel

procedure

table

when

CYGSEM_HAL_VIRTUAL_VECTOR_DIAG

is enabled. That means that when you use diag_printf (or the libc printf

function) the stream goes through the selected console procedure table. If you use the virtual vector function
SET_CONSOLE_COMM you can change the device which the diagnostics output goes to at run-time.

You can also use the table functions directly if desired (regardless of the

CYGSEM_HAL_VIRTUAL_VECTOR_DIAG

setting - assuming the ROM monitor provides the services). Here is a small example which changes the console to
use channel 2, fetches the comm procs pointer and calls the write function from that table, then restores the console
to the original channel:

#define T "Hello World!\n"

int

main(void)

{

hal_virtual_comm_table_t* comm;

int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);

CYGACC_CALL_IF_SET_CONSOLE_COMM(2);

comm = CYGACC_CALL_IF_CONSOLE_PROCS();

CYGACC_COMM_IF_WRITE(*comm, T, strlen(T));

CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);

217

Advertising