77 lines
2.9 KiB
C
77 lines
2.9 KiB
C
/*
|
|
* This file is part of the libopencm3 project.
|
|
*
|
|
* Copyright (C) 2012 chrysn <chrysn@fsfe.org>
|
|
*
|
|
* This library is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
/** @file
|
|
*
|
|
* Layout of the system address space of Tiny Gecko devices.
|
|
*
|
|
* This reflects d0034_efm32tg_reference_manual.pdf figure 5.2.
|
|
*/
|
|
|
|
/* The common cortex-m3 definitions were verified from
|
|
* d0034_efm32tg_reference_manual.pdf figure 5.2. The CM3 ROM Table seems to be
|
|
* missing there. The details (everything based on SCS_BASE) was verified from
|
|
* d0002_efm32_cortex-m3_reference_manual.pdf table 4.1, and seems to fit, but
|
|
* there are discrepancies. */
|
|
#include <libopencm3/cm3/memorymap.h>
|
|
|
|
#define CODE_BASE 0x00000000
|
|
|
|
#define SRAM_BASE 0x20000000
|
|
#define SRAM_BASE_BITBAND 0x22000000
|
|
|
|
#define PERIPH_BASE 0x40000000
|
|
#define PERIPH_BASE_BITBAND 0x42000000
|
|
|
|
/* Details of the "Code" section */
|
|
|
|
#define FLASH_BASE (CODE_BASE + 0x00000000)
|
|
#define USERDATA_BASE (CODE_BASE + 0x0fe00000)
|
|
#define LOCKBITS_BASE (CODE_BASE + 0x0fe04000)
|
|
#define CHIPCONFIG_BASE (CODE_BASE + 0x0fe08000)
|
|
#define CODESPACESRAM_BASE (CODE_BASE + 0x10000000)
|
|
|
|
/* Tiny Gecko peripherial definitions */
|
|
|
|
#define VCMP_BASE (PERIPH_BASE + 0x00000000)
|
|
#define ACMP0_BASE (PERIPH_BASE + 0x00001000)
|
|
#define ACMP1_BASE (PERIPH_BASE + 0x00001400)
|
|
#define ADC_BASE (PERIPH_BASE + 0x00002000)
|
|
#define DAC0_BASE (PERIPH_BASE + 0x00004000)
|
|
#define GPIO_BASE (PERIPH_BASE + 0x00006000) /**< @see gpio.h */
|
|
#define I2C0_BASE (PERIPH_BASE + 0x0000a000)
|
|
#define USART0_BASE (PERIPH_BASE + 0x0000c000)
|
|
#define USART1_BASE (PERIPH_BASE + 0x0000c400)
|
|
#define TIMER0_BASE (PERIPH_BASE + 0x00010000)
|
|
#define TIMER1_BASE (PERIPH_BASE + 0x00010400)
|
|
#define RTC_BASE (PERIPH_BASE + 0x00080000)
|
|
#define LETIMER0_BASE (PERIPH_BASE + 0x00082000)
|
|
#define LEUART0_BASE (PERIPH_BASE + 0x00084000)
|
|
#define PCNT0_BASE (PERIPH_BASE + 0x00086000)
|
|
#define WDOG_BASE (PERIPH_BASE + 0x00088000)
|
|
#define LCD_BASE (PERIPH_BASE + 0x0008a000)
|
|
#define LESENSE_BASE (PERIPH_BASE + 0x0008c000)
|
|
#define MSC_BASE (PERIPH_BASE + 0x000c0000)
|
|
#define DMA_BASE (PERIPH_BASE + 0x000c2000)
|
|
#define EMU_BASE (PERIPH_BASE + 0x000c6000)
|
|
#define CMU_BASE (PERIPH_BASE + 0x000c8000) /**< @see cmu.h */
|
|
#define RMU_BASE (PERIPH_BASE + 0x000ca000)
|
|
#define PRS_BASE (PERIPH_BASE + 0x000cc000)
|
|
#define AES_BASE (PERIPH_BASE + 0x000e0000)
|