FreeCalypso > hg > fc-tourmaline
view scripts/cfg-template @ 268:f2e52cab0a73
abb_inth.c: check all interrupt causes, not just one
The original code used if - else if - else if etc constructs, thus
the first detected interrupt was the only one handled. However,
Iota ITSTATREG is a clear-on-read register, thus if we only handle
the first detected interrupt and skip checking the others, then the
other interrupts will be lost, if more than one interrupt happened
to occur in one ABB interrupt handling cycle - a form of rare race
condition. Change the code to check all interrupts that were read
in this cycle.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 13 Jun 2021 18:17:53 +0000 |
parents | b55b47f49638 |
children |
line wrap: on
line source
[board.cfg] BOARD 41 [chipset.cfg] ANLG_FAM 2 ANLG_PG 0 CHIPSET var [debug.cfg] TI_NUC_MONITOR 0 TI_PROFILER var [dio.cfg] DIOIL_CONFIG 0 [ffs.cfg] TARGET 1 _RVF 1 [l1sw.cfg] AMR var CUST 0 DCO_ALGO 0 IDS var L1_12NEIGH 1 L1_EOTD 0 L1_EOTD_QBIT_ACC 0 L1_GPRS var L1_GTT 0 L1_MIDI 0 L1_VOICE_MEMO_AMR var MELODY_E2 var OP_L1_STANDALONE 0 OP_RIV_AUDIO 1 ORDER2_TX_TEMP_CAL 1 RAZ_VULSWITCH_REGAUDIO 0 SECURITY 0 SPEECH_RECO var TESTMODE 1 TRACE_TYPE 4 VCXO_ALGO 1 [r2d.cfg] R2D_ASM 0 R2D_EMBEDDED_LCD var R2D_LCD_TEST 0 [rf.cfg] RF var RF_FAM var RF_PA var RF_PG var [rv.cfg] RVTOOL 0 TEST 0 _GSM 1 [swconfig.cfg] ALR 1 BT 0 DP 0 DWNLD 1 GSMLITE 0 L1_DYN_DSP_DWNLD var LONG_JUMP 3 MOVE_IN_INTERNAL_RAM 1 OP_WCP 0 PMODE var RVDATA_INTERNALRAM 0 SRVC var TR_BAUD_CONFIG var WCP_PROF 0 [sys.cfg] DSP var STD 6 [trace.cfg] LAYER_DBG 0xFFFFFFFF TRACE_LEVEL_FILTER 5