I need protocol stacks for Android, including ADB, MSD, BEE, etc. Says Linux? It's too big and no native support for BEE (ZigBee). Says Atmel or Microchip? I've worked with both USB stacks. They are both very similar: inefficient and deficient. I wonder who copy whom.
I've been porting and rewriting the microchip USB host stack. I came to the conclusion that it doesn't work with composite host properly. The problem is that each host driver has it's own control block and there is no easy way to have more than one.
The problem is that with Android, the (deactivated) MSD driver still override the ADB driver. I can rewrite the parser from bottom up, instead of top down, but it still won't allow more than one driver loaded.
Anyway, the USB enumuation codes could be shared and the DCBs should be shared. I am going to move the DCBs to a new file and add functions to retrieve pointers to the DCBs. I also need to move the debug port to uart 4, and free up 1 to 3. It won't work with low end chips anyway. I need 256K flash. Also, I am going to remove all PIC18 codes.
I am going to post the mods. We might be able to get paid helps, if we can get enough supports. We need to work on FAT, ADB, BEE, etc.
-------------------------------------------------------
*.c: DCB *; // Device Control Blockadb[0].shit = other shit; // index is always 0
-------------------------------------------------------
dcb.c: DCB {union cdc, cdd, nsd, adb} dcb[6]; cdc.c: cdc = &dcb[0]; // CDC control cdd.c: cdd = &dcb[1]; // CDC data nul.c: nul = &dcb[2]; // Not used nul.c: nul = &dcb[3]; // Not used msd.c: msd = &dcb[4]; // Mass Storage adb.c: adb = &dcb[5]; // Android Debug Bridge
DCB *adb = dcb_init("ADB"); // return &adb[5]; void dcb_task("ADB"); // run ADB task
adb->shit = other shit;