diff --git a/bugs/currentBug.txt b/bugs/currentBug.txt index e8ace25..b0f8540 100644 --- a/bugs/currentBug.txt +++ b/bugs/currentBug.txt @@ -1,3 +1,3 @@ T3 locks up endlessly checking TSC2101 interrupts -Randomly locks up for 1-2 seconds(this seems to have t do with the audio bug in applications where pushing the app category selector then white space will make a shorter or longer beep than it should, also lock ups occur in galax when sound plays) +Randomly locks up for 1-2 seconds(this seems to have t do with the audio bug in applications where pushing the app category selector then white space will make a shorter or longer beep than it should, also lock ups occur in galax when sound plays)(Started somewhere between June 9 2019 and June 20 2019, right after all the UART stuff) QT release build is broken \ No newline at end of file diff --git a/bugs/lockUpBug.png b/bugs/lockUpBug.png new file mode 100644 index 0000000..572dfc6 Binary files /dev/null and b/bugs/lockUpBug.png differ diff --git a/src/dbvz.c b/src/dbvz.c index f0dc467..0790699 100644 --- a/src/dbvz.c +++ b/src/dbvz.c @@ -237,26 +237,18 @@ static void pllWakeCpuIfOff(void){ } static void checkInterrupts(void){ - uint32_t activeInterrupts; - uint16_t interruptLevelControlRegister; - uint8_t spi1IrqLevel; - uint8_t uart2IrqLevel; - uint8_t pwm2IrqLevel; - uint8_t timer2IrqLevel; - uint8_t intLevel; + uint32_t activeInterrupts = registerArrayRead32(ISR); + uint16_t interruptLevelControlRegister = registerArrayRead16(ILCR); + uint8_t spi1IrqLevel = interruptLevelControlRegister >> 12; + uint8_t uart2IrqLevel = interruptLevelControlRegister >> 8 & 0x0007; + uint8_t pwm2IrqLevel = interruptLevelControlRegister >> 4 & 0x0007; + uint8_t timer2IrqLevel = interruptLevelControlRegister & 0x0007; + uint8_t intLevel = 0; //dont waste time if nothing changed if(!dbvzInterruptChanged) return; - activeInterrupts = registerArrayRead32(ISR); - interruptLevelControlRegister = registerArrayRead16(ILCR); - spi1IrqLevel = interruptLevelControlRegister >> 12; - uart2IrqLevel = interruptLevelControlRegister >> 8 & 0x0007; - pwm2IrqLevel = interruptLevelControlRegister >> 4 & 0x0007; - timer2IrqLevel = interruptLevelControlRegister & 0x0007; - intLevel = 0; - //static interrupts if(activeInterrupts & DBVZ_INT_EMIQ) intLevel = 7;//EMIQ - Emulator IRQ, has nothing to do with emulation, used for debugging on a dev board