Changeset 814986ce in rtems


Ignore:
Timestamp:
Oct 16, 2007, 5:14:38 PM (12 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.8
Children:
9fe54b2
Parents:
df3055aa
Message:

2007-10-14 Eric Norum <norume@…>

  • clock/clock.c: Add nanoseconds since tick support.
Location:
c/src/lib/libbsp/m68k/uC5282
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/m68k/uC5282/ChangeLog

    rdf3055aa r814986ce  
     12007-10-14      Eric Norum <norume@aps.anl.gov>
     2
     3        * clock/clock.c: Add nanoseconds since tick support.
     4
    152007-05-03      Joel Sherrill <joel@OARcorp.com>
    26
  • c/src/lib/libbsp/m68k/uC5282/clock/clock.c

    rdf3055aa r814986ce  
    3131#define FILTERED_IDLE     __SRAMBASE[1]
    3232#define MAX_IDLE_COUNT    __SRAMBASE[2]
     33#define PCNTR_AT_TICK     (*(uint16 *)&__SRAMBASE[3])
    3334#define FILTER_SHIFT    6
     35
     36uint32_t bsp_clock_nanoseconds_since_last_tick(void)
     37{
     38    int i = MCF5282_PIT3_PCNTR;
     39    if (MCF5282_PIT3_PCSR & MCF5282_PIT_PCSR_PIF)
     40        i = MCF5282_PIT3_PCNTR + MCF5282_PIT3_PMR;
     41    return (i - PCNTR_AT_TICK) * 1000;
     42}
     43
     44#define Clock_driver_nanoseconds_since_last_tick bsp_clock_nanoseconds_since_last_tick
    3445
    3546/*
     
    4354            MAX_IDLE_COUNT = idle;                                           \
    4455        FILTERED_IDLE = idle + FILTERED_IDLE - (FILTERED_IDLE>>FILTER_SHIFT);\
     56        PCNTR_AT_TICK = MCF5282_PIT3_PCNTR;                                  \
    4557        MCF5282_PIT3_PCSR |= MCF5282_PIT_PCSR_PIF;                           \
    4658    } while (0)
     
    4961 * Attach clock interrupt handler
    5062 */
    51 #define Clock_driver_support_install_isr( _new, _old )             \
    52     do {                                                           \
     63#define Clock_driver_support_install_isr( _new, _old )              \
     64    do {                                                            \
    5365        _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1);  \
    5466    } while(0)
     
    8597        rtems_interrupt_disable( level );                                \
    8698        MCF5282_INTC0_IMRH &= ~MCF5282_INTC_IMRH_INT58;                  \
    87                 MCF5282_PIT3_PCSR &= ~MCF5282_PIT_PCSR_EN;                       \
     99        MCF5282_PIT3_PCSR &= ~MCF5282_PIT_PCSR_EN;                       \
    88100        rtems_interrupt_enable( level );                                 \
    89                 MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) |         \
     101        MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) |         \
    90102                            MCF5282_PIT_PCSR_OVW |                       \
    91103                            MCF5282_PIT_PCSR_PIE |                       \
    92104                            MCF5282_PIT_PCSR_RLD;                        \
    93                 MCF5282_PIT3_PMR = BSP_Configuration.microseconds_per_tick - 1;  \
    94                 MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) |         \
     105        MCF5282_PIT3_PMR = BSP_Configuration.microseconds_per_tick - 1;  \
     106        MCF5282_PIT3_PCSR = MCF5282_PIT_PCSR_PRE(preScaleCode) |         \
    95107                            MCF5282_PIT_PCSR_PIE |                       \
    96108                            MCF5282_PIT_PCSR_RLD |                       \
    97109                            MCF5282_PIT_PCSR_EN;                         \
     110        PCNTR_AT_TICK = MCF5282_PIT3_PCNTR;                              \
    98111    } while (0)
    99112
Note: See TracChangeset for help on using the changeset viewer.