FIxing Media Keys and general USB compatibilty

- Media keys tested working on Linux/Windows/Mac (use Consumer control)
- Fixed enumeration delays
- Fixed virtual serial port configuration issues
- Fixed GET_REPORT and SET_REPORT
- Added intial descriptors and endpoints for Mouse and Joystick devices
- Split out the consumer and system control endpoint
- Added more fault debugging messages
- Added interface names to endpoints (visible in Windows Device Manager)
- Added KLL define for keyboard locale
This commit is contained in:
Jacob Alexander 2015-08-19 00:01:15 -07:00
parent ef7da32d12
commit 20b62afb9a
8 changed files with 328 additions and 113 deletions

View file

@ -106,28 +106,41 @@ void nmi_default_isr()
// NVIC - Hard Fault ISR
void hard_fault_default_isr()
{
print("Hard Fault!" NL );
print("Hard Fault! SCB_HFSR: ");
printHex32( SCB_HFSR );
print( NL );
SOFTWARE_RESET();
}
// NVIC - Memory Manager Fault ISR
void memmanage_fault_default_isr()
{
print("Memory Manager Fault!" NL );
print("Memory Manager Fault! SCB_CFSR: ");
printHex32( SCB_CFSR );
print(" SCB_MMAR: ");
printHex32( SCB_MMAR );
print( NL );
}
// NVIC - Bus Fault ISR
void bus_fault_default_isr()
{
print("Bus Fault!" NL );
print("Bus Fault! SCB_CFSR: ");
printHex32( SCB_CFSR );
print(" SCB_BFAR: ");
printHex32( SCB_BFAR );
print( NL );
}
// NVIC - Usage Fault ISR
void usage_fault_default_isr()
{
print("Usage Fault!" NL );
print("Usage Fault! SCB_CFSR: ");
printHex32( SCB_CFSR );
print( NL );
}

View file

@ -1951,7 +1951,9 @@ typedef struct {
#define SCB_CFSR *(volatile uint32_t *)0xE000ED28 // Configurable Fault Status Register
#define SCB_HFSR *(volatile uint32_t *)0xE000ED2C // HardFault Status
#define SCB_DFSR *(volatile uint32_t *)0xE000ED30 // Debug Fault Status
#define SCB_MMFAR *(volatile uint32_t *)0xE000ED34 // MemManage Fault Address
#define SCB_MMAR *(volatile uint32_t *)0xE000ED34 // MemManage Fault Address
#define SCB_BFAR *(volatile uint32_t *)0xE000ED38 // BusFault Addreses Register
#define SCB_AFSR *(volatile uint32_t *)0xE000ED3C // Auxilary Fault Status Register
#define SYST_CSR *(volatile uint32_t *)0xE000E010 // SysTick Control and Status
#define SYST_CSR_COUNTFLAG (uint32_t)0x00010000