#define SETBIT 0x02
#define CLRBIT 0x03
+/* 64kB SRAM located at SRAM_OFFSET */
+#define SRAM_SIZE 0x00010000
+#define SRAM_OFFSET 0x20000000
+
/* Safety macro's to get the address or value */
#define MEM_VALUE(addr) *((volatile uint32_t(*) (addr))
#define MEM_ADDR(addr) ((volatile uint32_t *) (addr))
/* SYSTEM CONTROL REGISTER */
#define SYSCTRL_RCC MEM_ADDR(0x40021000)
+#define RCC_APB1ENR MEM_ADDR(0x4002101C) // register to enable I2C
#define RCC_APB2ENR MEM_ADDR(0x40021018) // register to enable USART1
#define SYSCTRL_RIS MEM_ADDR(0x400FE050)
#define SYSCTRL_RCGC2 MEM_ADDR(0x400FE108)
#define GPIOPA_AFSEL MEM_ADDR(0x40004420)
-#define GPIOA_CRH MEM_ADDR(0x40010804)
+#define GPIOA_CRH MEM_ADDR(0x40010804) // for USART1
+#define GPIOB_CRL MEM_ADDR(0x40010C00) // low register (!) for I2C1
+#define GPIOC_CRL MEM_ADDR(0x40011000) // for led
+#define GPIOC_ODR MEM_ADDR(0x4001100C) //
#define AFIO_EVCR MEM_ADDR(0x40010000)
+/* I2C REGISTER */
+#define I2C_CR1 MEM_ADDR(0x40005400)
+#define I2C_CR2 MEM_ADDR(0x40005404)
+#define I2C_DR MEM_ADDR(0x40005410)
+#define I2C_SR1 MEM_ADDR(0x40005414)
+#define I2C_SR2 MEM_ADDR(0x40005418)
+#define I2C_CCR MEM_ADDR(0x4000541C)
+#define I2C_TRISE MEM_ADDR(0x40005420)
+
/* EXTERNAL INTERRUPTS */
#define EXTI_IMR MEM_ADDR(0x40010400)
#define EXTI_RTSR MEM_ADDR(0x40010408)