FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/r2d/r2d_task.c @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children | 777698cf6583 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/r2d/r2d_task.c Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,93 @@ +/** + + @file: r2d_task.c + + @author Christophe Favergeon + + @version 0.5 + + Purpose: Refresh task for R2D. It is calling the LCD dependent refresh subroutine + +*/ + +/* + + Date Modification + ------------------------------------ + 06/02/2001 Create + 10/18/2001 Version 0.5 for first integration with Riviera database + + + (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved +*/ + + + + +#include "rv/general.h" +#include "rvf/rvf_api.h" +#include "rvm/rvm_api.h" +#include "rvm/rvm_use_id_list.h" +#include "r2d/r2d_messages.h" +#include "r2d/r2d_env.h" +#include "r2d/r2d_config.h" +#include "r2d/r2d.h" +#include "r2d/r2d_i.h" + +extern void r2d_refresh(void); + +extern INT16 r2d_g_refresh_disabled; + +/* FreeCalypso addition */ +int r2d_is_running; + +/******************************************************************************* +** Function r2d_core +** +** Description Core of the r2d task, which refresh the LCD +** +*******************************************************************************/ +T_RVM_RETURN r2d_core(void) +{ + BOOLEAN error_occured = FALSE; +// T_R2D_EVT * msg_ptr_rx, * msg_ptr_tx; + + //r2d_start(); + + rvf_send_trace("R2D REFRESH TASK STARTED", 24, NULL_PARAM, + RV_TRACE_LEVEL_DEBUG_HIGH, R2D_USE_ID); +#ifdef CONFIG_TARGET_LUNA + r2d_refresh_task_secondary_init(); + rvf_send_trace("R2D secondary init complete", 27, NULL_PARAM, + RV_TRACE_LEVEL_DEBUG_HIGH, R2D_USE_ID); +#endif + r2d_is_running = 1; + + /* loop to process messages */ + while (error_occured == FALSE) + { + UINT16 received_event; + //rvf_send_trace("WAIT EVENT",strlen("WAIT EVENT"), NULL_PARAM, + // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); + /* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */ + received_event = rvf_wait ( EVENT_MASK(RVF_APPL_EVT_0), 0); + + //rvf_send_trace("EVENT RECEIVED",strlen("EVENT RECEIVED"), NULL_PARAM, + // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); + + /* If an event related to mailbox 0 is received, then */ + if (received_event & EVENT_MASK(RVF_APPL_EVT_0) ) + { + //rvf_send_trace("GOOD EVENT",strlen("GOOD EVENT"), NULL_PARAM, + // RV_TRACE_LEVEL_DEBUG_HIGH, TRACE_XXX ); + + r2d_g_event_was_sent=FALSE; + if (r2d_g_refresh_disabled==0) + r2d_refresh(); + rvf_delay(RVF_MS_TO_TICKS(R2D_REFRESH_PERIOD)); + } + + } + + return RVM_OK; +}