Afternoon all (or time in your area...)
I have been sort of hacking in USB2 and MTP libraries to see if I can get any hint of events...
Not sure what all I am missing... But some of the stuff I have been playing with:
USB2 library (USB1 object). Specifically usb1_mtp
Updated the configure:
Code:
void usb_mtp_configure(void)
{
digitalWriteFast(33, HIGH);
printf("usb_mtp_configure\n");
memset(tx_transfer, 0, sizeof(tx_transfer));
memset(rx_transfer, 0, sizeof(rx_transfer));
memset(rx_event_transfer, 0, sizeof(rx_event_transfer));
//memset(tx_event_transfer, 0, sizeof(tx_event_transfer));
tx_head = 0;
rx_head = 0;
rx_tail = 0;
usb_config_tx(MTP_TX_ENDPOINT, MTP_TX_SIZE, 0, tx_event);
usb_config_rx(MTP_RX_ENDPOINT, MTP_RX_SIZE, 0, rx_event);
// Not sure if you do two calls here for this type? .
usb_config_rx(MTP_EVENT_ENDPOINT, MTP_EVENT_SIZE, 0, rx_event_event);
//usb_config_tx(MTP_EVENT_ENDPOINT, MTP_EVENT_SIZE, 0, tx_event_event);
//usb_config_rx(MTP_RX_ENDPOINT, MTP_RX_SIZE, 0, NULL); // why does this not work?
int i;
for (i = 0; i < RX_NUM; i++) rx_queue_transfer(i);
digitalWriteFast(33, LOW);
// Lets do eents
usb_prepare_transfer(rx_event_transfer + 0, rx_event_buffer, MTP_EVENT_SIZE, MTP_EVENT_ENDPOINT);
usb_receive(MTP_EVENT_ENDPOINT, rx_event_transfer + 0);
}
Note This is in my multiple RX transfer branch.
I added the eventsend/receive functions from USB2 part although modified to get rid of the 2... And have an RX event
I wanted to add Serial.print statements out of event to see if I got anything, but this is a .c file so added a .cpp file with .c linkage functions to do some printing.
Was not sure if calling the usb_serial... write like functions would work in this case.
If anyone is interested in the WIP this is up at:
https://github.com/KurtE/USB2/tree/WIP_USB1_multi_transfers
Now back in MTP project Wondered about the different debug messages plus what all of the darn messages at start off like 1002 what is this...
So I hacked it up and put in a list of textual names for the ones that I have seen so now the output looks more like:
Code:
Setup done
1002 16 1 0: 1 dc01 205d385b - MTP_OPERATION_OPEN_SESSION
2001 16 3 0: 1 dc01 205d385b - MTP_RESPONSE_OK
1001 12 1 1: 2 dc07 703 - MTP_OPERATION_GET_DEVICE_INFO
2001 12 3 1: 0 dc07 703 - MTP_RESPONSE_OK
1014 16 1 2: d402 0 62203428 - MTP_OPERATION_GET_DEVICE_PROP_DESC
2001 16 3 2: d402 0 62203428 - MTP_RESPONSE_OK
1004 12 1 3: 1 dc0b 73656c75 - MTP_OPERATION_GET_STORAGE_IDS
2001 12 3 3: 1 dc0b 73656c75 - MTP_RESPONSE_OK
1005 16 1 4: 1 dc41 53525454 - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 4: 1 dc41 53525454 - MTP_RESPONSE_OK
1005 16 1 5: 2 dc44 20223636 - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 5: 2 dc44 20223636 - MTP_RESPONSE_OK
1005 16 1 6: 3 dc03 49465f4d - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 6: 3 dc03 49465f4d - MTP_RESPONSE_OK
1005 16 1 7: 4 96126100 20201000 - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 7: 4 96126100 20201000 - MTP_RESPONSE_OK
1005 16 1 8: 5 dc01 205d385b - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 8: 5 dc01 205d385b - MTP_RESPONSE_OK
9801 16 1 9: 3000 dc07 703 - MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED
2001 16 3 9: 3000 dc07 703 - MTP_RESPONSE_OK
9801 16 1 10: 3001 0 62203428 - MTP_OPERATION_GET_OBJECT_PROPS_SUPPORTED
2001 16 3 10: 3001 0 62203428 - MTP_RESPONSE_OK
1007 24 1 11: 2 0 ffffffff - MTP_OPERATION_GET_OBJECT_HANDLES
2001 24 3 11: 2 0 ffffffff - MTP_RESPONSE_OK
9803 20 1 12: b dc02 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 12: b dc02 53525454 - MTP_RESPONSE_OK
9802 20 1 13: dc03 3000 20223636 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 13: dc03 3000 20223636 - MTP_RESPONSE_OK
9803 20 1 14: b dc03 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 14: b dc03 49465f4d - MTP_RESPONSE_OK
9802 20 1 15: dc04 3000 20201000 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 15: dc04 3000 20201000 - MTP_RESPONSE_OK
9803 20 1 16: b dc04 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 16: b dc04 205d385b - MTP_RESPONSE_OK
1008 16 1 17: b dc07 703 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 17: b dc07 703 - MTP_RESPONSE_OK
9802 20 1 18: dc01 3000 62203428 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 18: dc01 3000 62203428 - MTP_RESPONSE_OK
9803 20 1 19: b dc01 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 19: b dc01 ffffffff - MTP_RESPONSE_OK
9802 20 1 20: dc07 3000 53525454 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 20: dc07 3000 53525454 - MTP_RESPONSE_OK
9803 20 1 21: b dc07 20223636 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 21: b dc07 20223636 - MTP_RESPONSE_OK
9802 20 1 22: dc41 3000 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 22: dc41 3000 49465f4d - MTP_RESPONSE_OK
9803 20 1 23: b dc41 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 23: b dc41 20201000 - MTP_RESPONSE_OK
9802 20 1 24: dc44 3000 205d385b - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 24: dc44 3000 205d385b - MTP_RESPONSE_OK
9803 20 1 25: b dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 25: b dc44 703 - MTP_RESPONSE_OK
9803 20 1 26: a dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 26: a dc02 62203428 - MTP_RESPONSE_OK
9803 20 1 27: a dc03 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 27: a dc03 ffffffff - MTP_RESPONSE_OK
9803 20 1 28: a dc04 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 28: a dc04 53525454 - MTP_RESPONSE_OK
1008 16 1 29: a dc07 20223636 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 29: a dc07 20223636 - MTP_RESPONSE_OK
9803 20 1 30: a dc01 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 30: a dc01 49465f4d - MTP_RESPONSE_OK
9803 20 1 31: a dc07 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 31: a dc07 20201000 - MTP_RESPONSE_OK
9803 20 1 32: a dc41 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 32: a dc41 205d385b - MTP_RESPONSE_OK
9803 20 1 33: a dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 33: a dc44 703 - MTP_RESPONSE_OK
9803 20 1 34: 9 dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 34: 9 dc02 62203428 - MTP_RESPONSE_OK
9803 20 1 35: 9 dc03 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 35: 9 dc03 ffffffff - MTP_RESPONSE_OK
9803 20 1 36: 9 dc04 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 36: 9 dc04 53525454 - MTP_RESPONSE_OK
1008 16 1 37: 9 dc07 20223636 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 37: 9 dc07 20223636 - MTP_RESPONSE_OK
9803 20 1 38: 9 dc01 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 38: 9 dc01 49465f4d - MTP_RESPONSE_OK
9803 20 1 39: 9 dc07 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 39: 9 dc07 20201000 - MTP_RESPONSE_OK
9803 20 1 40: 9 dc41 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 40: 9 dc41 205d385b - MTP_RESPONSE_OK
9803 20 1 41: 9 dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 41: 9 dc44 703 - MTP_RESPONSE_OK
9803 20 1 42: 8 dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 42: 8 dc02 62203428 - MTP_RESPONSE_OK
9803 20 1 43: 8 dc03 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 43: 8 dc03 ffffffff - MTP_RESPONSE_OK
9803 20 1 44: 8 dc04 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 44: 8 dc04 53525454 - MTP_RESPONSE_OK
1008 16 1 45: 8 dc07 20223636 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 45: 8 dc07 20223636 - MTP_RESPONSE_OK
9803 20 1 46: 8 dc01 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 46: 8 dc01 49465f4d - MTP_RESPONSE_OK
9803 20 1 47: 8 dc07 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 47: 8 dc07 20201000 - MTP_RESPONSE_OK
9803 20 1 48: 8 dc41 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 48: 8 dc41 205d385b - MTP_RESPONSE_OK
9803 20 1 49: 8 dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 49: 8 dc44 703 - MTP_RESPONSE_OK
9803 20 1 50: 7 dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 50: 7 dc02 62203428 - MTP_RESPONSE_OK
9803 20 1 51: 7 dc03 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 51: 7 dc03 ffffffff - MTP_RESPONSE_OK
9803 20 1 52: 7 dc04 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 52: 7 dc04 53525454 - MTP_RESPONSE_OK
1008 16 1 53: 7 dc07 20223636 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 53: 7 dc07 20223636 - MTP_RESPONSE_OK
9803 20 1 54: 7 dc01 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 54: 7 dc01 49465f4d - MTP_RESPONSE_OK
9803 20 1 55: 7 dc07 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 55: 7 dc07 20201000 - MTP_RESPONSE_OK
9803 20 1 56: 7 dc41 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 56: 7 dc41 205d385b - MTP_RESPONSE_OK
9803 20 1 57: 7 dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 57: 7 dc44 703 - MTP_RESPONSE_OK
9803 20 1 58: 6 dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 58: 6 dc02 62203428 - MTP_RESPONSE_OK
9803 20 1 59: 6 dc03 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 59: 6 dc03 ffffffff - MTP_RESPONSE_OK
9803 20 1 60: 6 dc04 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 60: 6 dc04 53525454 - MTP_RESPONSE_OK
1008 16 1 61: 6 dc07 20223636 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 61: 6 dc07 20223636 - MTP_RESPONSE_OK
9803 20 1 62: 6 dc01 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 62: 6 dc01 49465f4d - MTP_RESPONSE_OK
9803 20 1 63: 6 dc07 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 63: 6 dc07 20201000 - MTP_RESPONSE_OK
9803 20 1 64: 6 dc41 205d385b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 64: 6 dc41 205d385b - MTP_RESPONSE_OK
9803 20 1 65: 6 dc44 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 65: 6 dc44 703 - MTP_RESPONSE_OK
9803 20 1 66: 5 dc02 62203428 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 66: 5 dc02 62203428 - MTP_RESPONSE_OK
9802 20 1 67: dc03 3001 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 67: dc03 3001 ffffffff - MTP_RESPONSE_OK
9803 20 1 68: 5 dc03 53525454 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 68: 5 dc03 53525454 - MTP_RESPONSE_OK
9802 20 1 69: dc04 3001 20223636 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 69: dc04 3001 20223636 - MTP_RESPONSE_OK
9803 20 1 70: 5 dc04 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 70: 5 dc04 49465f4d - MTP_RESPONSE_OK
1008 16 1 71: 5 dc07 20201000 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 71: 5 dc07 20201000 - MTP_RESPONSE_OK
9802 20 1 72: dc01 3001 205d385b - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 72: dc01 3001 205d385b - MTP_RESPONSE_OK
9803 20 1 73: 5 dc01 703 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 73: 5 dc01 703 - MTP_RESPONSE_OK
9802 20 1 74: dc07 3001 62203428 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 74: dc07 3001 62203428 - MTP_RESPONSE_OK
9803 20 1 75: 5 dc07 ffffffff - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 75: 5 dc07 ffffffff - MTP_RESPONSE_OK
9802 20 1 76: dc41 3001 53525454 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 76: dc41 3001 53525454 - MTP_RESPONSE_OK
9803 20 1 77: 5 dc41 20223636 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 77: 5 dc41 20223636 - MTP_RESPONSE_OK
9802 20 1 78: dc44 3001 49465f4d - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 78: dc44 3001 49465f4d - MTP_RESPONSE_OK
9803 20 1 79: 5 dc44 20201000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 79: 5 dc44 20201000 - MTP_RESPONSE_OK
100c 20 1 80: 2 ffffffff 205d385b - MTP_OPERATION_SEND_OBJECT_INFO
SCR: OV7670_MB.zip
2001 24 3 80: 2 ffffffff c - MTP_RESPONSE_OK
100d 12 1 81: dc07 3001 62203428 - MTP_OPERATION_SEND_OBJECT
100d 9506 2 81: 4034b50 14 83750008 - MTP_OPERATION_SEND_OBJECT
a 8994 500 0 12 500 0
a 8482 1012 0 0 512 0
a 7970 1524 0 0 512 0
a 7458 2036 0 0 512 0
a 6946 2548 0 0 512 0
a 6434 3060 0 0 512 0
a 5922 3572 0 0 512 0
a 5410 4084 0 0 512 0
a 4898 4596 0 0 512 0
a 4386 5108 0 0 512 0
a 3874 5620 0 0 512 0
a 3362 6132 0 0 512 0
a 2850 6644 0 0 512 0
a 2338 7156 0 0 512 0
a 1826 7668 0 0 512 0
a 1314 8180 0 0 512 0
a 1302 8192 500 0 12 0
SW: 8192!
b 802 500 500 0 12 8
a 290 1012 0 0 512 0
a 0 1302 0 0 290 0
len 1302
SW: 1302!
SCL - startSCL - complete
2001 12 3 81: dc07 0 2000 - MTP_RESPONSE_OK
9803 20 1 82: c dc02 185ad36b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 82: c dc02 185ad36b - MTP_RESPONSE_OK
9803 20 1 83: c dc01 c44e8419 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 83: c dc01 c44e8419 - MTP_RESPONSE_OK
9803 20 1 84: c dc07 74fc40de - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 84: c dc07 74fc40de - MTP_RESPONSE_OK
9802 20 1 85: dc0b 3000 520319c7 - MTP_OPERATION_GET_OBJECT_PROP_DESC
2001 20 3 85: dc0b 3000 520319c7 - MTP_RESPONSE_OK
9803 20 1 86: c dc0b ed6f1ef7 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 86: c dc0b ed6f1ef7 - MTP_RESPONSE_OK
9803 20 1 87: c dc41 5266bf99 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 87: c dc41 5266bf99 - MTP_RESPONSE_OK
9803 20 1 88: c dc44 848d00ec - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 88: c dc44 848d00ec - MTP_RESPONSE_OK
9803 20 1 89: c dc03 2000 - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 89: c dc03 2000 - MTP_RESPONSE_OK
9803 20 1 90: c dc04 185ad36b - MTP_OPERATION_GET_OBJECT_PROP_VALUE
2001 20 3 90: c dc04 185ad36b - MTP_RESPONSE_OK
1008 16 1 91: c dc01 c44e8419 - MTP_OPERATION_GET_OBJECT_INFO
2001 16 3 91: c dc01 c44e8419 - MTP_RESPONSE_OK
1005 16 1 92: 2 dc07 74fc40de - MTP_OPERATION_GET_STORAGE_INFO
2001 16 3 92: 2 dc07 74fc40de - MTP_RESPONSE_OK
This also included the debug stuff for copying a file to storate. I believe this one I sent to the QSPI SDCard.
Sorry I know it is gratuitous, and it is probably busted in the T3.x portion as I first converted to function, but then it relies on variables in the function it is called from...
But I just personally find it easier to look through this and get a more of an idea of what messages are what.
Events: Then I remember reading in pdf about needing to tell host which events it wants... So I created a list:
Code:
const uint16_t mtpEventList[] =
{
MTP_EVENT_UNDEFINED ,//0x4000
MTP_EVENT_CANCEL_TRANSACTION ,//0x4001
MTP_EVENT_OBJECT_ADDED ,//0x4002
MTP_EVENT_OBJECT_REMOVED ,//0x4003
MTP_EVENT_STORE_ADDED ,//0x4004
MTP_EVENT_STORE_REMOVED ,//0x4005
MTP_EVENT_DEVICE_PROP_CHANGED ,//0x4006
MTP_EVENT_OBJECT_INFO_CHANGED ,//0x4007
MTP_EVENT_DEVICE_INFO_CHANGED ,//0x4008
MTP_EVENT_REQUEST_OBJECT_TRANSFER ,//0x4009
MTP_EVENT_STORE_FULL ,//0x400A
MTP_EVENT_DEVICE_RESET ,//0x400B
MTP_EVENT_STORAGE_INFO_CHANGED ,//0x400C
MTP_EVENT_CAPTURE_COMPLETE ,//0x400D
MTP_EVENT_UNREPORTED_STATUS ,//0x400E
MTP_EVENT_OBJECT_PROP_CHANGED ,//0xC801
MTP_EVENT_OBJECT_PROP_DESC_CHANGED ,//0xC802
MTP_EVENT_OBJECT_REFERENCES_CHANGED //0xC803
};
const int mtpEventListNum = sizeof(mtpEventList)/sizeof(mtpEventList[0]);
And then updated the WriteDescriptor to change from saying 0 events to instead say:
Code:
write32(mtpEventListNum); // Events (array of uint16)
for(int ii=0; ii<mtpEventListNum;ii++) write16(mtpEventList[ii]);
Still not seeing anything, but will continue to play, I put this up at:
https://github.com/KurtE/MTP_t4/tree/WIP_Events
But again not sure if anything of this will work or not..
Back to playing... Actually right now play Frisbee with the dogs