usbs-serial-using.html
来自「ecos3.0 beta 的官方文档,html格式」· HTML 代码 · 共 360 行
HTML
360 行
<!-- Copyright (C) 2009 Free Software Foundation, Inc. -->
<!-- This material may be distributed only subject to the terms -->
<!-- and conditions set forth in the Open Publication License, v1.0 -->
<!-- or later (the latest version is presently available at -->
<!-- http://www.opencontent.org/openpub/). -->
<!-- Distribution of the work or derivative of the work in any -->
<!-- standard (paper) book form is prohibited unless prior -->
<!-- permission is obtained from the copyright holder. -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>API Function</TITLE
><meta name="MSSmartTagsPreventParsing" content="TRUE">
<META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="eCos Reference Manual"
HREF="ecos-ref.html"><LINK
REL="UP"
TITLE="eCos Support for USB Serial like Peripherals"
HREF="io-usb-slave-serial.html"><LINK
REL="PREVIOUS"
TITLE="Host Configuration"
HREF="usbs-serial-host-config.html"><LINK
REL="NEXT"
TITLE="eCos Synthetic Target"
HREF="hal-synth-arch.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>eCos Reference Manual</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="usbs-serial-host-config.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="hal-synth-arch.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="USBS-SERIAL-USING"
></A
>API Function</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN17635"
></A
><H2
>Name</H2
>usbs_serial_start, usbs_serial_init, usbs_serial_start, usbs_serial_wait_until_configured, usbs_serial_is_configured, usbs_serial_start_tx, usbs_serial_wait_for_tx, usbs_serial_tx, usbs_serial_start_rx, usbs_serial_wait_for_rx, usbs_serial_rx, usbs_serial_state_change_handler -- eCos USB Serial like Peripherals API
</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN17649"
></A
><H2
>Synopsis</H2
><DIV
CLASS="FUNCSYNOPSIS"
><P
></P
><A
NAME="AEN17650"
></A
><TABLE
BORDER="5"
BGCOLOR="#E0E0F0"
WIDTH="70%"
><TR
><TD
><PRE
CLASS="FUNCSYNOPSISINFO"
>#include <cyg/io/usb/usbs_serial.h>
</PRE
></TD
></TR
></TABLE
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_start
</CODE
>(void);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_init
</CODE
>(usbs_serial * ser, usbs_tx_endpoint * tx_ep, usbs_rx_endpoint * rx_ep);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_wait_until_configured
</CODE
>(void>);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>cyg_bool
usbs_serial_is_configured
</CODE
>(void);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_start_tx
</CODE
>(usbs_serial * ser, const void *buf, int * n);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>int
usbs_serial_wait_for_tx
</CODE
>(usbs_serial * ser);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_start_rx
</CODE
>(usbs_serial * ser, const void *buf, int * n);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>int
usbs_serial_wait_for_rx
</CODE
>(usbs_serial * ser);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>int
usbs_serial_rx
</CODE
>(usbs_serial * ser, const void *buf, int * n);</CODE
></P
><P
><CODE
><CODE
CLASS="FUNCDEF"
>void
usbs_serial_state_change_handler
</CODE
>(usbs_control_endpoint * ep, void * data, usbs_state_change change, int prev_state);</CODE
></P
><P
></P
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="USBS-SERIAL-API-DESCRIPTION"
></A
><H2
>Description</H2
><P
> For examples of how to use this API see the
files <TT
CLASS="FILENAME"
>.../tests/usbserial_echo.c</TT
>
and <TT
CLASS="FILENAME"
>.../tests/usb2serial.c</TT
>
</P
><P
> The first function that needs calling
is <CODE
CLASS="FUNCTION"
>usbs_serial_start()</CODE
>. This will initialise
the eCos USB slave layer, creating all the enumeration data and
then let the host know that the device exists.
</P
><P
> Once the USB subsystem has been started it is necessary to wait
for the host to configure the device using the
function <CODE
CLASS="FUNCTION"
>usbs_serial_wait_until_configured()</CODE
>. The
host will assign the device an ID and then load the appropriate
device driver in the host in order to make use the device.
</P
><P
> Once the device is configured it is then possible to make use of
it, i.e. send and receive data. This transfer of data can be
accomplished either asynchronously or synchronously. It is also
possible to mix asynchronously and synchronously between
receiving and sending data.
</P
><P
> To perform asynchronous operations the
functions <CODE
CLASS="FUNCTION"
>usbs_serial_start_rx()</CODE
>
and <CODE
CLASS="FUNCTION"
>usbs_serial_start_tx()</CODE
> is used to
start the operation. These functions start the necessary
actions and then return immediately. At a later time the
functions <CODE
CLASS="FUNCTION"
>usbs_serial_wait_for_tx()</CODE
>
or <CODE
CLASS="FUNCTION"
>usbs_serial_wait_for_rx()</CODE
> should be
called. These will, if necessary, block and then return the
status and any data for the previously started asynchronous
call.
</P
><P
> To perform synchronous operations the
functions <CODE
CLASS="FUNCTION"
>usbs_serial_rx()</CODE
>
and <CODE
CLASS="FUNCTION"
>usbs_serial_tx()</CODE
> are used. These
functions will block until the requested action is complete.
</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="usbs-serial-host-config.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="ecos-ref.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="hal-synth-arch.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Host Configuration</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="io-usb-slave-serial.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>eCos Synthetic Target</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?