Changeset 3dfdb9f in multiio


Ignore:
Timestamp:
Jun 10, 2009, 8:31:06 PM (10 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
master
Children:
9fb97d3
Parents:
da59d43
Message:

2009-06-10 Joel Sherrill <joel.sherrill@…>

  • README: Document state of the driver.
  • mio_io.h, mio_io_rtems.c: Move to shared interrupts when possible.
  • rtems_config.c: Implement the RTEMS configuration and initialization.
Location:
pcmmio/original
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • pcmmio/original/ChangeLog

    rda59d43 r3dfdb9f  
     12009-06-10      Joel Sherrill <joel.sherrill@oarcorp.com>
     2
     3        * README: Document state of the driver.
     4        * mio_io.h, mio_io_rtems.c: Move to shared interrupts when possible.
     5        * rtems_config.c: Implement the RTEMS configuration and initialization.
     6
    172009-06-10      Joel Sherrill <joel.sherrill@oarcorp.com>
    28
  • pcmmio/original/README

    rda59d43 r3dfdb9f  
    99with direct access functions.
    1010
     11The driver uses 4 Classic API Barriers.
     12
     13
    1114--joel sherrill
     15
     16Issues
     17======
     18+ The library is not reentrant. The GNU/Linux version uses global variables
     19  to track the state of certain variables and access to these is not protected.
     20  This design flaw is carried over into the RTEMS version.
     21
     22+ We want to timestamp samples and the current code does not do that.
     23
     24+ Need an RTEMS configuration.
  • pcmmio/original/mio_io.h

    rda59d43 r3dfdb9f  
    193193int wait_dio_int(void);
    194194
     195#if defined(__rtems__)
     196  void pcmmio_initialize(
     197    unsigned short _base_port,
     198    unsigned short _irq
     199  );
     200#endif
     201
  • pcmmio/original/mio_io_rtems.c

    rda59d43 r3dfdb9f  
    489489  if ( irq ) {
    490490    pcmmio_irq.name = irq;
    491     BSP_install_rtems_irq_handler( &pcmmio_irq );
     491    #if defined(BSP_SHARED_HANDLER_SUPPORT)
     492      BSP_install_rtems_shared_irq_handler( &pcmmio_irq );
     493    #else
     494      printk( "PCMMIO Installing IRQ handler as non-shared\n" );
     495      BSP_install_rtems_irq_handler( &pcmmio_irq );
     496    #endif
    492497  }
    493498}
     
    510515static int outptr = 0;
    511516
    512 static unsigned char adc2_port_image;
     517/* real copy is in mio_io.c */
     518extern unsigned char adc2_port_image;
    513519
    514520/* This is the common interrupt handler. It is called by the
     
    673679  }
    674680
    675   /* Lastly, read the statur of port 2 interrupt ID register */
     681  /* Lastly, read the status of port 2 interrupt ID register */
    676682  temp = inb(dio_port+0x0a);
    677683
  • pcmmio/original/rtems_config.c

    rda59d43 r3dfdb9f  
     1/*
     2 *  $Id$
     3 */
     4
     5#include <rtems.h>
     6#include <stdlib.h>
     7
     8#include "mio_io.h"
     9
     10extern int main(int, char **);
     11
     12rtems_task Init(
     13  rtems_task_argument ignored
     14)
     15{
     16   
     17  pcmmio_initialize(0, 0);
     18  main(0,NULL);
     19  exit(0);
     20}
     21
     22/* configuration information */
     23#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
     24#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
     25
     26#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
     27#define CONFIGURE_MAXIMUM_TASKS       1
     28#define CONFIGURE_MAXIMUM_BARRIERS    1
     29
     30#define CONFIGURE_INIT
     31#include <rtems/confdefs.h>
     32
Note: See TracChangeset for help on using the changeset viewer.