204 #ifndef Clock__include 205 #define Clock__include 222 #define ti_sysbios_knl_Clock_long_names 223 #include "Clock_defs.h" 237 #define Clock_A_clockDisabled "Cannot create a clock instance when BIOS.clockEnabled is false." 242 #define Clock_A_badThreadType "Cannot create/delete a Clock from a Hwi or Swi thread." 247 #define Clock_A_badTimeout "Bad timeout value." 444 extern const uint32_t Clock_serviceMargin;
502 extern const Clock_Handle Clock_triggerClock;
504 extern void Clock_init(
void);
641 extern void * Clock_getTimerHandle(
void);
650 extern void Clock_setTicks(uint32_t ticks);
763 extern void Clock_workFunc(uintptr_t arg0, uintptr_t arg1);
774 extern void Clock_workFuncDynamic(uintptr_t arg0, uintptr_t arg1);
781 extern void Clock_logTick(
void);
795 extern uint32_t Clock_getCompletedTicks(
void);
808 extern uint32_t Clock_getTickPeriod(
void);
820 extern uint32_t Clock_getTicksUntilInterrupt(
void);
836 extern uint32_t Clock_getTicksUntilTimeout(
void);
843 extern uint32_t Clock_walkQueueDynamic(
bool service, uint32_t tick);
850 extern uint32_t Clock_walkQueuePeriodic(
void);
857 extern void Clock_scheduleNextTick(uint32_t deltaTicks, uint32_t absTick);
866 extern void Clock_addI(Clock_Handle clock,
Clock_FuncPtr clockFxn, uint32_t timeout, uintptr_t
arg);
875 extern void Clock_initI(Clock_Handle clock,
Clock_FuncPtr clockFxn, uint32_t timeout, uintptr_t
arg);
882 extern void Clock_enqueueI(Clock_Handle clock);
890 extern void Clock_removeI(Clock_Handle clock);
910 extern void Clock_startI(Clock_Handle clock);
997 extern void Clock_doTick(uintptr_t
arg);
999 extern void Clock_triggerFunc(uintptr_t
arg);
1003 #define Clock_module ((Clock_Module_State *) &(Clock_Module_state)) 1005 static inline Clock_Handle Clock_handle(
Clock_Struct *str)
1007 return ((Clock_Handle)str);
1010 static inline Clock_Struct * Clock_struct(Clock_Handle h)
1016 #define ti_sysbios_knl_Clock_doTick(a) Clock_tick() 1025 #undef ti_sysbios_knl_Clock_long_names 1026 #include "Clock_defs.h" volatile bool startDuringWorkFunc
Definition: Clock.h:362
void Clock_stop(Clock_Handle clock)
Stop instance.
uint32_t nextScheduledTick
Definition: Clock.h:359
struct Swi_Struct Swi_Struct
Definition: Swi.h:310
uint32_t currTimeout
Definition: Clock.h:411
uint32_t period
Period of this instance (in clock ticks)
Definition: Clock.h:342
void Clock_tickStop(void)
Stop clock for reconfiguration.
void Clock_setPeriod(Clock_Handle clock, uint32_t period)
Set periodic interval.
Clock_Object * Clock_Instance
Definition: Clock.h:254
uint32_t Clock_getPeriod(Clock_Handle clock)
Get period of instance.
Clock_TickMode tickMode
Timer tick mode.
Definition: Clock.h:378
void Clock_delete(Clock_Handle *clock)
Delete a Clock.
uint32_t timeout
Definition: Clock.h:410
uint32_t tickPeriod
Tick period specified in microseconds.
Definition: Clock.h:390
Clock_TickMode
Clock Tick Mode.
Definition: Clock.h:289
void Clock_Params_init(Clock_Params *prms)
Initialize the Clock_Params structure with default values.
Opaque queue element.
Definition: Queue.h:204
Swi_Struct * Swi_Handle
Definition: Swi.h:312
Clock_Handle Clock_construct(Clock_Struct *obj, Clock_FuncPtr clockFxn, unsigned int timeout, const Clock_Params *prms)
Construct a Clock.
uintptr_t arg
Uninterpreted argument passed to instance function.
Definition: Clock.h:348
volatile bool active
Definition: Clock.h:429
void Clock_tick(void)
Advance Clock time by one tick.
void Clock_destruct(Clock_Struct *obj)
Destruct a Clock.
uint32_t maxSkippable
Definition: Clock.h:360
Swi_Struct swiStruct
Definition: Clock.h:356
Clock_TickSource
Clock tick source.
Definition: Clock.h:264
uintptr_t arg
Uninterpreted argument passed to instance function.
Definition: Clock.h:436
const unsigned int Clock_timerId
Timer Id used to create a Timer instance.
Error block.
Definition: Error.h:152
Clock_FuncPtr fxn
Definition: Clock.h:430
bool startFlag
Start immediately after instance is created.
Definition: Clock.h:325
uint32_t Clock_getTimeout(Clock_Handle clock)
Get timeout of instance.
The Clock module is disabled. In this case, it is an error for the application to ever call Clock_tic...
Definition: Clock.h:282
const Clock_TickSource Clock_tickSource
Source of clock ticks.
bool ticking
Definition: Clock.h:363
bool initDone
Used to insure idem potency during startup.
Definition: Clock.h:404
uint32_t timeoutTicks
Definition: Clock.h:437
bool inWorkFunc
Definition: Clock.h:361
The Clock module automatically configures a a Timer instance to drive the Clock tick. The specific timer and its period can be controlled via Clock_timerId and Clock_tickPeriod.
Definition: Clock.h:271
void Clock_setTimeout(Clock_Handle clock, uint32_t timeout)
Set the initial timeout.
void Clock_tickStart(void)
Start clock after reconfiguration.
void Clock_start(Clock_Handle clock)
Start instance.
Clock_Object * Clock_Handle
Definition: Clock.h:253
void Clock_setFunc(Clock_Handle clock, Clock_FuncPtr fxn, uintptr_t arg)
Overwrite Clock function and arg.
volatile unsigned int numTickSkip
Definition: Clock.h:358
uint32_t Clock_getTicks(void)
Time in Clock ticks.
bool Clock_tickReconfig(void)
Reconfigure clock for new cpu frequency.
const uint32_t Clock_tickPeriod
Tick period specified in microseconds.
uint32_t period
Period of this instance (in clock ticks)
Definition: Clock.h:428
Swi_Handle swi
Definition: Clock.h:357
volatile uint32_t ticks
Definition: Clock.h:354
The Application is responsible for calling Clock_tick periodically. Make sure Clock_tickPeriod is set...
Definition: Clock.h:277
unsigned int swiCount
Definition: Clock.h:355
Clock_Handle Clock_Object_first(void)
return handle of the first Clock on Clock list
Clock_Handle Clock_Object_next(Clock_Handle clock)
return handle of the next Clock on Clock list
bool Clock_isActive(Clock_Handle clock)
Determine if Clock object is currently active (ie running)
Clock_TickSource tickSource
Source of clock ticks.
Definition: Clock.h:400
Queue_Object clockQ
Definition: Clock.h:353
Queue_Elem objElem
Definition: Clock.h:409
Software Interrupt Manager.
const Clock_TickMode Clock_tickMode
Timer tick mode.
Clock_Handle Clock_create(Clock_FuncPtr clockFxn, unsigned int timeout, const Clock_Params *prms, Error_Block *eb)
Creates a Clock Instance.
void(* Clock_FuncPtr)(uintptr_t arg1)
Instance function prototype.
Definition: Clock.h:301