mbed-rtos for GR-peach

Fork of mbed-rtos by mbed official

Committer:
mbed_official
Date:
Thu Nov 06 13:00:11 2014 +0000
Revision:
49:77c8e4604045
Synchronized with git revision 7b90c2ba137baaf9769219e0e8a7b8e8d1299c4f

Full URL: https://github.com/mbedmicro/mbed/commit/7b90c2ba137baaf9769219e0e8a7b8e8d1299c4f/

This target is not yet tested, so it can't be released as part of the official
SDK build for now.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 49:77c8e4604045 1 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 2 * RL-ARM - RTX
mbed_official 49:77c8e4604045 3 *----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 4 * Name: RT_TIME.C
mbed_official 49:77c8e4604045 5 * Purpose: Delay and interval wait functions
mbed_official 49:77c8e4604045 6 * Rev.: V4.60
mbed_official 49:77c8e4604045 7 *----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 8 *
mbed_official 49:77c8e4604045 9 * Copyright (c) 1999-2009 KEIL, 2009-2012 ARM Germany GmbH
mbed_official 49:77c8e4604045 10 * All rights reserved.
mbed_official 49:77c8e4604045 11 * Redistribution and use in source and binary forms, with or without
mbed_official 49:77c8e4604045 12 * modification, are permitted provided that the following conditions are met:
mbed_official 49:77c8e4604045 13 * - Redistributions of source code must retain the above copyright
mbed_official 49:77c8e4604045 14 * notice, this list of conditions and the following disclaimer.
mbed_official 49:77c8e4604045 15 * - Redistributions in binary form must reproduce the above copyright
mbed_official 49:77c8e4604045 16 * notice, this list of conditions and the following disclaimer in the
mbed_official 49:77c8e4604045 17 * documentation and/or other materials provided with the distribution.
mbed_official 49:77c8e4604045 18 * - Neither the name of ARM nor the names of its contributors may be used
mbed_official 49:77c8e4604045 19 * to endorse or promote products derived from this software without
mbed_official 49:77c8e4604045 20 * specific prior written permission.
mbed_official 49:77c8e4604045 21 *
mbed_official 49:77c8e4604045 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 49:77c8e4604045 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 49:77c8e4604045 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
mbed_official 49:77c8e4604045 25 * ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
mbed_official 49:77c8e4604045 26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
mbed_official 49:77c8e4604045 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
mbed_official 49:77c8e4604045 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
mbed_official 49:77c8e4604045 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
mbed_official 49:77c8e4604045 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
mbed_official 49:77c8e4604045 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
mbed_official 49:77c8e4604045 32 * POSSIBILITY OF SUCH DAMAGE.
mbed_official 49:77c8e4604045 33 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 34
mbed_official 49:77c8e4604045 35 #include "rt_TypeDef.h"
mbed_official 49:77c8e4604045 36 #include "RTX_Conf.h"
mbed_official 49:77c8e4604045 37 #include "rt_Task.h"
mbed_official 49:77c8e4604045 38 #include "rt_Time.h"
mbed_official 49:77c8e4604045 39
mbed_official 49:77c8e4604045 40 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 41 * Global Variables
mbed_official 49:77c8e4604045 42 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 43
mbed_official 49:77c8e4604045 44 /* Free running system tick counter */
mbed_official 49:77c8e4604045 45 U32 os_time;
mbed_official 49:77c8e4604045 46
mbed_official 49:77c8e4604045 47
mbed_official 49:77c8e4604045 48 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 49 * Functions
mbed_official 49:77c8e4604045 50 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 51
mbed_official 49:77c8e4604045 52
mbed_official 49:77c8e4604045 53 /*--------------------------- rt_time_get -----------------------------------*/
mbed_official 49:77c8e4604045 54
mbed_official 49:77c8e4604045 55 U32 rt_time_get (void) {
mbed_official 49:77c8e4604045 56 /* Get system time tick */
mbed_official 49:77c8e4604045 57 return (os_time);
mbed_official 49:77c8e4604045 58 }
mbed_official 49:77c8e4604045 59
mbed_official 49:77c8e4604045 60
mbed_official 49:77c8e4604045 61 /*--------------------------- rt_dly_wait -----------------------------------*/
mbed_official 49:77c8e4604045 62
mbed_official 49:77c8e4604045 63 void rt_dly_wait (U16 delay_time) {
mbed_official 49:77c8e4604045 64 /* Delay task by "delay_time" */
mbed_official 49:77c8e4604045 65 rt_block (delay_time, WAIT_DLY);
mbed_official 49:77c8e4604045 66 }
mbed_official 49:77c8e4604045 67
mbed_official 49:77c8e4604045 68
mbed_official 49:77c8e4604045 69 /*--------------------------- rt_itv_set ------------------------------------*/
mbed_official 49:77c8e4604045 70
mbed_official 49:77c8e4604045 71 void rt_itv_set (U16 interval_time) {
mbed_official 49:77c8e4604045 72 /* Set interval length and define start of first interval */
mbed_official 49:77c8e4604045 73 os_tsk.run->interval_time = interval_time;
mbed_official 49:77c8e4604045 74 os_tsk.run->delta_time = interval_time + (U16)os_time;
mbed_official 49:77c8e4604045 75 }
mbed_official 49:77c8e4604045 76
mbed_official 49:77c8e4604045 77
mbed_official 49:77c8e4604045 78 /*--------------------------- rt_itv_wait -----------------------------------*/
mbed_official 49:77c8e4604045 79
mbed_official 49:77c8e4604045 80 void rt_itv_wait (void) {
mbed_official 49:77c8e4604045 81 /* Wait for interval end and define start of next one */
mbed_official 49:77c8e4604045 82 U16 delta;
mbed_official 49:77c8e4604045 83
mbed_official 49:77c8e4604045 84 delta = os_tsk.run->delta_time - (U16)os_time;
mbed_official 49:77c8e4604045 85 os_tsk.run->delta_time += os_tsk.run->interval_time;
mbed_official 49:77c8e4604045 86 if ((delta & 0x8000) == 0) {
mbed_official 49:77c8e4604045 87 rt_block (delta, WAIT_ITV);
mbed_official 49:77c8e4604045 88 }
mbed_official 49:77c8e4604045 89 }
mbed_official 49:77c8e4604045 90
mbed_official 49:77c8e4604045 91 /*----------------------------------------------------------------------------
mbed_official 49:77c8e4604045 92 * end of file
mbed_official 49:77c8e4604045 93 *---------------------------------------------------------------------------*/
mbed_official 49:77c8e4604045 94