413 #define do_hwi_undef_short_names 414 #define do_hwi_short_to_long_name_conversion 415 #include "Hwi_defs.h" 418 #ifndef ti_sysbios_family_arm_m3_Hwi__include 419 #define ti_sysbios_family_arm_m3_Hwi__include 435 #define Hwi_E_badIntNum "intnum: %d is out of range" 440 #define Hwi_E_alreadyDefined "Hwi already defined: intr# %d" 446 #define Hwi_E_hwiLimitExceeded "Too many interrupts defined" 451 #define Hwi_E_exception "hardware exception id = %d, pc = 0x%08x" 456 #define Hwi_E_noIsr "no ISR, id = %d, pc = 0x%08x" 461 #define Hwi_E_NMI "NMI: %s" 466 #define Hwi_E_hardFault "Hard-fault: %s" 471 #define Hwi_E_memFault "Mem-fault: %s, addresss: 0x%08x" 476 #define Hwi_E_busFault "Bus-fault: %s, address: 0x%08x" 481 #define Hwi_E_usageFault "Usage-fault: %s" 486 #define Hwi_E_svCall "SvCall: svNum = %d" 491 #define Hwi_E_debugMon "Debug-monitor: %s" 496 #define Hwi_E_reserved "reserved %s %d" 501 #define Hwi_E_stackOverflow "ISR stack overflow" 511 typedef struct Hwi_Struct2__ Hwi_Struct2__;
628 uint8_t USERSETMPEND;
629 uint8_t NONEBASETHRDENA;
644 uint32_t RES_20 [56];
646 uint32_t RES_120 [24];
648 uint32_t RES_1A0 [24];
650 uint32_t RES_220 [24];
652 uint32_t RES_2A0 [24];
654 uint32_t RES_320 [56];
656 uint32_t RES_4F0 [516];
688 uint32_t RES_D8C[93];
690 uint32_t RES_F04[12];
696 uint32_t RES_F48[34];
815 extern const bool Hwi_dispatcherAutoNestingSupport;
832 extern const bool Hwi_dispatcherSwiSupport;
849 extern const bool Hwi_dispatcherTaskSupport;
864 extern const bool Hwi_dispatcherIrpTrackingSupport;
1040 extern const uint32_t Hwi_ccr;
1194 extern void Hwi_init(
void);
1200 extern void Hwi_Instance_finalize(
Hwi_Object *obj,
int ec);
1348 extern bool Hwi_getCoreStackInfo(
Hwi_StackInfo *stkInfo,
bool computeStackDepth,
unsigned int coreId);
1357 extern void Hwi_startup(
void);
1363 extern void Hwi_switchFromBootStack(
void);
1371 extern void Hwi_post(
unsigned int intNum);
1381 extern char *Hwi_getTaskSP(
void);
1510 extern void Hwi_plug(
unsigned int intNum,
void *fxn);
1535 extern void Hwi_setPriority(
unsigned int intNum,
unsigned int priority);
1555 extern Hwi_Handle Hwi_construct2(Hwi_Struct2 *hwi,
int intNum,
Hwi_FuncPtr hwiFxn,
const Hwi_Params *prms);
1556 extern void Hwi_initNVIC(
void);
1557 extern void Hwi_initStacks(
void * hwiStack);
1559 extern void Hwi_excHandlerAsm(
void);
1560 extern void Hwi_excHandler(
unsigned int *excStack,
unsigned int lr);
1561 extern void Hwi_excHandlerMin(
unsigned int *excStack,
unsigned int lr);
1562 extern void Hwi_excHandlerMax(
unsigned int *excStack,
unsigned int lr);
1563 extern void Hwi_excFillContext(
unsigned int *excStack);
1564 extern void Hwi_excNmi(
unsigned int *excStack);
1565 extern void Hwi_excHardFault(
unsigned int *excStack);
1566 extern void Hwi_excMemFault(
unsigned int *excStack);
1567 extern void Hwi_excBusFault(
unsigned int *excStack);
1568 extern void Hwi_excUsageFault(
unsigned int *excStack);
1569 extern void Hwi_excSvCall(
unsigned int *excStack);
1570 extern void Hwi_excDebugMon(
unsigned int *excStack);
1571 extern void Hwi_excReserved(
unsigned int *excStack,
unsigned int excNum);
1572 extern void Hwi_excNoIsr(
unsigned int *excStack,
unsigned int excNum);
1573 extern void Hwi_excDumpRegs(
unsigned int lr);
1574 extern void Hwi_pendSV(
void);
1575 extern void Hwi_setStackLimit(
void * stackBase);
1576 extern unsigned int Hwi_swiDisableNull(
void);
1577 extern void Hwi_swiRestoreNull(
unsigned int key);
1578 extern void Hwi_dispatch(
void);
1579 extern unsigned int Hwi_dispatchC(uintptr_t irp, uint32_t dummy1, uint32_t dummy2,
Hwi_Object *hwi);
1580 extern void Hwi_doSwiRestore(
unsigned int tskKey);
1581 extern void Hwi_doTaskRestore(
unsigned int tskKey);
1582 extern unsigned int Hwi_swiDisable();
1583 extern void Hwi_swiRestore(
unsigned int key);
1584 extern void Hwi_swiRestoreHwi(
unsigned int key);
1585 extern unsigned int Hwi_taskDisable();
1586 extern void Hwi_taskRestoreHwi(
unsigned int key);
1594 extern void Hwi_switchFromBootStack(
void);
1597 extern void Hwi_checkStack(
void);
1600 extern void Hwi_initStack(
void);
1603 extern void Hwi_initStackMin(
void);
1606 extern void Hwi_switchAndRunFunc(
void (*func)(
void));
1634 #define Hwi_module ((Hwi_Module_State *) &(Hwi_Module_state)) 1636 #define Hwi_Object_heap() NULL 1638 static inline Hwi_Handle Hwi_handle(
Hwi_Struct *str)
1640 return ((Hwi_Handle)str);
1643 static inline Hwi_Struct * Hwi_struct(Hwi_Handle h)
1656 #if defined(ti_sysbios_family_arm_m3_Hwi__nolocalnames) 1657 #define do_hwi_undef_short_names 1658 #include "Hwi_defs.h" void * r0
Definition: Hwi.h:725
void * hwiStackBase
Definition: Hwi.h:607
uint32_t PID0
Definition: Hwi.h:701
const int Hwi_NUM_PRIORITIES
The Cortex M3/M4 NVIC supports up to 256 interrupt priorities.
Hwi_Struct * Hwi_Handle
Definition: Hwi.h:505
bool enableInt
Enable this interrupt when object is created? Default is true.
Definition: Hwi.h:1056
void * BFAR
Definition: Hwi.h:749
uint32_t PID2
Definition: Hwi.h:703
uint8_t * intAffinity
Definition: Hwi.h:766
void(* deleteFxn)(Hwi_Handle arg1)
Definition: Hwi.h:572
uint8_t MMFSR
Definition: Hwi.h:665
uint32_t ISAR1
Definition: Hwi.h:682
int priority
Interrupt priority.
Definition: Hwi.h:1073
void Hwi_setFunc(Hwi_Handle hwi, Hwi_FuncPtr fxn, uintptr_t arg)
Overwrite Hwi function and arg.
BIOS_ThreadType
Current thread type definitions.
Definition: BIOS.h:189
uint32_t AIRCR
Definition: Hwi.h:660
size_t hwiStackPeak
Definition: Hwi.h:605
uint32_t CID1
Definition: Hwi.h:706
uint32_t BFAR
Definition: Hwi.h:671
uint16_t UFSR
Definition: Hwi.h:667
uint32_t SHCSR
Definition: Hwi.h:664
const unsigned int Hwi_numSparseInterrupts
If Hwi.dispatchTableSize is initialized by the user then Hwi.numSparseInterrupts is set to the value ...
uint32_t CPACR
Definition: Hwi.h:687
void Hwi_restoreInterrupt(unsigned int intNum, unsigned int key)
Restore a specific interrupt's enabled/disabled state.
void * excStack
Definition: Hwi.h:758
void * r9
Definition: Hwi.h:734
void * MMFSR
Definition: Hwi.h:743
bool Hwi_getStackInfo(Hwi_StackInfo *stkInfo, bool computeStackDepth)
Get Hwi stack usage Info.
void * dispatchTable
Definition: Hwi.h:764
void Hwi_clearInterrupt(unsigned int intNum)
Clear a specific interrupt.
void ** hookEnv
Definition: Hwi.h:791
Hwi_ExceptionHookFuncPtr Hwi_ExcHookFunc
Definition: Hwi.h:557
char * taskSP
Definition: Hwi.h:755
uint32_t SCR
Definition: Hwi.h:661
void * UFSR
Definition: Hwi.h:745
Hwi_Handle Hwi_construct(Hwi_Struct *obj, int intNum, Hwi_FuncPtr hwiFxn, const Hwi_Params *prms, Error_Block *eb)
void * r7
Definition: Hwi.h:732
void * r5
Definition: Hwi.h:730
uint32_t STRVR
Definition: Hwi.h:641
uint32_t VTOR
Definition: Hwi.h:659
const unsigned int Hwi_priGroup
The PRIGROUP setting. Default is 0.
uint8_t priority
Interrupt priority.
Definition: Hwi.h:789
Hwi_Handle Hwi_create(int intNum, Hwi_FuncPtr hwiFxn, const Hwi_Params *prms, Error_Block *eb)
uint32_t FPCCR
Definition: Hwi.h:691
uint32_t PID6
Definition: Hwi.h:699
uint32_t PFR0
Definition: Hwi.h:673
uint32_t MVFR0
Definition: Hwi.h:694
uint32_t MMFR0
Definition: Hwi.h:677
void * Hwi_getHookContext(Hwi_Handle hwi, int id)
Get hook instance's context for a Hwi.
void Hwi_reconfig(Hwi_Handle hwi, Hwi_FuncPtr fxn, const Hwi_Params *params)
Reconfigure a dispatched interrupt.
void * vectorTableBase
Definition: Hwi.h:763
void(* Hwi_ExcHandlerFuncPtr)(unsigned int *arg1, unsigned int arg2)
Hwi exception handler function type definition.
Definition: Hwi.h:797
void Hwi_excSetBuffers(void *excContextBuffer, void *excStackBuffer)
Set the exception context and stack buffer pointers.
void * ICSR
Definition: Hwi.h:742
User supplies interrupt enable masks (not support on cortexM devices)
Definition: Hwi.h:589
uint32_t STCSR
Definition: Hwi.h:640
void * r3
Definition: Hwi.h:728
void * r1
Definition: Hwi.h:726
uint32_t ISAR2
Definition: Hwi.h:683
size_t hwiStackSize
Definition: Hwi.h:606
unsigned int Hwi_disableInterrupt(unsigned int intNum)
Disable a specific interrupt.
bool useDispatcher
Use the interrupt dispatcher with this interrupt. Default is true.
Definition: Hwi.h:1093
bool initDone
Definition: Hwi.h:769
uint32_t FPCAR
Definition: Hwi.h:692
void * r6
Definition: Hwi.h:731
void * BFSR
Definition: Hwi.h:744
unsigned int Hwi_enableInterrupt(unsigned int intNum)
Enable a specific interrupt.
uint32_t PID7
Definition: Hwi.h:700
void Hwi_destruct(Hwi_Struct *obj)
Only this interrupt is disabled (not support on cortexM devices)
Definition: Hwi.h:587
uint32_t DFR0
Definition: Hwi.h:675
uint32_t RES_08
Definition: Hwi.h:638
void Hwi_setPriority(unsigned int intNum, unsigned int priority)
Set an interrupt's relative priority.
void Hwi_post(unsigned int intNum)
Generate an interrupt for test purposes.
void * HFSR
Definition: Hwi.h:746
uint32_t CID3
Definition: Hwi.h:708
void * r2
Definition: Hwi.h:727
uint32_t PID4
Definition: Hwi.h:697
void * excContext
Definition: Hwi.h:757
unsigned int Hwi_Enable()
Globally enable interrupts.
Hwi_Struct * Hwi_Instance
Definition: Hwi.h:506
uint32_t ISAR4
Definition: Hwi.h:685
void * r10
Definition: Hwi.h:735
void Hwi_Restore(uint32_t key)
restore global interrupts to the state they were in prior Hwi_disable().
uint32_t MMFR3
Definition: Hwi.h:680
Hwi_Handle Hwi_Object_next(Hwi_Object *obj)
uint32_t ICTR
Definition: Hwi.h:637
uint32_t CCR
Definition: Hwi.h:662
SYS/BIOS Top-Level Manager.
volatile Hwi_NVIC Hwi_nvic
Physical Nested Vectored Interrupt Controller Device. short name is "Hwi_nvic" long name is "ti_sysbi...
void * pc
Definition: Hwi.h:740
Error block.
Definition: Error.h:152
void * sp
Definition: Hwi.h:738
uint32_t ISAR0
Definition: Hwi.h:681
No interrupts are disabled (not support on cortexM devices)
Definition: Hwi.h:583
void * r12
Definition: Hwi.h:737
void * MMAR
Definition: Hwi.h:748
void * AFSR
Definition: Hwi.h:750
void * DFSR
Definition: Hwi.h:747
uint8_t BFSR
Definition: Hwi.h:666
Nested Vectored Interrupt Controller.
Definition: Hwi.h:635
uint32_t CPUIDBR
Definition: Hwi.h:657
void(* Hwi_FuncPtr)(uintptr_t)
Hwi create function type definition.
Definition: Hwi.h:544
Hwi_Handle Hwi_Object_first(void)
void(* beginFxn)(Hwi_Handle arg1)
Definition: Hwi.h:570
Hwi_Handle Hwi_getHandle(unsigned int intNum)
Returns Hwi_handle associated with intNum.
Hwi_FuncPtr fxn
Definition: Hwi.h:778
void(* endFxn)(Hwi_Handle arg1)
Definition: Hwi.h:571
uint32_t ICSR
Definition: Hwi.h:658
void(* Hwi_ExceptionHookFuncPtr)(Hwi_ExcContext *arg1)
Exception hook function type definition.
Definition: Hwi.h:554
uint32_t FPDSCR
Definition: Hwi.h:693
uintptr_t irp
Definition: Hwi.h:779
Hwi_MaskingOption
Interrupt masking options.
Definition: Hwi.h:581
uintptr_t arg
ISR function argument. Default is 0.
Definition: Hwi.h:777
int length
Definition: Hwi.h:575
uint32_t AFR0
Definition: Hwi.h:676
uint32_t PID3
Definition: Hwi.h:704
int eventId
Interrupt event ID (Interrupt Selection Number)
Definition: Hwi.h:1063
void * psr
Definition: Hwi.h:741
uint32_t AFSR
Definition: Hwi.h:672
BIOS_ThreadType threadType
Definition: Hwi.h:721
void Hwi_plug(unsigned int intNum, void *fxn)
Plug a non dispatched interrupt vector with an ISR address.
volatile bool vnvicFlushRequired
Definition: Hwi.h:765
uint32_t DFSR
Definition: Hwi.h:669
void * isrStackSize
Definition: Hwi.h:762
Exception Context - Register contents at the time of an exception.
Definition: Hwi.h:720
void * isrStackBase
Definition: Hwi.h:760
void Hwi_Params_init(Hwi_Params *prms)
void Hwi_setHookContext(Hwi_Handle hwi, int id, void *hookContext)
Set hook instance's context for a Hwi.
uint32_t PID5
Definition: Hwi.h:698
Hwi_VectorFuncPtr * vectorTable
Definition: Hwi.h:768
uint32_t MMFR1
Definition: Hwi.h:678
uint32_t STCVR
Definition: Hwi.h:642
uint32_t MMAR
Definition: Hwi.h:670
unsigned int swiTaskKeys
Definition: Hwi.h:761
All interrupts are disabled (not support on cortexM devices)
Definition: Hwi.h:585
Hwi_MaskingOption maskSetting
maskSetting. Default is Hwi_MaskingOption "Hwi_MaskingOption_SELF"
Definition: Hwi.h:1048
uint32_t MVFR1
Definition: Hwi.h:695
void(* Hwi_VectorFuncPtr)(void)
Hwi vector function type definition.
Definition: Hwi.h:549
void(* registerFxn)(int arg1)
Definition: Hwi.h:568
unsigned int Hwi_Disable()
Globally disable interrupts.
uint32_t RES_0C
Definition: Hwi.h:639
void * threadHandle
Definition: Hwi.h:722
uintptr_t arg
ISR function argument. Default is 0.
Definition: Hwi.h:1052
uint32_t STI
Definition: Hwi.h:689
uint32_t CID2
Definition: Hwi.h:707
uint32_t CID0
Definition: Hwi.h:705
const unsigned int Hwi_disablePriority
The priority that BASEPRI is set to by Hwi_disable().
const int Hwi_NUM_INTERRUPTS
The Cortex M3/M4 NVIC supports up to 256 interrupts/exceptions.
size_t threadStackSize
Definition: Hwi.h:724
All current and lower priority interrupts are disabled. (default for all cortexM devices) ...
Definition: Hwi.h:591
void * lr
Definition: Hwi.h:739
Structure contains Hwi stack usage info.
Definition: Hwi.h:604
int16_t intNum
Definition: Hwi.h:790
uint32_t ISAR3
Definition: Hwi.h:684
void * r8
Definition: Hwi.h:733
uint32_t RES_00
Definition: Hwi.h:636
void * r11
Definition: Hwi.h:736
uint32_t STCALIB
Definition: Hwi.h:643
void * r4
Definition: Hwi.h:729
void(* createFxn)(Hwi_Handle arg1, Error_Block *arg2)
Definition: Hwi.h:569
const Hwi_ExcHookFunc Hwi_excHookFunc
User Exception hook function.
uint32_t MMFR2
Definition: Hwi.h:679
void Hwi_delete(Hwi_Handle *handle)
bool excActive
Definition: Hwi.h:756
void * threadStack
Definition: Hwi.h:723
uintptr_t Hwi_getIrp(Hwi_Handle hwi)
Get address of interrupted instruction.
Hwi hook set type definition.
Definition: Hwi.h:567
uint32_t PFR1
Definition: Hwi.h:674
void * isrStack
Definition: Hwi.h:759
uint32_t HFSR
Definition: Hwi.h:668
uint32_t * intAffinityMasks
Definition: Hwi.h:767
uint32_t PID1
Definition: Hwi.h:702
Hwi_FuncPtr Hwi_getFunc(Hwi_Handle hwi, uintptr_t *arg)
Get Hwi function and arg.