mirror of https://github.com/zrafa/xinu-avr.git
8 changed files with 65 additions and 203 deletions
@ -0,0 +1,53 @@
|
||||
/* clock.h */ |
||||
|
||||
extern uint32 clktime; /* current time in secs since boot */ |
||||
extern uint32 count1000; /* ms since last clock tick */ |
||||
|
||||
extern qid16 sleepq; /* queue for sleeping processes */ |
||||
extern int32 slnonempty; /* nonzero if sleepq is nonempty */ |
||||
extern int32 *sltop; /* ptr to key in first item on sleepq */ |
||||
extern uint32 preempt; /* preemption counter */ |
||||
|
||||
struct am335x_timer1ms { |
||||
uint32 tidr; /* Identification register */ |
||||
uint32 res1[3]; /* Reserved */ |
||||
uint32 tiocp_cfg; /* OCP Interface register */ |
||||
uint32 tistat; /* Status register */ |
||||
uint32 tisr; /* Interrupt status register */ |
||||
uint32 tier; /* Interrupt enable register */ |
||||
uint32 twer; /* Wakeup enable register */ |
||||
uint32 tclr; /* Optional features */ |
||||
uint32 tcrr; /* Internal counter value */ |
||||
uint32 tldr; /* Timer load value */ |
||||
uint32 ttgr; /* Trigger register */ |
||||
uint32 twps; /* Write posting register */ |
||||
uint32 tmar; /* Match register */ |
||||
uint32 tcar1; /* Capture register 1 */ |
||||
uint32 tsicr; /* Synchronous interface control*/ |
||||
uint32 tcar2; /* Capture register 2 */ |
||||
uint32 tpir; /* Positive increment register */ |
||||
uint32 tnir; /* Negative increment register */ |
||||
uint32 tcvr; /* 1ms control register */ |
||||
uint32 tocr; /* Overflow mask register */ |
||||
uint32 towr; /* no. of overflows */ |
||||
}; |
||||
|
||||
#define AM335X_TIMER1MS_ADDR 0x44E31000 |
||||
#define AM335X_TIMER1MS_IRQ 67 |
||||
|
||||
#define AM335X_TIMER1MS_TIOCP_CFG_SOFTRESET 0x00000002 |
||||
#define AM335X_TIMER1MS_TISTAT_RESETDONE 0x00000001 |
||||
|
||||
#define AM335X_TIMER1MS_TISR_MAT_IT_FLAG 0x00000001 |
||||
#define AM335X_TIMER1MS_TISR_OVF_IT_FLAG 0x00000002 |
||||
#define AM335X_TIMER1MS_TISR_TCAR_IT_FLAG 0x00000004 |
||||
|
||||
#define AM335X_TIMER1MS_TIER_MAT_IT_ENA 0x00000001 |
||||
#define AM335X_TIMER1MS_TIER_OVF_IT_ENA 0x00000002 |
||||
#define AM335X_TIMER1MS_TIER_TCAR_IT_ENA 0x00000004 |
||||
|
||||
#define AM335X_TIMER1MS_TCLR_ST 0x00000001 |
||||
#define AM335X_TIMER1MS_TCLR_AR 0x00000002 |
||||
|
||||
#define AM335X_TIMER1MS_CLKCTRL_ADDR 0x44E004C4 |
||||
#define AM335X_TIMER1MS_CLKCTRL_EN 0x00000002 |
||||
@ -1,27 +0,0 @@
|
||||
/* Xinu for STM32
|
||||
* |
||||
* Original license applies |
||||
* Modifications for STM32 by Robin Krens |
||||
* Please see LICENSE and AUTHORS
|
||||
*
|
||||
* $LOG$ |
||||
* 2019/11/11 - ROBIN KRENS |
||||
* Initial version
|
||||
*
|
||||
* $DESCRIPTION$ |
||||
* |
||||
* */ |
||||
|
||||
/* Nested interrupt vector */ |
||||
#define NVIC_ISER0 (uint32 *) 0xE000E100 |
||||
#define NVIC_ISER1 (uint32 *) 0xE000E104 |
||||
#define NVIC_STIR (uint32 *) 0xE000EF00 |
||||
|
||||
/* System control block */ |
||||
#define SCB_ICSR (uint32 *) 0xE000ED04 |
||||
#define PENDSV_INTR 28 |
||||
|
||||
// #define MAXADDR 0x20010000 /* 64kB SRAM */
|
||||
#define MAXADDR 0x20004E20 /* 64kB SRAM */ // RAFA
|
||||
// #define MAXADDR 0x20004000 /* 64kB SRAM */ // RAFA
|
||||
#define HANDLERSTACK 1024 /* Size reserved for stack in Handler mode */ |
||||
@ -1,39 +1,9 @@
|
||||
/* STM32 Timer
|
||||
General purpose timer */ |
||||
/*General purpose timer */ |
||||
|
||||
// RAFA extern uint32 clktime; /* current time in secs since boot */
|
||||
extern unsigned long clktime; /* current time in secs since boot */ |
||||
// RAFA extern uint32 count1000; /* ms since last clock tick */
|
||||
extern unsigned long count1000; /* ms since last clock tick */ |
||||
extern unsigned long clktime; /* current time in secs since boot */ |
||||
extern unsigned long count1000; /* ms since last clock tick */ |
||||
|
||||
extern qid16 sleepq; /* queue for sleeping processes */ |
||||
extern int32 slnonempty; /* nonzero if sleepq is nonempty */ |
||||
extern int32 *sltop; /* ptr to key in first item on sleepq */ |
||||
extern uint32 preempt; /* preemption counter */ |
||||
|
||||
#define TIM2_BASE 0x40000000 |
||||
#define TIM2_IRQ 44 |
||||
|
||||
#define TIM_CEN 0 |
||||
#define TIM_UDIS 1 |
||||
#define TIM_URS 2 |
||||
|
||||
#define TIM_UDE 8 |
||||
#define TIM_UIE 7 /* */ |
||||
|
||||
#define TIM_UIF 0 /* Update interrupt flag*/ |
||||
|
||||
struct timer_csreg { |
||||
volatile uint32 cr1; |
||||
volatile uint32 cr2; |
||||
volatile uint32 smcr; |
||||
volatile uint32 dier; |
||||
volatile uint32 sr; |
||||
volatile uint32 egr; |
||||
volatile uint32 ccmr1; |
||||
volatile uint32 ccmr2; |
||||
volatile uint32 ccer; |
||||
volatile uint32 cnt; |
||||
volatile uint32 psc; |
||||
volatile uint32 arr; |
||||
}; |
||||
extern uint32 preempt; /* preemption counter */ |
||||
|
||||
Loading…
Reference in new issue