basic uart functionality (not tested)
[cortex-from-scratch] / include / mmap.h
1 /* 
2  * Example memory map for the Cortex-A3
3  * Implementations vary among manufacturers. This one is
4  * a STM32F013RC6. Addresses of peripherals vary amongst 
5  * manufacturers of boards with similar chips
6  * 
7  * */
8
9 /* RANDOM DEBUG LOCATION */
10 #define RANDOM_ADDR ((volatile uint32_t *)(0x21000000))
11
12 /* SYSTEM CONTROL BLOCK REGISTER */
13 #define SCB_VTOR ((volatile uint32_t *)( 0xE000ED08)) // VECTOR TABLE
14
15 /* NESTED VECTOR INTERRUPT CONTROL REGISTER */
16 #define NVIC_ISER0 ((volatile uint32_t*)( 0xE000E100)) // interrupt set enable register
17
18 /* SYSTICK REGISTER */
19 #define STK_CTRL ((volatile uint32_t *)(0xE000E010))
20 #define STK_RELOAD ((volatile uint32_t *)(0xE000E014))
21
22
23 /* SYSTEM CONTROL REGISTER */
24 #define SYSCTRL_RCC ((volatile unsigned long *)(0x40021000))
25 #define RCC_APB2ENR ((volatile unsigned long *)(0x40021018)) // register to enable USART1
26
27 #define SYSCTRL_RIS ((volatile unsigned long *)(0x400FE050))
28 #define SYSCTRL_RCGC1 ((volatile unsigned long *)(0x400FE104))
29 #define SYSCTRL_RCGC2 ((volatile unsigned long *)(0x400FE108))
30 #define GPIOPA_AFSEL ((volatile unsigned long *)(0x40004420))
31
32 #define GPIOA_CRH ((volatile unsigned long *)(0x40010804))
33 #define AFIO_EVCR ((volatile unsigned long *)(0x40010000))
34
35 #define USART1_SR ((volatile unsigned long *)(0x40013800))
36 #define USART1_DR ((volatile unsigned long *)(0x40013804))
37 #define USART1_BRR ((volatile unsigned long *)(0x40013808))
38 #define USART1_CR1 ((volatile unsigned long *)(0x4001380C))
39 #define USART1_CR3 ((volatile unsigned long *)(0x40013814))