CM3: unify architecture initialization routine for all the Cortex-M3 processors.
[bertos.git] / bertos / cpu / cortex-m3 / info / cm3.common
1 #
2 #-*- coding: utf-8 -*-
3 #
4 # \file
5 # <!--
6 # This file is part of BeRTOS.
7 #
8 # Bertos is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21 #
22 # As a special exception, you may use this file as part of a free software
23 # library without restriction.  Specifically, if other files instantiate
24 # templates or use macros or inline functions from this file, or you compile
25 # this file and link it with other files to produce an executable, this
26 # file does not by itself cause the resulting executable to be covered by
27 # the GNU General Public License.  This exception does not however
28 # invalidate any other reasons why the executable file might be covered by
29 # the GNU General Public License.
30 #
31 # Copyright 2010 Develer S.r.l. (http://www.develer.com/)
32 #
33 # -->
34 #
35 # General CPU info denfinition for Cortex-M3-based boards.
36 #
37 # This file contain all info for the BeRTOS wizard.
38 #
39 # \author Andrea Righi <arighi@develer.com>
40 #
41 #
42
43 # Import the common settings for the path.
44 include("../../path.common")
45
46 # Short description of the cpu.
47 CPU_DESC = ["ARM Cortex-M3",
48           "ARMv7-M Thumb-2 ISA",
49           "16-bit and 32-bit RISC Architecture"]
50
51 # Type of the toolchain we should use to compile the source for this CPU.
52 TOOLCHAIN = "arm"
53
54 # If we use the GCC compiler we should pass some flags.
55 CORE_CPU = "cortex-m3"
56
57 # Name of the flag used by the build system to pass to the compiler the CPU type.
58 MK_CPU = CORE_CPU
59
60 # Special CPU related tags.
61 CPU_TAGS = ["cm3"]
62
63 # Where are locate the bertos directories
64 SCRIPT_DIR = CPU_DIR + "cortex-m3/scripts/"
65 HW_DIR = CPU_DIR + "cortex-m3/hw/"
66 DRV_DIR = CPU_DIR + "cortex-m3/drv/"
67
68 MK_STOPFLASH_SCRIPT = PRG_SCRIPTS_DIR + "arm/stopopenocd.sh"
69 MK_DEBUG_SCRIPT = PRG_SCRIPTS_DIR + "arm/debug.sh"
70 MK_STOPDEBUG_SCRIPT = PRG_SCRIPTS_DIR + "arm/stopopenocd.sh"
71
72 GDB_INIT_SCRIPT = PRG_SCRIPTS_DIR + "arm/openocd/gdbinit-sam7"
73
74 # Common GCC flags.
75 MK_CPU_CPPAFLAGS = "-g -gdwarf-2 -mthumb -mno-thumb-interwork"
76 MK_CPU_CPPFLAGS = "-O0 -g3 -gdwarf-2 -mthumb -mno-thumb-interwork -fno-strict-aliasing -fwrapv -fverbose-asm -I" + CPU_DIR + "cortex-m3/"
77 MK_CPU_LDFLAGS = "-mthumb -mno-thumb-interwork -nostartfiles -Wl,--no-warn-mismatch"
78
79 # CRT files.
80 MK_CPU_CPPASRC = HW_DIR + "crt_cm3.S " + HW_DIR + "vectors_cm3.S "
81 MK_CPU_CSRC = HW_DIR + "init_cm3.c " + DRV_DIR + "irq_cm3.c "