comparison Debug/print/print.c @ 449:45feb80a2ad1

Major USB update, fixes most (if not all) known issues USB - General - Refactored descriptors - Enabled/Disable USB endpoints - Added debug flags for special features - Code cleanup - Interface count calculation based off of enabled endpoints - Delayed wTotalLength calculation to simplify descriptor offsets - Re-ordered endpoints and interfaces - Added more debug output - Added usbInitTime to show how long keyboard initialization took (Useful when debugging bad init sequences) - Added function for usb_resume() which takes care of the resume sequence * Resume is now only called if packets are starting to timeout USB - Special Options - Added enableDeviceRestartOnUSBTimeout * A last resort hammer for bad USB Chipsets/OSs, don't use if you can help it * Disabled - Added enableUSBResume * Enables host resume wake-up signalling, required to wake a computer from sleep * Enabled - Added enableUSBLowPowerNegotiation * Enables power negotiation hack * Required to use firmware with an IPad and other hard-limit low-power USB hosts * Hasn't been tested with the recent changes * Disabled - Added enableUSBSuspend * Enables power down events on host USB bus suspend * Enabled USB - Keyboard - Attempted to cleanup HID SET_REPORT * Works much better * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless) + Not present on other keyboards + SETUP -> OUT -> IN : This sequence is the problem + Specifically during the OUT phase - Enabled USB - CDC Virtual Serial Port - Code cleanup - Added convenience struct USBCDCLineCoding for easier debugging - Attempted to cleanup CDC_SET_LING_CODING * Works much better * Still has an issue under Linux which generates *a lot* of NAKs (initializes quickly regardless) + SETUP -> OUT -> IN : This sequence is the problem + Specifically during the OUT phase + Likely the same issues as HID SET_REPORT - Enabled USB - Mouse - Enabled USB - Joystick - Disabled USB - RawIO - Initial code, API not used yet - Disabled DFU - Updated load script, now faster
author Jacob Alexander <haata@kiibohd.com>
date Tue, 31 May 2016 00:19:45 -0700
parents e8841d3c6db5
children
comparison
equal deleted inserted replaced
448:077a1dfd8529 449:45feb80a2ad1
1 /* Copyright (C) 2011-2014 by Jacob Alexander 1 /* Copyright (C) 2011-2016 by Jacob Alexander
2 * 2 *
3 * Permission is hereby granted, free of charge, to any person obtaining a copy 3 * Permission is hereby granted, free of charge, to any person obtaining a copy
4 * of this software and associated documentation files (the "Software"), to deal 4 * of this software and associated documentation files (the "Software"), to deal
5 * in the Software without restriction, including without limitation the rights 5 * in the Software without restriction, including without limitation the rights
6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
125 void printHex32_op( uint32_t in, uint8_t op ) 125 void printHex32_op( uint32_t in, uint8_t op )
126 { 126 {
127 // With an op of 1, the max number of characters is 6 + 1 for null 127 // With an op of 1, the max number of characters is 6 + 1 for null
128 // e.g. "0xFFFF\0" 128 // e.g. "0xFFFF\0"
129 // op 2 and 4 require fewer characters (2+1 and 4+1 respectively) 129 // op 2 and 4 require fewer characters (2+1 and 4+1 respectively)
130 char tmpStr[7]; 130 char tmpStr[11];
131 131
132 // Convert number 132 // Convert number
133 hex32ToStr_op( in, tmpStr, op ); 133 hex32ToStr_op( in, tmpStr, op );
134 134
135 // Print number 135 // Print number
257 out[pos++] = 'x'; 257 out[pos++] = 'x';
258 out[pos++] = '0'; 258 out[pos++] = '0';
259 break; 259 break;
260 case 2: // 8-bit padding 260 case 2: // 8-bit padding
261 case 4: // 16-bit padding 261 case 4: // 16-bit padding
262 case 8: // 32-bit padding
262 while ( pos < op ) 263 while ( pos < op )
263 out[pos++] = '0'; 264 out[pos++] = '0';
264 break; 265 break;
265 } 266 }
266 267