Download Virtuoso User Manual

Transcript
Predefined drivers
■
speed: SSPEED for single speed, DSPEED for double speed.
For updates on the status of the bidirectional link driver, check the readme
file included with your release.
23.1.4. Raw Link drivers
void RawLinkDMA (int link_no, int buffer_no, int speed);
This is the RAW DMA link driver for the link ports.
The arguments:
■
■
link_no, buffer_no: link/buffer you wish to use.
speed: SSPEED for single speed, DSPEED for double speed.
This driver does not implement any protocol, it allows the programmer to
transfer (receive and transmit) specified amounts of data over the link port.
Also, it is not allowed to use a RawLinkDMA on a link that is used as a
NETLINK.
The services which use this driver are:
■
■
KS_Linkin(W) (int buffer, int length, void *addr);
KS_Linkout(W) (int buffer, int length, void *addr);
The specified lengths are in WORDS, not bytes.
23.1.5. Common remark for all link drivers
It is possible to assign any link port to any link buffer. The driver will check if
the requested buffer is already assigned to any other link. If so, it will simply
return, and the driver is not loaded. This could prevent your application from
running correctly, so please check the buffer assignments carefully.
It is now required that a section called ‘packets’ is allocated in internal memory to hold all the packets used by the kernel. This is done in the architecture
file used to link the application. This section holds command and datapackets used to communicate between the kernel and nanokernel processes.
The size of a command packet is fixed at 16 words, and the size of a data
packet is defined in ‘mainx.c’ (in bytes). If there is not enough room in this
section, the kernel will not operate correctly. Also see the provided examples.
Copyright 1996 Eonic Systems
Virtuoso Binding Manual
ADI 2 - 39
PART 3
It is currently not possible to use DSPEED drivers on rev 1.x silicon. This will
work on rev 0.6 and probably also on later (rev 2.0 and on) revisions.