RTEMS CPU Kit with SuperCore
4.11.3
|
Instantiate RTEMS Timer Data. More...
![]() |
Modules | |
Classic Timer Implementation | |
Files | |
file | rtemstimer.c |
Timer Manager Initialization. | |
file | rtemstimerdata.c |
Instantiate RTEMS Timer Data. | |
file | timercreate.c |
RTEMS Create Timer. | |
file | timerdelete.c |
RTEMS Delete Timer. | |
file | timerfireafter.c |
RTEMS Timer Fire After. | |
file | timerfirewhen.c |
RTEMS Timer Fire When. | |
file | timergetinfo.c |
RTEMS Get Timer Information. | |
file | timerident.c |
RTEMS Timer Name to Id. | |
file | timerreset.c |
RTEMS Timer Reset. | |
file | timerserverfireafter.c |
RTEMS Timer Server Fire After. | |
file | timerserverfirewhen.c |
RTEMS Timer Server Fire When Directive. | |
Data Structures | |
struct | Timer_Control |
The following records define the control block used to manage each timer. More... | |
struct | rtems_timer_information |
This is the structure filled in by the timer get information service. More... | |
Macros | |
#define | RTEMS_TIMER_SERVER_DEFAULT_PRIORITY (uint32_t) -1 |
This is the default value for the priority of the Timer Server. More... | |
Typedefs | |
typedef void | rtems_timer_service_routine |
The following types define a pointer to a timer service routine. | |
typedef rtems_timer_service_routine(* | rtems_timer_service_routine_entry) (rtems_id, void *) |
This type defines the type used to manage and indirectly invoke Timer Service Routines (TSRs). More... | |
Enumerations | |
enum | Timer_Classes { TIMER_INTERVAL, TIMER_INTERVAL_ON_TASK, TIMER_TIME_OF_DAY, TIMER_TIME_OF_DAY_ON_TASK, TIMER_DORMANT } |
The following enumerated type details the classes to which a timer may belong. More... | |
Instantiate RTEMS Timer Data.
This encapsulates functionality related to the Classic API Timer Manager.
This include file contains all the constants, structures, and prototypes associated with the Timer Manager. This manager provides facilities to configure, initiate, cancel, and delete timers which will fire at specified intervals of time.
Directives provided are:
cancel a time
This manager provides functionality which allows the application to schedule the execution of methods at a specified time in the future. These methods may be scheduled based upon interval or wall time and may be executed in either the clock tick ISR or in a special dedicated timer server task.
#define RTEMS_TIMER_SERVER_DEFAULT_PRIORITY (uint32_t) -1 |
This is the default value for the priority of the Timer Server.
When given this priority, a special high priority not accessible via the Classic API is used.
typedef rtems_timer_service_routine( * rtems_timer_service_routine_entry) (rtems_id, void *) |
This type defines the type used to manage and indirectly invoke Timer Service Routines (TSRs).
This defines the prototype and interface for a function which is to be used as a TSR.
enum Timer_Classes |
The following enumerated type details the classes to which a timer may belong.
rtems_status_code rtems_timer_cancel | ( | rtems_id | id | ) |
rtems_timer_cancel
This routine implements the rtems_timer_cancel directive. It is used to stop the timer associated with ID from firing.
References _Timer_Get().
rtems_status_code rtems_timer_create | ( | rtems_name | name, |
rtems_id * | id | ||
) |
RTEMS Create Timer.
This routine implements the rtems_timer_create directive. The timer will have the name name. It returns the id of the created timer in ID.
[in] | name | is the timer name |
[out] | id | is the pointer to timer id |
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful |
References _Objects_Allocator_unlock(), _Objects_Open(), _Timer_Allocate(), _Timer_Information, _Watchdog_Preinitialize(), Objects_Control::id, Timer_Control::Object, RTEMS_INVALID_ADDRESS, RTEMS_INVALID_NAME, rtems_is_name_valid(), RTEMS_SUCCESSFUL, RTEMS_TOO_MANY, Timer_Control::the_class, Timer_Control::Ticker, and TIMER_DORMANT.
rtems_status_code rtems_timer_delete | ( | rtems_id | id | ) |
RTEMS Delete Timer.
This routine implements the rtems_timer_delete directive. The timer indicated by ID is deleted.
[in] | id | is the timer id |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _Objects_Allocator_lock(), and _Timer_Get().
rtems_status_code rtems_timer_fire_after | ( | rtems_id | id, |
rtems_interval | ticks, | ||
rtems_timer_service_routine_entry | routine, | ||
void * | user_data | ||
) |
RTEMS Timer Fire After.
This routine implements the rtems_timer_fire_after directive. It initiates the timer associated with ID to fire in ticks clock ticks. When the timer fires, the routine will be invoked in the context of the rtems_clock_tick directive which is normally invoked as part of servicing a periodic interupt.
[in] | id | is the timer id |
[in] | ticks | is the interval until routine is fired |
[in] | routine | is the routine to schedule |
[in] | user_data | is the passed as argument to routine when it is fired |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _Timer_Get(), RTEMS_INVALID_ADDRESS, and RTEMS_INVALID_NUMBER.
rtems_status_code rtems_timer_fire_when | ( | rtems_id | id, |
rtems_time_of_day * | wall_time, | ||
rtems_timer_service_routine_entry | routine, | ||
void * | user_data | ||
) |
RTEMS Timer Fire When.
This routine implements the rtems_timer_fire_when directive. It initiates the timer associated with ID to fire at wall_time When the timer fires, the routine will be invoked in the context of the rtems_clock_tick directive which is normally invoked as part of servicing a periodic interupt.
[in] | id | is the timer id |
[in] | wall_time | is the time of day to fire timer |
[in] | routine | is the routine to schedule |
[in] | user_data | is the passed as argument to routine when it is fired |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _TOD_Is_set(), _TOD_To_seconds(), _TOD_Validate(), RTEMS_INVALID_ADDRESS, RTEMS_INVALID_CLOCK, and RTEMS_NOT_DEFINED.
rtems_status_code rtems_timer_get_information | ( | rtems_id | id, |
rtems_timer_information * | the_info | ||
) |
RTEMS Get Timer Information.
This routine implements the rtems_timer_get_information directive. This directive returns information about the timer.
[in] | id | is the timer id |
[in] | the_info | is the pointer to timer information block |
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful and *the_info region information block filled in |
References _Timer_Get(), and RTEMS_INVALID_ADDRESS.
rtems_status_code rtems_timer_ident | ( | rtems_name | name, |
rtems_id * | id | ||
) |
RTEMS Timer Name to Id.
This routine implements the rtems_timer_ident directive. This directive returns the timer ID associated with name. If more than one timer is named name, then the timer to which the ID belongs is arbitrary.
[in] | name | is the user defined message queue name |
[in] | id | is the pointer to timer id |
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful and id filled with the message queue id |
rtems_status_code rtems_timer_initiate_server | ( | uint32_t | priority, |
uint32_t | stack_size, | ||
rtems_attribute | attribute_set | ||
) |
rtems_timer_initiate_server
This routine implements the rtems_timer_initiate_server directive. It creates and starts the server that executes task-based timers. It must be invoked before any task-based timers can be initiated.
This directive creates and starts the server for task-based timers. It must be invoked before any task-based timers can be initiated.
[in] | priority | is the timer server priority |
[in] | stack_size | is the stack size in bytes |
[in] | attribute_set | is the timer server attributes |
rtems_status_code rtems_timer_reset | ( | rtems_id | id | ) |
RTEMS Timer Reset.
Timer Manager - RTEMS Timer Reset
This routine implements the rtems_timer_reset directive. It is used to reinitialize the interval timer associated with ID just as if rtems_timer_fire_after were re-invoked with the same arguments that were used to initiate this timer.
rtems_status_code rtems_timer_server_fire_after | ( | rtems_id | id, |
rtems_interval | ticks, | ||
rtems_timer_service_routine_entry | routine, | ||
void * | user_data | ||
) |
RTEMS Timer Server Fire After.
This routine implements the rtems_timer_server_fire_after directive. It initiates the timer associated with ID to fire in ticks clock ticks. When the timer fires, the routine will be invoked by the Timer Server in the context of a task NOT IN THE CONTEXT of the clock tick interrupt.
[in] | id | is the timer id |
[in] | ticks | is the interval until routine is fired |
[in] | routine | is the routine to schedule |
[in] | user_data | is the passed as argument to routine when it is fired |
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _Timer_Get(), _Timer_server, RTEMS_INCORRECT_STATE, RTEMS_INVALID_ADDRESS, and RTEMS_INVALID_NUMBER.
rtems_status_code rtems_timer_server_fire_when | ( | rtems_id | id, |
rtems_time_of_day * | wall_time, | ||
rtems_timer_service_routine_entry | routine, | ||
void * | user_data | ||
) |
RTEMS Timer Server Fire When Directive.
Timer Manager - RTEMS Timer Server Fire When Directive
This routine implements the rtems_timer_server_fire_when directive. It initiates the timer associated with ID to fire at wall_time When the timer fires, the routine will be invoked by the Timer Server in the context of a task NOT IN THE CONTEXT of the clock tick interrupt.
References _Timer_server, _TOD_Is_set(), _TOD_To_seconds(), _TOD_Validate(), RTEMS_INCORRECT_STATE, RTEMS_INVALID_ADDRESS, RTEMS_INVALID_CLOCK, and RTEMS_NOT_DEFINED.