house keeping
add some more logic for enum task
This commit is contained in:
@@ -60,18 +60,13 @@
|
||||
|
||||
typedef uint32_t pipe_handle_t;
|
||||
|
||||
/** \brief Initialize HCD
|
||||
*
|
||||
* \param[in] para1
|
||||
* \param[out] para2
|
||||
* \return Error Code of the \ref TUSB_ERROR enum
|
||||
* \note
|
||||
*/
|
||||
|
||||
tusb_error_t hcd_init(uint8_t hostid) ATTR_WARN_UNUSED_RESULT;
|
||||
|
||||
/// return the current connect status of roothub port
|
||||
bool hcd_port_connect_status(uint8_t hostid) ATTR_WARN_UNUSED_RESULT;
|
||||
//--------------------------------------------------------------------+
|
||||
// PIPE API
|
||||
//--------------------------------------------------------------------+
|
||||
//pipe_handle_t hcd_pipe_control_open(core_id, speed, hub_addr, hub_port, dev_addr, max_packet_size);
|
||||
|
||||
#if 0
|
||||
//tusb_error_t hcd_pipe_open(
|
||||
@@ -83,6 +78,13 @@ tusb_error_t hcd_pipe_transfer()ATTR_WARN_UNUSED_RESULT;
|
||||
tusb_error_t hcd_pipe_cancel()ATTR_WARN_UNUSED_RESULT;
|
||||
#endif
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// PORT API
|
||||
//--------------------------------------------------------------------+
|
||||
/// return the current connect status of roothub port
|
||||
bool hcd_port_connect_status(uint8_t core_id) ATTR_WARN_UNUSED_RESULT;
|
||||
tusb_speed_t hcd_port_speed_get(uint8_t core_id) ATTR_WARN_UNUSED_RESULT;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -78,11 +78,31 @@ osal_queue_handle_t enum_queue_hdl;
|
||||
|
||||
void usbh_enumeration_task(void)
|
||||
{
|
||||
usbh_enumerate_t enum_item;
|
||||
tusb_error_t error;
|
||||
|
||||
OSAL_TASK_LOOP
|
||||
{
|
||||
OSAL_TASK_LOOP_BEGIN
|
||||
|
||||
// osal_queue_receive(enumeration_queue_hdl, )
|
||||
osal_queue_receive(enum_queue_hdl, (uint32_t*)&enum_item, OSAL_TIMEOUT_NORMAL, &error);
|
||||
if (error != TUSB_ERROR_NONE)
|
||||
{
|
||||
ASSERT_STATEMENT("%s", TUSB_ErrorStr[error]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (enum_item.hub_address == 0) // direct connection
|
||||
{
|
||||
if ( enum_item.connect_status == hcd_port_connect_status(enum_item.core_id) ) // there chances the event is out-dated
|
||||
{
|
||||
|
||||
}
|
||||
}else // device connect via a hub
|
||||
{
|
||||
ASSERT_STATEMENT("%s", "Hub is not supported yet");
|
||||
}
|
||||
}
|
||||
|
||||
OSAL_TASK_LOOP_END
|
||||
}
|
||||
|
||||
@@ -136,7 +136,7 @@ typedef enum {
|
||||
|
||||
typedef uint32_t tusb_handle_device_t;
|
||||
|
||||
typedef struct {
|
||||
typedef struct ATTR_ALIGNED(4){
|
||||
uint8_t core_id;
|
||||
uint8_t hub_address;
|
||||
uint8_t hub_port;
|
||||
|
||||
Reference in New Issue
Block a user