File indexing completed on 2025-05-11 08:23:47
0001
0002
0003
0004
0005 #include <rtems.h>
0006 #include <bsp.h>
0007 #include <mcf5235/mcf5235.h>
0008
0009
0010
0011
0012 #define CLOCK_VECTOR (64+39)
0013
0014
0015
0016
0017 #define Clock_driver_support_at_tick(arg) \
0018 do { \
0019 MCF5235_PIT_PCSR3 |= MCF5235_PIT_PCSR_PIF; \
0020 } while (0) \
0021
0022
0023
0024
0025 #define Clock_driver_support_install_isr( _new ) \
0026 set_vector(_new, CLOCK_VECTOR, 1)
0027
0028
0029
0030
0031
0032
0033
0034 #define Clock_driver_support_initialize_hardware() \
0035 do { \
0036 int level; \
0037 int preScaleCode = 6; \
0038 MCF5235_INTC0_ICR39 = MCF5235_INTC_ICR_IL(PIT3_IRQ_LEVEL) | \
0039 MCF5235_INTC_ICR_IP(PIT3_IRQ_PRIORITY); \
0040 rtems_interrupt_disable( level ); \
0041 MCF5235_INTC0_IMRH &= ~MCF5235_INTC0_IMRH_INT39; \
0042 MCF5235_PIT_PCSR3 &= ~MCF5235_PIT_PCSR_EN; \
0043 rtems_interrupt_enable( level ); \
0044 MCF5235_PIT_PMR3 = 0x2DC6; \
0045 MCF5235_PIT_PCSR3 = MCF5235_PIT_PCSR_PRE(preScaleCode) | \
0046 MCF5235_PIT_PCSR_PIE | \
0047 MCF5235_PIT_PCSR_RLD | \
0048 MCF5235_PIT_PCSR_EN; \
0049 } while (0)
0050
0051 #define CLOCK_DRIVER_USE_DUMMY_TIMECOUNTER
0052
0053 #include "../../../shared/dev/clock/clockimpl.h"