Merge pull request #1639 from bavison/portability
Fixes for building with IAR toolchain
This commit is contained in:
@@ -99,9 +99,6 @@ int main(void)
|
|||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
audio_task();
|
audio_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@@ -290,7 +287,7 @@ bool tud_audio_get_req_entity_cb(uint8_t rhport, tusb_control_request_t const *
|
|||||||
|
|
||||||
// Those are dummy values for now
|
// Those are dummy values for now
|
||||||
ret.bNrChannels = 1;
|
ret.bNrChannels = 1;
|
||||||
ret.bmChannelConfig = 0;
|
ret.bmChannelConfig = (audio_channel_config_t) 0;
|
||||||
ret.iChannelNames = 0;
|
ret.iChannelNames = 0;
|
||||||
|
|
||||||
TU_LOG2(" Get terminal connector\r\n");
|
TU_LOG2(" Get terminal connector\r\n");
|
||||||
|
|||||||
@@ -100,9 +100,6 @@ int main(void)
|
|||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
audio_task();
|
audio_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
@@ -291,7 +288,7 @@ bool tud_audio_get_req_entity_cb(uint8_t rhport, tusb_control_request_t const *
|
|||||||
|
|
||||||
// Those are dummy values for now
|
// Those are dummy values for now
|
||||||
ret.bNrChannels = 1;
|
ret.bNrChannels = 1;
|
||||||
ret.bmChannelConfig = 0;
|
ret.bmChannelConfig = (audio_channel_config_t) 0;
|
||||||
ret.iChannelNames = 0;
|
ret.iChannelNames = 0;
|
||||||
|
|
||||||
TU_LOG2(" Get terminal connector\r\n");
|
TU_LOG2(" Get terminal connector\r\n");
|
||||||
|
|||||||
@@ -74,8 +74,6 @@ int main(void)
|
|||||||
board_uart_write(&ch, 1);
|
board_uart_write(&ch, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
|
#if CFG_TUSB_MCU == OPT_MCU_ESP32S2 || CFG_TUSB_MCU == OPT_MCU_ESP32S3
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ int main(void)
|
|||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
cdc_task();
|
cdc_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// echo to either Serial0 or Serial1
|
// echo to either Serial0 or Serial1
|
||||||
|
|||||||
@@ -65,8 +65,6 @@ int main(void)
|
|||||||
|
|
||||||
cdc_task();
|
cdc_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -82,8 +82,6 @@ int main(void)
|
|||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -77,8 +77,6 @@ int main(void)
|
|||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -66,8 +66,6 @@ int main(void)
|
|||||||
cdc_task();
|
cdc_task();
|
||||||
midi_task();
|
midi_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -67,8 +67,6 @@ int main(void)
|
|||||||
|
|
||||||
hid_task();
|
hid_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -88,8 +88,6 @@ int main(void)
|
|||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -71,8 +71,6 @@ int main(void)
|
|||||||
|
|
||||||
hid_task();
|
hid_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -71,9 +71,6 @@ int main(void)
|
|||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
midi_task();
|
midi_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -62,8 +62,6 @@ int main(void)
|
|||||||
tud_task(); // tinyusb device task
|
tud_task(); // tinyusb device task
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -113,8 +113,6 @@ int main(void)
|
|||||||
audio_task();
|
audio_task();
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ enum
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_RESOLUTION_RX),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_RESOLUTION_RX),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ADAPTIVE | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_RX), /*_interval*/ 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ADAPTIVE | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_RX), /*_interval*/ 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC, /*_lockdelay*/ 0x0001),\
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC, /*_lockdelay*/ 0x0001),\
|
||||||
/* Interface 1, Alternate 2 - alternate interface for data streaming */\
|
/* Interface 1, Alternate 2 - alternate interface for data streaming */\
|
||||||
@@ -124,7 +124,7 @@ enum
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_RESOLUTION_RX),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_RESOLUTION_RX),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ADAPTIVE | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_RX), /*_interval*/ 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ADAPTIVE | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_RX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_RX), /*_interval*/ 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC, /*_lockdelay*/ 0x0001),\
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_MILLISEC, /*_lockdelay*/ 0x0001),\
|
||||||
/* Standard AS Interface Descriptor(4.9.1) */\
|
/* Standard AS Interface Descriptor(4.9.1) */\
|
||||||
@@ -138,7 +138,7 @@ enum
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_RESOLUTION_TX),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_RESOLUTION_TX),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX), /*_interval*/ 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX), /*_interval*/ 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000),\
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000),\
|
||||||
/* Interface 2, Alternate 2 - alternate interface for data streaming */\
|
/* Interface 2, Alternate 2 - alternate interface for data streaming */\
|
||||||
@@ -148,7 +148,7 @@ enum
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_RESOLUTION_TX),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_RESOLUTION_TX),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX), /*_interval*/ 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_MAX_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_FORMAT_2_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX), /*_interval*/ 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
||||||
|
|
||||||
|
|||||||
@@ -63,8 +63,6 @@ int main(void)
|
|||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
usbtmc_app_task_iter();
|
usbtmc_app_task_iter();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -88,14 +88,6 @@ static size_t buffer_tx_ix; // for transmitting using multiple transfers
|
|||||||
static uint8_t buffer[225]; // A few packets long should be enough.
|
static uint8_t buffer[225]; // A few packets long should be enough.
|
||||||
|
|
||||||
|
|
||||||
static usbtmc_msg_dev_dep_msg_in_header_t rspMsg = {
|
|
||||||
.bmTransferAttributes =
|
|
||||||
{
|
|
||||||
.EOM = 1,
|
|
||||||
.UsingTermChar = 0
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void tud_usbtmc_open_cb(uint8_t interface_id)
|
void tud_usbtmc_open_cb(uint8_t interface_id)
|
||||||
{
|
{
|
||||||
(void)interface_id;
|
(void)interface_id;
|
||||||
@@ -148,12 +140,14 @@ bool tud_usbtmc_msg_data_cb(void *data, size_t len, bool transfer_complete)
|
|||||||
queryState = transfer_complete;
|
queryState = transfer_complete;
|
||||||
idnQuery = 0;
|
idnQuery = 0;
|
||||||
|
|
||||||
if ( transfer_complete && (len >= 4) && (!strncmp("*idn?", data, 4) || !strncmp("*IDN?", data, 4)) )
|
if ( transfer_complete && (len >= 4) &&
|
||||||
|
(!strncmp("*idn?", data, 4) || !strncmp("*IDN?", data, 4)) )
|
||||||
{
|
{
|
||||||
idnQuery = 1;
|
idnQuery = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( transfer_complete && (!strncmp("delay ", data, 5) || !strncmp("DELAY ", data, 5)) )
|
if ( transfer_complete &&
|
||||||
|
(!strncmp("delay ", data, 5) || !strncmp("DELAY ", data, 5)) )
|
||||||
{
|
{
|
||||||
queryState = 0;
|
queryState = 0;
|
||||||
int d = atoi((char*)data + 5);
|
int d = atoi((char*)data + 5);
|
||||||
@@ -185,9 +179,6 @@ static unsigned int msgReqLen;
|
|||||||
|
|
||||||
bool tud_usbtmc_msgBulkIn_request_cb(usbtmc_msg_request_dev_dep_in const * request)
|
bool tud_usbtmc_msgBulkIn_request_cb(usbtmc_msg_request_dev_dep_in const * request)
|
||||||
{
|
{
|
||||||
rspMsg.header.MsgID = request->header.MsgID,
|
|
||||||
rspMsg.header.bTag = request->header.bTag,
|
|
||||||
rspMsg.header.bTagInverse = request->header.bTagInverse;
|
|
||||||
msgReqLen = request->TransferSize;
|
msgReqLen = request->TransferSize;
|
||||||
|
|
||||||
#ifdef xDEBUG
|
#ifdef xDEBUG
|
||||||
@@ -251,7 +242,6 @@ void usbtmc_app_task_iter(void) {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
TU_ASSERT(false,);
|
TU_ASSERT(false,);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,6 @@ int main(void)
|
|||||||
|
|
||||||
video_task();
|
video_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -103,8 +103,6 @@ int main(void)
|
|||||||
webserial_task();
|
webserial_task();
|
||||||
led_blinking_task();
|
led_blinking_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// send characters to both CDC and WebUSB
|
// send characters to both CDC and WebUSB
|
||||||
|
|||||||
@@ -57,8 +57,6 @@ int main(void)
|
|||||||
cdc_app_task();
|
cdc_app_task();
|
||||||
hid_app_task();
|
hid_app_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -68,8 +68,6 @@ int main(void)
|
|||||||
hid_app_task();
|
hid_app_task();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -154,7 +154,10 @@ TU_VERIFY_STATIC(USBTMCD_BUFFER_SIZE >= 32u,"USBTMC dev buffer size too small");
|
|||||||
static bool handle_devMsgOutStart(uint8_t rhport, void *data, size_t len);
|
static bool handle_devMsgOutStart(uint8_t rhport, void *data, size_t len);
|
||||||
static bool handle_devMsgOut(uint8_t rhport, void *data, size_t len, size_t packetLen);
|
static bool handle_devMsgOut(uint8_t rhport, void *data, size_t len, size_t packetLen);
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
tu_static uint8_t termChar;
|
tu_static uint8_t termChar;
|
||||||
|
#endif
|
||||||
|
|
||||||
tu_static uint8_t termCharRequested = false;
|
tu_static uint8_t termCharRequested = false;
|
||||||
|
|
||||||
#if OSAL_MUTEX_REQUIRED
|
#if OSAL_MUTEX_REQUIRED
|
||||||
@@ -442,7 +445,10 @@ static bool handle_devMsgIn(void *data, size_t len)
|
|||||||
usbtmc_state.transfer_size_sent = 0u;
|
usbtmc_state.transfer_size_sent = 0u;
|
||||||
|
|
||||||
termCharRequested = msg->bmTransferAttributes.TermCharEnabled;
|
termCharRequested = msg->bmTransferAttributes.TermCharEnabled;
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
termChar = msg->TermChar;
|
termChar = msg->TermChar;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(termCharRequested)
|
if(termCharRequested)
|
||||||
TU_VERIFY(usbtmc_state.capabilities->bmDevCapabilities.canEndBulkInOnTermChar);
|
TU_VERIFY(usbtmc_state.capabilities->bmDevCapabilities.canEndBulkInOnTermChar);
|
||||||
@@ -511,6 +517,7 @@ bool usbtmcd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t result, uint
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
case STATE_ABORTING_BULK_OUT:
|
case STATE_ABORTING_BULK_OUT:
|
||||||
|
// Should be stalled by now, shouldn't have received a packet.
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case STATE_TX_REQUESTED:
|
case STATE_TX_REQUESTED:
|
||||||
|
|||||||
@@ -549,7 +549,7 @@ TU_VERIFY_STATIC( sizeof(video_probe_and_commit_control_t) == 48, "size is not c
|
|||||||
|
|
||||||
/* 3.10.1.1 */
|
/* 3.10.1.1 */
|
||||||
#define TUD_VIDEO_DESC_EP_ISO(_ep, _epsize, _ep_interval) \
|
#define TUD_VIDEO_DESC_EP_ISO(_ep, _epsize, _ep_interval) \
|
||||||
7, TUSB_DESC_ENDPOINT, _ep, TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS,\
|
7, TUSB_DESC_ENDPOINT, _ep, (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS),\
|
||||||
U16_TO_U8S_LE(_epsize), _ep_interval
|
U16_TO_U8S_LE(_epsize), _ep_interval
|
||||||
|
|
||||||
/* 3.10.1.2 */
|
/* 3.10.1.2 */
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
#define TU_ATTR_DEPRECATED(mess) __attribute__ ((deprecated(mess))) // warn if function with this attribute is used
|
#define TU_ATTR_DEPRECATED(mess) __attribute__ ((deprecated(mess))) // warn if function with this attribute is used
|
||||||
#define TU_ATTR_UNUSED __attribute__ ((unused)) // Function/Variable is meant to be possibly unused
|
#define TU_ATTR_UNUSED __attribute__ ((unused)) // Function/Variable is meant to be possibly unused
|
||||||
#define TU_ATTR_USED __attribute__ ((used)) // Function/Variable is meant to be used
|
#define TU_ATTR_USED __attribute__ ((used)) // Function/Variable is meant to be used
|
||||||
#define TU_ATTR_FALLTHROUGH __attribute__((fallthrough))
|
#define TU_ATTR_FALLTHROUGH do {} while (0) /* fallthrough */
|
||||||
|
|
||||||
#define TU_ATTR_PACKED_BEGIN
|
#define TU_ATTR_PACKED_BEGIN
|
||||||
#define TU_ATTR_PACKED_END
|
#define TU_ATTR_PACKED_END
|
||||||
|
|||||||
@@ -420,7 +420,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
|
|||||||
/* Standard AS Isochronous Feedback Endpoint Descriptor(4.10.2.1) */
|
/* Standard AS Isochronous Feedback Endpoint Descriptor(4.10.2.1) */
|
||||||
#define TUD_AUDIO_DESC_STD_AS_ISO_FB_EP_LEN 7
|
#define TUD_AUDIO_DESC_STD_AS_ISO_FB_EP_LEN 7
|
||||||
#define TUD_AUDIO_DESC_STD_AS_ISO_FB_EP(_ep, _interval) \
|
#define TUD_AUDIO_DESC_STD_AS_ISO_FB_EP(_ep, _interval) \
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_FB_EP_LEN, TUSB_DESC_ENDPOINT, _ep, (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_NO_SYNC | TUSB_ISO_EP_ATT_EXPLICIT_FB), U16_TO_U8S_LE(4), _interval
|
TUD_AUDIO_DESC_STD_AS_ISO_FB_EP_LEN, TUSB_DESC_ENDPOINT, _ep, (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_NO_SYNC | TUSB_ISO_EP_ATT_EXPLICIT_FB), U16_TO_U8S_LE(4), _interval
|
||||||
|
|
||||||
// AUDIO simple descriptor (UAC2) for 1 microphone input
|
// AUDIO simple descriptor (UAC2) for 1 microphone input
|
||||||
// - 1 Input Terminal, 1 Feature Unit (Mute and Volume Control), 1 Output Terminal, 1 Clock Source
|
// - 1 Input Terminal, 1 Feature Unit (Mute and Volume Control), 1 Output Terminal, 1 Clock Source
|
||||||
@@ -467,7 +467,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
||||||
|
|
||||||
@@ -516,7 +516,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epin, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000)
|
||||||
|
|
||||||
@@ -564,7 +564,7 @@ TU_ATTR_WEAK bool tud_vendor_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb
|
|||||||
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
/* Type I Format Type Descriptor(2.3.1.6 - Audio Formats) */\
|
||||||
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
TUD_AUDIO_DESC_TYPE_I_FORMAT(_nBytesPerSample, _nBitsUsedPerSample),\
|
||||||
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
/* Standard AS Isochronous Audio Data Endpoint Descriptor(4.10.1.1) */\
|
||||||
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
TUD_AUDIO_DESC_STD_AS_ISO_EP(/*_ep*/ _epout, /*_attr*/ (uint8_t) (TUSB_XFER_ISOCHRONOUS | TUSB_ISO_EP_ATT_ASYNCHRONOUS | TUSB_ISO_EP_ATT_DATA), /*_maxEPsize*/ _epsize, /*_interval*/ TUD_OPT_HIGH_SPEED ? 0x04 : 0x01),\
|
||||||
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
/* Class-Specific AS Isochronous Audio Data Endpoint Descriptor(4.10.1.2) */\
|
||||||
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000),\
|
TUD_AUDIO_DESC_CS_AS_ISO_EP(/*_attr*/ AUDIO_CS_AS_ISO_DATA_EP_ATT_NON_MAX_PACKETS_OK, /*_ctrl*/ AUDIO_CTRL_NONE, /*_lockdelayunit*/ AUDIO_CS_AS_ISO_DATA_EP_LOCK_DELAY_UNIT_UNDEFINED, /*_lockdelay*/ 0x0000),\
|
||||||
/* Standard AS Isochronous Feedback Endpoint Descriptor(4.10.2.1) */\
|
/* Standard AS Isochronous Feedback Endpoint Descriptor(4.10.2.1) */\
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ void tuh_task_ext(uint32_t timeout_ms, bool in_isr)
|
|||||||
{
|
{
|
||||||
// device 0 only has control endpoint
|
// device 0 only has control endpoint
|
||||||
TU_ASSERT(epnum == 0, );
|
TU_ASSERT(epnum == 0, );
|
||||||
usbh_control_xfer_cb(event.dev_addr, ep_addr, event.xfer_complete.result, event.xfer_complete.len);
|
usbh_control_xfer_cb(event.dev_addr, ep_addr, (xfer_result_t) event.xfer_complete.result, event.xfer_complete.len);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -446,14 +446,14 @@ void tuh_task_ext(uint32_t timeout_ms, bool in_isr)
|
|||||||
|
|
||||||
if ( 0 == epnum )
|
if ( 0 == epnum )
|
||||||
{
|
{
|
||||||
usbh_control_xfer_cb(event.dev_addr, ep_addr, event.xfer_complete.result, event.xfer_complete.len);
|
usbh_control_xfer_cb(event.dev_addr, ep_addr, (xfer_result_t) event.xfer_complete.result, event.xfer_complete.len);
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
uint8_t drv_id = dev->ep2drv[epnum][ep_dir];
|
uint8_t drv_id = dev->ep2drv[epnum][ep_dir];
|
||||||
if(drv_id < USBH_CLASS_DRIVER_COUNT)
|
if(drv_id < USBH_CLASS_DRIVER_COUNT)
|
||||||
{
|
{
|
||||||
TU_LOG_USBH("%s xfer callback\r\n", usbh_class_drivers[drv_id].name);
|
TU_LOG_USBH("%s xfer callback\r\n", usbh_class_drivers[drv_id].name);
|
||||||
usbh_class_drivers[drv_id].xfer_cb(event.dev_addr, ep_addr, event.xfer_complete.result, event.xfer_complete.len);
|
usbh_class_drivers[drv_id].xfer_cb(event.dev_addr, ep_addr, (xfer_result_t) event.xfer_complete.result, event.xfer_complete.len);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ static void __tusb_irq_path_func(hw_handle_buff_status)(void)
|
|||||||
usb_hw_clear->buf_status = bit;
|
usb_hw_clear->buf_status = bit;
|
||||||
|
|
||||||
// IN transfer for even i, OUT transfer for odd i
|
// IN transfer for even i, OUT transfer for odd i
|
||||||
struct hw_endpoint *ep = hw_endpoint_get_by_num(i >> 1u, !(i & 1u));
|
struct hw_endpoint *ep = hw_endpoint_get_by_num(i >> 1u, (i & 1u) ? TUSB_DIR_OUT : TUSB_DIR_IN);
|
||||||
|
|
||||||
// Continue xfer
|
// Continue xfer
|
||||||
bool done = hw_endpoint_xfer_continue(ep);
|
bool done = hw_endpoint_xfer_continue(ep);
|
||||||
|
|||||||
@@ -446,7 +446,7 @@ tusb_speed_t hcd_port_speed_get(uint8_t rhport)
|
|||||||
return TUSB_SPEED_FULL;
|
return TUSB_SPEED_FULL;
|
||||||
default:
|
default:
|
||||||
panic("Invalid speed\n");
|
panic("Invalid speed\n");
|
||||||
return TUSB_SPEED_INVALID;
|
// return TUSB_SPEED_INVALID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -613,7 +613,7 @@ bool hcd_edpt_clear_stall(uint8_t dev_addr, uint8_t ep_addr)
|
|||||||
(void) ep_addr;
|
(void) ep_addr;
|
||||||
|
|
||||||
panic("hcd_clear_stall");
|
panic("hcd_clear_stall");
|
||||||
return true;
|
// return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -68,15 +68,19 @@ void rp2040_usb_init(void)
|
|||||||
reset_block(RESETS_RESET_USBCTRL_BITS);
|
reset_block(RESETS_RESET_USBCTRL_BITS);
|
||||||
unreset_block_wait(RESETS_RESET_USBCTRL_BITS);
|
unreset_block_wait(RESETS_RESET_USBCTRL_BITS);
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
// Clear any previous state just in case
|
// Clear any previous state just in case
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Warray-bounds"
|
#pragma GCC diagnostic ignored "-Warray-bounds"
|
||||||
#if __GNUC__ > 6
|
#if __GNUC__ > 6
|
||||||
#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
memset(usb_hw, 0, sizeof(*usb_hw));
|
memset(usb_hw, 0, sizeof(*usb_hw));
|
||||||
memset(usb_dpram, 0, sizeof(*usb_dpram));
|
memset(usb_dpram, 0, sizeof(*usb_dpram));
|
||||||
|
#ifdef __GNUC__
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
// Mux the controller to the onboard usb phy
|
// Mux the controller to the onboard usb phy
|
||||||
usb_hw->muxing = USB_USB_MUXING_TO_PHY_BITS | USB_USB_MUXING_SOFTCON_BITS;
|
usb_hw->muxing = USB_USB_MUXING_TO_PHY_BITS | USB_USB_MUXING_SOFTCON_BITS;
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
#define __tusb_irq_path_func(x) x
|
#define __tusb_irq_path_func(x) x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define usb_hw_set hw_set_alias(usb_hw)
|
#define usb_hw_set ((usb_hw_t *) hw_set_alias(usb_hw))
|
||||||
#define usb_hw_clear hw_clear_alias(usb_hw)
|
#define usb_hw_clear ((usb_hw_t *) hw_clear_alias(usb_hw))
|
||||||
|
|
||||||
#define pico_info(...) TU_LOG(2, __VA_ARGS__)
|
#define pico_info(...) TU_LOG(2, __VA_ARGS__)
|
||||||
#define pico_trace(...) TU_LOG(3, __VA_ARGS__)
|
#define pico_trace(...) TU_LOG(3, __VA_ARGS__)
|
||||||
@@ -119,17 +119,17 @@ TU_ATTR_ALWAYS_INLINE static inline uint32_t _hw_endpoint_buffer_control_get_val
|
|||||||
|
|
||||||
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_set_value32 (struct hw_endpoint *ep, uint32_t value)
|
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_set_value32 (struct hw_endpoint *ep, uint32_t value)
|
||||||
{
|
{
|
||||||
return _hw_endpoint_buffer_control_update32(ep, 0, value);
|
_hw_endpoint_buffer_control_update32(ep, 0, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_set_mask32 (struct hw_endpoint *ep, uint32_t value)
|
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_set_mask32 (struct hw_endpoint *ep, uint32_t value)
|
||||||
{
|
{
|
||||||
return _hw_endpoint_buffer_control_update32(ep, ~value, value);
|
_hw_endpoint_buffer_control_update32(ep, ~value, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_clear_mask32 (struct hw_endpoint *ep, uint32_t value)
|
TU_ATTR_ALWAYS_INLINE static inline void _hw_endpoint_buffer_control_clear_mask32 (struct hw_endpoint *ep, uint32_t value)
|
||||||
{
|
{
|
||||||
return _hw_endpoint_buffer_control_update32(ep, ~value, 0);
|
_hw_endpoint_buffer_control_update32(ep, ~value, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uintptr_t hw_data_offset (uint8_t *buf)
|
static inline uintptr_t hw_data_offset (uint8_t *buf)
|
||||||
|
|||||||
Reference in New Issue
Block a user