#include "pic_usb.h"
#include "pic_serial.h"
#include "memory.h"
#include "config.h"
#include "pic_usb_buffer_mgt.h"
Go to the source code of this file.
Functions | |
void | usb_configure_endpoints () |
void | usb_enable_module () |
usb_state_type | usb_get_state () |
void | usb_handle_isr () |
void | usb_handle_reset () |
void | usb_handle_stall () |
void | usb_handle_standard_request (setup_data_packet sdp) |
void | usb_handle_transaction () |
void | usb_prime_ep0_out () |
void | usb_send_data (uns8 ep, uns8 *data, uns8 send_count, bit first) |
void | usb_send_data_chunk () |
void | usb_send_empty_data_pkt () |
void | usb_send_one_byte (uns8 data) |
void | usb_setup () |
void | usb_stall_ep0 () |
Variables | |
uns8 | buffer_byte |
control_mode_type | control_mode |
buffer_descriptor * | delivery_bd |
uns8 * | delivery_buffer |
uns8 | delivery_buffer_size |
uns16 | delivery_bytes_max_send |
uns16 | delivery_bytes_sent |
uns16 | delivery_bytes_to_send |
uns8 * | delivery_ptr |
uns8 | usb_address |
setup_data_packet | usb_sdp |
usb_state_type | usb_state = st_POWERED |
usb_status_type | usb_status |
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 pic_usb.c.
void usb_configure_endpoints | ( | ) |
Definition at line 40 of file pic_usb.c.
References _buffer_descriptor::addr, BC8, BC9, bd1in, bd1out, bd2in, bd2out, bd3in, bd3out, BSTALL, _buffer_descriptor::count, DTS, DTSEN, INCDIS, KEN, serial_print_str(), _buffer_descriptor::stat, and UOWN.
Referenced by usb_handle_standard_request().
usb_state_type usb_get_state | ( | ) |
void usb_handle_reset | ( | ) |
Definition at line 589 of file pic_usb.c.
References _buffer_descriptor::addr, BC8, BC9, bd0in, bd0out, BSTALL, cm_IDLE, control_mode, _buffer_descriptor::count, DTS, DTSEN, INCDIS, KEN, serial_print_int_hex(), serial_print_str(), _buffer_descriptor::stat, UOWN, us_IDLE, usb_address, and usb_status.
Referenced by usb_handle_isr().
void usb_handle_stall | ( | ) |
Definition at line 637 of file pic_usb.c.
References serial_print_str().
Referenced by usb_handle_isr().
void usb_handle_standard_request | ( | setup_data_packet | sdp | ) |
Definition at line 323 of file pic_usb.c.
References bd0in, _setup_data_packet::bRequest, cm_CTRL_READ_DATA_STAGE, cm_CTRL_WRITE_SENDING_STATUS, control_mode, delivery_buffer, delivery_buffer_size, delivery_bytes_max_send, delivery_bytes_sent, delivery_bytes_to_send, delivery_ptr, DTS, req_Get_Descriptor, req_Get_Interface, req_Get_Status, req_Set_Address, req_Set_Configuration, serial_print_int(), serial_print_int_hex(), serial_print_str(), st_CONFIGURED, _buffer_descriptor::stat, uns8, us_SET_ADDRESS, usb_address, usb_configure_endpoints(), usb_device_configured_callback(), USB_EP0_IN_ADDR, usb_get_descriptor_callback(), usb_send_data_chunk(), usb_send_one_byte(), usb_send_status_ack, usb_stall_ep0(), usb_state, usb_status, _setup_data_packet::wLength, and _setup_data_packet::wValue.
Referenced by usb_handle_transaction().
void usb_handle_transaction | ( | ) |
Definition at line 395 of file pic_usb.c.
References BC8, BC9, bd0in, bd0out, BSTALL, buffer_0_out, cm_CTRL_READ_AWAITING_STATUS, cm_CTRL_READ_DATA_STAGE, cm_CTRL_READ_DATA_STAGE_CLASS, cm_CTRL_WRITE_DATA_STAGE_CLASS, cm_CTRL_WRITE_SENDING_STATUS, cm_IDLE, control_mode, _buffer_descriptor::count, DTS, DTSEN, ep_in_bd_location, ep_out_bd_location, ep_out_buffer_location, ep_out_buffer_size, INCDIS, KEN, pid_ACK, pid_IN, pid_OUT, pid_SETUP, REQUEST_TYPE0, REQUEST_TYPE1, serial_print_int(), serial_print_int_hex(), serial_print_spc(), serial_print_str(), serial_putc(), st_ADDRESS, _buffer_descriptor::stat, uns8, UOWN, us_IDLE, us_SET_ADDRESS, usb_address, usb_ep_data_in_callback(), usb_ep_data_out_callback(), usb_handle_class_request(), usb_handle_ctrl_read_class(), usb_handle_ctrl_write_class(), usb_handle_standard_request(), usb_prime_ep0_out(), usb_send_data_chunk(), usb_state, and usb_status.
Referenced by usb_handle_isr().
void usb_prime_ep0_out | ( | ) |
Definition at line 306 of file pic_usb.c.
References _buffer_descriptor::addr, BC8, BC9, bd0out, BSTALL, _buffer_descriptor::count, DTS, DTSEN, INCDIS, KEN, serial_putc(), _buffer_descriptor::stat, UOWN, and USB_EP0_OUT_ADDR.
Referenced by usb_handle_transaction().
void usb_send_data | ( | uns8 | ep, | |
uns8 * | data, | |||
uns8 | send_count, | |||
bit | first | |||
) |
Definition at line 183 of file pic_usb.c.
References _buffer_descriptor::addr, BC8, BC9, BSTALL, _buffer_descriptor::count, DTS, DTSEN, ep_in_bd_location, ep_in_buffer_location, INCDIS, KEN, serial_print_str(), serial_putc(), _buffer_descriptor::stat, uns16, uns8, and UOWN.
Referenced by usb_handle_class_request().
void usb_send_data_chunk | ( | ) |
Definition at line 227 of file pic_usb.c.
References _buffer_descriptor::addr, BC8, BC9, bd0in, BSTALL, buffer_0_in, cm_CTRL_READ_AWAITING_STATUS, control_mode, _buffer_descriptor::count, delivery_buffer, delivery_buffer_size, delivery_bytes_max_send, delivery_bytes_sent, delivery_bytes_to_send, delivery_ptr, DTS, DTSEN, INCDIS, KEN, _buffer_descriptor::stat, uns16, uns8, and UOWN.
Referenced by usb_handle_standard_request(), usb_handle_transaction(), usb_send_empty_data_pkt(), and usb_send_one_byte().
void usb_send_empty_data_pkt | ( | ) |
Definition at line 278 of file pic_usb.c.
References bd0in, buffer_0_in, delivery_buffer, delivery_buffer_size, delivery_bytes_max_send, delivery_bytes_sent, delivery_bytes_to_send, delivery_ptr, DTS, _buffer_descriptor::stat, uns8, and usb_send_data_chunk().
void usb_send_one_byte | ( | uns8 | data | ) |
Definition at line 292 of file pic_usb.c.
References bd0in, buffer_0_in, buffer_byte, delivery_buffer, delivery_buffer_size, delivery_bytes_max_send, delivery_bytes_sent, delivery_bytes_to_send, delivery_ptr, DTS, _buffer_descriptor::stat, uns8, and usb_send_data_chunk().
Referenced by usb_handle_standard_request().
void usb_setup | ( | ) |
void usb_stall_ep0 | ( | ) |
Definition at line 175 of file pic_usb.c.
References bd0in, bd0out, BSTALL, _buffer_descriptor::stat, and UOWN.
Referenced by usb_handle_class_request(), and usb_handle_standard_request().
uns8 buffer_byte |
Definition at line 29 of file pic_usb.c.
Referenced by usb_handle_class_request(), usb_handle_ctrl_read_class(), usb_handle_ctrl_write_class(), usb_handle_reset(), usb_handle_standard_request(), usb_handle_transaction(), and usb_send_data_chunk().
uns8* delivery_buffer |
Definition at line 35 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns8 delivery_buffer_size |
Definition at line 34 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns16 delivery_bytes_max_send |
Definition at line 30 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns16 delivery_bytes_sent |
Definition at line 30 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns16 delivery_bytes_to_send |
Definition at line 30 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns8* delivery_ptr |
Definition at line 33 of file pic_usb.c.
Referenced by usb_handle_standard_request(), usb_send_data_chunk(), usb_send_empty_data_pkt(), and usb_send_one_byte().
uns8 usb_address |
Definition at line 28 of file pic_usb.c.
Referenced by usb_handle_reset(), usb_handle_standard_request(), and usb_handle_transaction().
Definition at line 26 of file pic_usb.c.
Referenced by usb_handle_ctrl_read_class(), and usb_handle_ctrl_write_class().
usb_state_type usb_state = st_POWERED |
Definition at line 24 of file pic_usb.c.
Referenced by usb_enable_module(), usb_get_state(), usb_handle_standard_request(), usb_handle_transaction(), usb_init(), and usb_setup().
Definition at line 38 of file pic_usb.c.
Referenced by usb_handle_reset(), usb_handle_standard_request(), and usb_handle_transaction().