sw: outline of serial device
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
e8aaac5cfe
commit
ba8314c823
6
sw/include/tester.h
Normal file
6
sw/include/tester.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef TESTER_H__
|
||||||
|
#define TESTER_H__
|
||||||
|
|
||||||
|
void tester_poll(void);
|
||||||
|
|
||||||
|
#endif /* TESTER_H__ */
|
@ -38,6 +38,8 @@ LGPL License Terms @ref lgpl_license
|
|||||||
#ifndef __CDC_H
|
#ifndef __CDC_H
|
||||||
#define __CDC_H
|
#define __CDC_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
/* Definitions of Communications Device Class from
|
/* Definitions of Communications Device Class from
|
||||||
* "Universal Serial Bus Class Definitions for Communications Devices
|
* "Universal Serial Bus Class Definitions for Communications Devices
|
||||||
* Revision 1.2"
|
* Revision 1.2"
|
||||||
@ -156,6 +158,9 @@ struct usb_cdc_notification {
|
|||||||
uint16_t wLength;
|
uint16_t wLength;
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
int cdc_connected();
|
||||||
|
void cdc_set_connected(int is_connected);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
@ -41,6 +41,9 @@ int main(int argc, char **argv)
|
|||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
usb_poll();
|
usb_poll();
|
||||||
|
if (cdc_connected()) {
|
||||||
|
tester_poll();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
5
sw/src/tester.c
Normal file
5
sw/src/tester.c
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#include <tester.h>
|
||||||
|
|
||||||
|
void tester_poll(void) {
|
||||||
|
return;
|
||||||
|
}
|
13
sw/src/usb-cdc.c
Normal file
13
sw/src/usb-cdc.c
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <usb-cdc.h>
|
||||||
|
|
||||||
|
static int connected = 0;
|
||||||
|
|
||||||
|
int cdc_connected(void)
|
||||||
|
{
|
||||||
|
return connected;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cdc_set_connected(int is_connected)
|
||||||
|
{
|
||||||
|
connected = is_connected;
|
||||||
|
}
|
@ -3,6 +3,7 @@
|
|||||||
#include <usb.h>
|
#include <usb.h>
|
||||||
|
|
||||||
#include <usb-desc.h>
|
#include <usb-desc.h>
|
||||||
|
#include <usb-cdc.h>
|
||||||
|
|
||||||
static uint8_t reply_buffer[8];
|
static uint8_t reply_buffer[8];
|
||||||
static uint8_t usb_configuration = 0;
|
static uint8_t usb_configuration = 0;
|
||||||
@ -15,6 +16,14 @@ void usb_setup(const struct usb_setup_request *setup)
|
|||||||
|
|
||||||
switch (setup->wRequestAndType)
|
switch (setup->wRequestAndType)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
case 0x2021: // Set Line Coding
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 0x2221: // Set control line state
|
||||||
|
cdc_set_connected(setup->wValue & 1); /* Check RTS bit */
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x0500: // SET_ADDRESS
|
case 0x0500: // SET_ADDRESS
|
||||||
case 0x0b01: // SET_INTERFACE
|
case 0x0b01: // SET_INTERFACE
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user