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 */ |
||||||
extern unsigned long clktime; /* current time in secs since boot */ |
extern unsigned long count1000; /* ms since last clock tick */ |
||||||
// RAFA extern uint32 count1000; /* ms since last clock tick */
|
|
||||||
extern unsigned long count1000; /* ms since last clock tick */ |
|
||||||
|
|
||||||
extern qid16 sleepq; /* queue for sleeping processes */ |
extern qid16 sleepq; /* queue for sleeping processes */ |
||||||
extern int32 slnonempty; /* nonzero if sleepq is nonempty */ |
extern int32 slnonempty; /* nonzero if sleepq is nonempty */ |
||||||
extern int32 *sltop; /* ptr to key in first item on sleepq */ |
extern int32 *sltop; /* ptr to key in first item on sleepq */ |
||||||
extern uint32 preempt; /* preemption counter */ |
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; |
|
||||||
}; |
|
||||||
|
|||||||
Loading…
Reference in new issue