view src/cs/drivers/drv_app/fchg/fchg_task.c @ 702:9394305d4ff5
default tip
etm_audio.c: fix off-by-one error in auw of FIR coefficients
This fix was already made in FC Tourmaline a while back, but it is also
the kind of bugfix that deserves to be backported to Magnetite and
Selenite as well.
author
Mychaela Falconia <falcon@freecalypso.org>
date
Mon, 31 Oct 2022 00:14:44 +0000 (2022-10-31)
parents
1c711302732a
children
line source
+ − /*
+ − * The FCHG task's core function lives here.
+ − */
+ −
+ − #include "fchg/fchg_env.h"
+ − #include "fchg/fchg_func_i.h"
+ − #include "rv/rv_general.h"
+ − #include "rvf/rvf_api.h"
+ − #include "rvm/rvm_use_id_list.h"
+ − #include "abb/abb.h"
+ −
+ − static void set_initial_state(void)
+ − {
+ − SYS_UWORD16 abb_status;
+ −
+ − abb_status = ABB_Read_Status();
+ − if (abb_status & CHGPRES) {
+ − if (pwr_ctrl->config_present)
+ − pwr_ctrl->state = FCHG_STATE_READY_TO_CHARGE;
+ − else
+ − pwr_ctrl->state = FCHG_STATE_NO_CHARGING;
+ − } else
+ − pwr_ctrl->state = FCHG_STATE_NO_EXT_PWR;
+ − }
+ −
+ − T_RV_RET fchg_core(void)
+ − {
+ − BOOLEAN error_occured = FALSE;
+ − T_RV_HDR *msg_ptr;
+ −
+ − rvf_send_trace("FCHG task: Initialization", 25, NULL_PARAM,
+ − RV_TRACE_LEVEL_DEBUG_LOW, FCHG_USE_ID);
+ − pwr_load_ffs_batt_table();
+ − pwr_load_ffs_charging_config();
+ − set_initial_state();
+ − pwr_init_discharge();
+ −
+ − /* loop to process messages */
+ − while (error_occured == FALSE)
+ − {
+ − /* Wait for the necessary events (infinite wait for a msg in the mailbox 0). */
+ − UINT16 received_event = rvf_wait (0xffff, 0);
+ −
+ − /* If an event related to mailbox 0 is received, then */
+ − if (received_event & RVF_TASK_MBOX_0_EVT_MASK)
+ − {
+ − /* Read the message in the driver mailbox and delegate action..*/
+ − msg_ptr = (T_RV_HDR *) rvf_read_mbox(FCHG_MAILBOX);
+ − if (msg_ptr) {
+ − pwr_process_message(msg_ptr);
+ − rvf_free_buf ((void *) msg_ptr);
+ − }
+ − }
+ −
+ − /* Timers */
+ − if (received_event & RVF_TIMER_0_EVT_MASK)
+ − pwr_handle_timer();
+ −
+ − } // end of while
+ − return RV_OK;
+ − }