diff options
| author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-11-16 16:15:47 +0000 | 
|---|---|---|
| committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2007-11-16 16:15:47 +0000 | 
| commit | 195a9c7951c29828d7eddefcd77d7a98d18f75f3 (patch) | |
| tree | 3d35476b307e444dba02720f3503be1e6c6c2296 /demos/ARM7-LPC214x-GCC/main.c | |
| parent | da365c95e4460bda1f5b49a2e55ae144da1faf3f (diff) | |
| download | ChibiOS-195a9c7951c29828d7eddefcd77d7a98d18f75f3.tar.gz ChibiOS-195a9c7951c29828d7eddefcd77d7a98d18f75f3.tar.bz2 ChibiOS-195a9c7951c29828d7eddefcd77d7a98d18f75f3.zip  | |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@94 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/ARM7-LPC214x-GCC/main.c')
| -rw-r--r-- | demos/ARM7-LPC214x-GCC/main.c | 56 | 
1 files changed, 33 insertions, 23 deletions
diff --git a/demos/ARM7-LPC214x-GCC/main.c b/demos/ARM7-LPC214x-GCC/main.c index a889706e6..14e03170d 100644 --- a/demos/ARM7-LPC214x-GCC/main.c +++ b/demos/ARM7-LPC214x-GCC/main.c @@ -25,12 +25,21 @@  #include "buzzer.h"
  #include "evtimer.h"
 +/*
 + * System Idle Thread, this thread only runs when on other threads in the
 + * system require the CPU.
 + * The role of this thread is to minimize the power consumption when idling
 + * and serve the interrupts.
 + */
  static BYTE8 waIdleThread[UserStackSize(16)];
  static t_msg IdleThread(void *arg) {
    chSysPause();
  }
 +/*
 + * Red LEDs blinker thread, times are in milliseconds.
 + */
  static BYTE8 waThread1[UserStackSize(32)];
  static t_msg Thread1(void *arg) {
 @@ -47,6 +56,9 @@ static t_msg Thread1(void *arg) {    return 0;
  }
 +/*
 + * Yellow LED blinker thread, times are in milliseconds.
 + */
  static BYTE8 waThread2[UserStackSize(32)];
  static t_msg Thread2(void *arg) {
 @@ -59,6 +71,9 @@ static t_msg Thread2(void *arg) {    return 0;
  }
 +/*
 + * Executed as event handler at 500mS intervals.
 + */
  static void TimerHandler(t_eventid id) {
    t_msg TestThread(void *p);
 @@ -76,6 +91,10 @@ static void TimerHandler(t_eventid id) {    }
  }
 +/*
 + * Plays sounds when a MMC/SD card is inserted, then initializes the MMC
 + * driver and reads a sector.
 + */
  static void InsertHandler(t_eventid id) {
    static BYTE8 rwbuf[512];
    MMCCSD data;
 @@ -92,39 +111,30 @@ static void InsertHandler(t_eventid id) {    PlaySound(440, 200);
  }
 +/*
 + * Plays sounds when a MMC/SD card is removed.
 + */
  static void RemoveHandler(t_eventid id) {
    PlaySoundWait(2000, 100);
    PlaySoundWait(1000, 100);
  }
 -/*static BYTE8 waThread3[UserStackSize(256)];*/
 -static EvTimer evt;
 -static t_evhandler evhndl[] = {
 -  TimerHandler,
 -  InsertHandler,
 -  RemoveHandler
 -};
 -
 -/*static t_msg Thread3(void *arg) {
 -  struct EventListener el0, el1, el2;
 -
 -  evtInit(&evt, 500);
 -  evtStart(&evt);
 -  mmcStartPolling();
 -  evtRegister(&evt, &el0, 0);
 -  chEvtRegister(&MMCInsertEventSource, &el1, 1);
 -  chEvtRegister(&MMCRemoveEventSource, &el2, 2);
 -  while (TRUE)
 -    chEvtWait(ALL_EVENTS, evhndl);
 -  return 0;
 -}*/
 -
 +/*
 + * Entry point, the interrupts are disabled on entry.
 + */
  int main(int argc, char **argv) {
 +  static const t_evhandler evhndl[] = {
 +    TimerHandler,
 +    InsertHandler,
 +    RemoveHandler
 +  };
 +  static EvTimer evt;
    struct EventListener el0, el1, el2;
    /*
 -   * The main() function becomes a thread here, ChibiOS/RT goes live.
 +   * The main() function becomes a thread here then the interrupts are
 +   * enabled and ChibiOS/RT goes live.
     */
    chSysInit();
  | 
