FreeCalypso > hg > ffs-editor
annotate src/cs/drivers/drv_app/kpd/kpd_task.c @ 4:7ed24ddc5c2a
scripts/mk-component.sh: adapted from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 15 May 2020 02:06:09 +0000 |
parents | 92470e5d0b9e |
children |
rev | line source |
---|---|
0
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /** |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * @file kpd_task.c |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * Coding of the main keypad function : kpd_core |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * This function loop in the process message function for waiting messages. |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 * @author Laurent Sollier (l-sollier@ti.com) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * @version 0.1 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 /* |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 * History: |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 * Date Author Modification |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 * ---------------------------------------- |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 * 10/10/2001 L Sollier Create |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 #include "kpd/kpd_env.h" |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 #include "kpd/kpd_i.h" |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 #include "rv/rv_general.h" |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 #include "rvf/rvf_api.h" |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 #include "rvm/rvm_use_id_list.h" |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 /* External declaration until Riviera 1.6 is available*/ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 extern T_RV_RET kpd_handle_msg(T_RV_HDR* msg_p); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 extern T_RV_RET kpd_handle_timer(UINT8 timer_num); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 /** |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 * @name Functions implementation |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 * |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 /*@{*/ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 /** |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 * function: kpd_core |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 T_RV_RET kpd_core(void) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 BOOLEAN error_occured = FALSE; |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 T_RV_HDR* msg_p; |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 UINT16 received_event; |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 KPD_SEND_TRACE("KPD: Initialization", RV_TRACE_LEVEL_DEBUG_HIGH); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 /* loop to process messages */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 while (error_occured == FALSE) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 /* Wait for the necessary events. */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 received_event = rvf_wait ( 0xffff,0); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 if (received_event & RVF_TASK_MBOX_0_EVT_MASK) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 /* Read the message */ |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 msg_p = (T_RV_HDR*) rvf_read_mbox( KPD_MAILBOX_USED); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 kpd_handle_msg(msg_p); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 if (received_event & RVF_TIMER_0_EVT_MASK) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 kpd_handle_timer(RVF_TIMER_0); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 if (received_event & RVF_TIMER_1_EVT_MASK) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 kpd_handle_timer(RVF_TIMER_1); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 if (received_event & RVF_TIMER_2_EVT_MASK) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 kpd_handle_timer(RVF_TIMER_2); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 if (received_event & RVF_TIMER_3_EVT_MASK) |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 { |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 kpd_handle_timer(RVF_TIMER_3); |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 } |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 return RV_OK; |
92470e5d0b9e
src: partial import from FC Selenite
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88 } |