#include "config.h"
#include "pic_usb.h"
#include "pic_usb_buffer_mgt.h"
#include "pic_serial.h"
#include "usb_cdc_class.h"
#include "memory.h"
Go to the source code of this file.
Ian Harris 2008 imharris [at] gmail.com
Released under the "do whatever you like with this but if it breaks, you get to keep both pieces" license
Definition in file usb_cdc_class.c.
#define req_CLEAR_COMM_FEATURE 0x04 |
Definition at line 34 of file usb_cdc_class.c.
#define req_GET_COMM_FEATURE 0x03 |
Definition at line 33 of file usb_cdc_class.c.
#define req_GET_ENCAPSULATED_RESPONSE 0x01 |
Definition at line 31 of file usb_cdc_class.c.
#define req_GET_LINE_CODING 0x21 |
Definition at line 36 of file usb_cdc_class.c.
Referenced by usb_handle_class_request(), and usb_handle_ctrl_read_class().
#define req_SEND_BREAK 0x23 |
Definition at line 38 of file usb_cdc_class.c.
#define req_SEND_ENCAPSULATED_COMMAND 0x00 |
Definition at line 30 of file usb_cdc_class.c.
#define req_SET_COMM_FEATURE 0x02 |
Definition at line 32 of file usb_cdc_class.c.
#define req_SET_CONTROL_LINE_STATE 0x22 |
#define req_SET_LINE_CODING 0x20 |
Definition at line 35 of file usb_cdc_class.c.
Referenced by usb_handle_class_request(), and usb_handle_ctrl_write_class().
typedef struct _line_coding line_coding |
typedef union _long_union long_union |
void usb_cdc_handle_tx | ( | ) |
Definition at line 197 of file usb_cdc_class.c.
References _buffer_descriptor::addr, BC8, BC9, BSTALL, cdc_tx_buffer, cdc_tx_end, cdc_tx_start, _buffer_descriptor::count, DTS, DTSEN, end_crit_sec, ep_in_bd_location, ep_in_buffer_location, ep_in_buffer_size, INCDIS, KEN, start_crit_sec, _buffer_descriptor::stat, uns16, uns8, and UOWN.
Referenced by usb_ep_data_in_callback(), and usb_SOF_callback().
void usb_cdc_print_str | ( | char * | str | ) |
Definition at line 250 of file usb_cdc_class.c.
References uns8, and usb_cdc_putc().
void usb_cdc_putc | ( | uns8 | c | ) |
Definition at line 169 of file usb_cdc_class.c.
References cdc_tx_buffer, cdc_tx_end, cdc_tx_start, kill_interrupts, and uns8.
Referenced by usb_cdc_print_str().
uns8 usb_cdc_rx_avail | ( | ) |
void usb_cdc_setup | ( | ) |
Definition at line 274 of file usb_cdc_class.c.
References _long_union::as_long, class_data, _line_coding::data_bits, _line_coding::dte_rate, _line_coding::parity, and _line_coding::stop_bits.
uns8 usb_cdc_tx_empty | ( | ) |
void usb_ep_data_in_callback | ( | uns8 | end_point, | |
uns16 | byte_count | |||
) |
Definition at line 162 of file usb_cdc_class.c.
References usb_cdc_handle_tx().
Referenced by usb_handle_transaction().
void usb_ep_data_out_callback | ( | uns8 | end_point, | |
uns8 * | buffer, | |||
uns16 | byte_count | |||
) |
Definition at line 138 of file usb_cdc_class.c.
References cdc_rx_buffer, cdc_rx_end, cdc_rx_start, serial_print_int(), serial_print_str(), and uns8.
Referenced by usb_handle_transaction().
void usb_handle_class_request | ( | setup_data_packet | sdp | ) |
Definition at line 70 of file usb_cdc_class.c.
References _setup_data_packet::bRequest, class_data, cm_CTRL_READ_DATA_STAGE_CLASS, cm_CTRL_WRITE_DATA_STAGE_CLASS, cm_CTRL_WRITE_SENDING_STATUS, control_mode, req_GET_LINE_CODING, req_SET_CONTROL_LINE_STATE, req_SET_LINE_CODING, serial_print_int(), serial_print_int_hex(), serial_print_str(), usb_send_data(), usb_send_status_ack, and _setup_data_packet::wValue.
void usb_handle_ctrl_read_class | ( | ) |
Definition at line 125 of file usb_cdc_class.c.
References _setup_data_packet::bRequest, cm_CTRL_READ_AWAITING_STATUS, control_mode, req_GET_LINE_CODING, serial_print_int(), serial_print_str(), and usb_sdp.
void usb_handle_ctrl_write_class | ( | uns8 * | data, | |
uns16 | count | |||
) |
Definition at line 98 of file usb_cdc_class.c.
References _long_union::as_byte_array, _setup_data_packet::bRequest, class_data, cm_CTRL_WRITE_SENDING_STATUS, control_mode, _line_coding::data_bits, _line_coding::dte_rate, _line_coding::parity, req_SET_LINE_CODING, serial_print_int(), serial_print_int_hex(), serial_print_str(), _line_coding::stop_bits, usb_sdp, and usb_send_status_ack.
void usb_SOF_callback | ( | uns16 | frame | ) |
Definition at line 269 of file usb_cdc_class.c.
References usb_cdc_handle_tx().
Referenced by usb_handle_isr().
uns8 cdc_rx_buffer[CDC_RX_BUFFER_SIZE] |
Receive fifo
Definition at line 61 of file usb_cdc_class.c.
Referenced by usb_ep_data_out_callback().
uns8 cdc_rx_end = 0 |
Receive fifo end point
Definition at line 65 of file usb_cdc_class.c.
Referenced by usb_cdc_rx_avail(), and usb_ep_data_out_callback().
uns8 cdc_rx_start = 0 |
Receive fifo start point
Definition at line 63 of file usb_cdc_class.c.
Referenced by usb_cdc_rx_avail(), and usb_ep_data_out_callback().
uns8 cdc_tx_buffer[CDC_TX_BUFFER_SIZE] |
Transmit fifo
Definition at line 54 of file usb_cdc_class.c.
Referenced by usb_cdc_handle_tx(), and usb_cdc_putc().
uns8 cdc_tx_end = 0 |
Transmit fifo end point
Definition at line 58 of file usb_cdc_class.c.
Referenced by usb_cdc_handle_tx(), usb_cdc_putc(), and usb_cdc_tx_empty().
uns8 cdc_tx_start = 0 |
Transmit fifo start point
Definition at line 56 of file usb_cdc_class.c.
Referenced by usb_cdc_handle_tx(), usb_cdc_putc(), and usb_cdc_tx_empty().
uns8 class_data[8] |
Definition at line 68 of file usb_cdc_class.c.
Referenced by usb_cdc_setup(), usb_handle_class_request(), and usb_handle_ctrl_write_class().