mirror of https://github.com/ARMmbed/mbed-os.git
61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
/*
|
|
* Copyright (c) 2014-2015 ARM Limited. All rights reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
* Licensed under the Apache License, Version 2.0 (the License); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
#ifndef _PL_NANO_TIMER_SYS_H_
|
|
#define _PL_NANO_TIMER_SYS_H_
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "eventOS_event.h"
|
|
|
|
/* We borrow base event storage, including its list link, and add a time field */
|
|
typedef struct sys_timer_struct_s {
|
|
arm_event_storage_t event;
|
|
uint32_t launch_time; // tick value
|
|
uint32_t period;
|
|
} sys_timer_struct_s;
|
|
|
|
|
|
/**
|
|
* Initialize system timer
|
|
* */
|
|
extern void timer_sys_init(void);
|
|
|
|
extern uint32_t timer_get_runtime_ticks(void);
|
|
int8_t timer_sys_wakeup(void);
|
|
void timer_sys_disable(void);
|
|
void timer_sys_event_free(struct arm_event_storage *event);
|
|
|
|
// This require lock to be held
|
|
void timer_sys_event_cancel_critical(struct arm_event_storage *event);
|
|
|
|
/**
|
|
* System Timer update and synch after sleep
|
|
*
|
|
* \param ticks Time in 10 ms resolution
|
|
*
|
|
* \return none
|
|
*
|
|
* */
|
|
void system_timer_tick_update(uint32_t ticks);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /*_PL_NANO_TIMER_SYS_H_*/
|