OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-memmap/] [scarts-memmap.sh] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 jlechner
#!/bin/ksh
2
 
3
# Copyright (C) 2010, 2011 Embedded Computing Systems Group,
4
# Department of Computer Engineering, Vienna University of Technology.
5
# Contributed by Martin Walter <mwalter@opencores.org>
6
#
7
# This program is free software: you can redistribute it and/or modify
8
# it under the terms of the GNU Lesser General Public License as published
9
# by the Free Software Foundation, either version 2.1 of the License, or
10
# (at your option) any later version.
11
#
12
# This program is distributed in the hope that it will be useful,
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
# GNU Lesser General Public License for more details.
16
#
17
# You should have received a copy of the GNU Lesser General Public License
18
# along with this program.  If not, see <http://www.gnu.org/licenses/>. */
19
 
20
# Creates memory map dependency files for the SCARTS architecture.
21
#
22
# Usage: scarts-memmap.sh SRC [install]
23
#   SRC ... A file containing memory mapping parameters.
24
#
25
# Example: ./scarts-memmap.sh ./cfg/scarts_32_hpe_midi_gdb.cfg install
26
 
27
usage()
28
{
29
  echo "Creates dependencies for a memory mapping for the SCARTS architecture."
30
  echo "Usage: $0 SRC [install]"
31
  echo "  SRC ... A file containing memory mapping parameters."
32
  echo ""
33
  echo "Example: ./scarts-memmap.sh ./cfg/scarts_32_hpe_midi_gdb.cfg install"
34
}
35
 
36
############################
37
# Load external parameters #
38
############################
39
 
40
if [ "$1" == "" ]; then
41
  usage
42
  exit
43
fi
44
 
45
. $1
46
 
47
if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
48
  if [ "$SCARTS_16_TOOLCHAIN_LIB_DIR" == "" ]; then
49
    echo "Error: environment variable SCARTS_16_TOOLCHAIN_LIB_DIR is not set. Please source scartsrc and try again."
50
    exit
51
  fi
52
elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
53
  if [ "$SCARTS_32_TOOLCHAIN_LIB_DIR" == "" ]; then
54
    echo "Error: environment variable SCARTS_32_TOOLCHAIN_LIB_DIR is not set. Please source scartsrc and try again."
55
    exit
56
  fi
57
fi
58
 
59
#################################
60
# Architecture specific options #
61
#################################
62
 
63
SCARTS_16_WORD_SIZE=16
64
SCARTS_32_WORD_SIZE=32
65
 
66
SCARTS_WORD_SIZE=0
67
if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
68
  SCARTS_WORD_SIZE=$SCARTS_16_WORD_SIZE
69
elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
70
  SCARTS_WORD_SIZE=$SCARTS_32_WORD_SIZE
71
fi
72
 
73
# Calculate sizes, start addresses and end addresses of the code memory.
74
SCARTS_CODEMEM_SIZE=$((SCARTS_CODEMEM_SIZE))
75
SCARTS_CODEMEM_SIZE_LOG=$((`echo "l($((SCARTS_CODEMEM_SIZE)))/l(2)" | bc -l`))
76
SCARTS_CODEMEM_VMA_START=0
77
SCARTS_CODEMEM_VMA_END=$((SCARTS_CODEMEM_VMA_START + SCARTS_CODEMEM_SIZE - 1))
78
SCARTS_CODEMEM_LMA_START=$((pow(2, SCARTS_WORD_SIZE - 1)))
79
SCARTS_CODEMEM_LMA_END=$((SCARTS_CODEMEM_LMA_START + SCARTS_CODEMEM_SIZE - 1))
80
 
81
SCARTS_CODEMEM_USABLE_SIZE=$(($SCARTS_CODEMEM_SIZE))
82
SCARTS_CODEMEM_USABLE_VMA_END=$((SCARTS_CODEMEM_VMA_START + SCARTS_CODEMEM_USABLE_SIZE - 1))
83
 
84
# Calculate sizes, start addresses and end addresses of the Boot-ROM.
85
SCARTS_BOOTROM_SIZE=$((SCARTS_BOOTROM_SIZE))
86
SCARTS_BOOTROM_SIZE_LOG=$((`echo "l($((SCARTS_BOOTROM_SIZE)))/l(2)" | bc -l`))
87
 
88
# The architecture demands the address of the Boot-ROM to be a power of two,
89
# so that log2 (SCARTS_BOOTROM_VMA_START) is an integer. Also, we must make
90
# sure that SCARTS_BOOTROM_VMA_START_LOG < 31, since the Boot-ROM is mapped
91
# into the address of the code memory and:
92
#
93
# SCARTS_BOOTROM_LMA_START = SCARTS_CODEMEM_LMA_START | <= 2^31
94
#                          + SCARTS_BOOTROM_VMA_START |  < 2^31.
95
#
96
# This guarantees that the Boot-ROM fits into the combined address space of
97
# LMAs (Load Memory Addresses) that is limited to 32 bits in the simulator.
98
 
99
SCARTS_BOOTROM_VMA_START_LOG=$((SCARTS_WORD_SIZE - 1))
100
 
101
if [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
102
  if [ $SCARTS_BOOTROM_VMA_START_LOG -ge $((SCARTS_WORD_SIZE - 1)) ]; then
103
    SCARTS_BOOTROM_VMA_START_LOG=$((SCARTS_BOOTROM_VMA_START_LOG - 1))
104
  fi
105
fi
106
 
107
SCARTS_BOOTROM_VMA_START=$((pow(2, SCARTS_BOOTROM_VMA_START_LOG)))
108
SCARTS_BOOTROM_VMA_END=$((SCARTS_BOOTROM_VMA_START + SCARTS_BOOTROM_SIZE - 1))
109
SCARTS_BOOTROM_LMA_START=$((SCARTS_CODEMEM_LMA_START + SCARTS_BOOTROM_VMA_START))
110
SCARTS_BOOTROM_LMA_END=$((SCARTS_BOOTROM_LMA_START + SCARTS_BOOTROM_SIZE - 1))
111
 
112
# Calculate sizes, start addresses and end addresses of the data memory.
113
SCARTS_DATAMEM_SIZE=$((SCARTS_DATAMEM_SIZE))
114
SCARTS_DATAMEM_SIZE_LOG=$((`echo "l($((SCARTS_DATAMEM_SIZE)))/l(2)" | bc -l`))
115
SCARTS_DATAMEM_VMA_START=0
116
SCARTS_DATAMEM_VMA_END=$((SCARTS_DATAMEM_VMA_START + SCARTS_DATAMEM_SIZE - 1))
117
SCARTS_DATAMEM_LMA_START=0
118
SCARTS_DATAMEM_LMA_END=$((SCARTS_DATAMEM_LMA_START + SCARTS_DATAMEM_SIZE - 1))
119
 
120
SCARTS_DATAMEM_USABLE_SIZE=$(($SCARTS_DATAMEM_SIZE))
121
SCARTS_DATAMEM_USABLE_VMA_END=$((SCARTS_DATAMEM_VMA_START + SCARTS_DATAMEM_USABLE_SIZE - 1))
122
 
123
# Map the external modules to the end of the data memory's address space.
124
SCARTS_DATAMEM_EXTMODS_SIZE=$((SCARTS_DATAMEM_EXTMODS_SIZE))
125
SCARTS_DATAMEM_EXTMODS_VMA_END=$((pow(2, SCARTS_WORD_SIZE) - 1))
126
SCARTS_DATAMEM_EXTMODS_VMA_START=$((SCARTS_DATAMEM_EXTMODS_VMA_END - SCARTS_DATAMEM_EXTMODS_SIZE + 1))
127
 
128
# Map the bootloader into the data memory's address space.
129
SCARTS_DATAMEM_BOOTLOADER_SIZE=$((SCARTS_DATAMEM_BOOTLOADER_SIZE))
130
 
131
if [ $SCARTS_DATAMEM_BOOTLOADER_SIZE -gt 0 ]; then
132
  SCARTS_DATAMEM_BOOTLOADER_VMA_END=$SCARTS_DATAMEM_USABLE_VMA_END
133
  SCARTS_DATAMEM_BOOTLOADER_VMA_START=$((SCARTS_DATAMEM_BOOTLOADER_VMA_END - SCARTS_DATAMEM_BOOTLOADER_SIZE + 1))
134
  SCARTS_DATAMEM_BOOTLOADER_LMA_END=$((SCARTS_DATAMEM_LMA_START + SCARTS_DATAMEM_BOOTLOADER_VMA_END))
135
  SCARTS_DATAMEM_BOOTLOADER_LMA_START=$((SCARTS_DATAMEM_LMA_START + SCARTS_DATAMEM_BOOTLOADER_VMA_START))
136
 
137
  if [ "$SCARTS_DATAMEM_BOOTLOADER_PERSISTENT" = "true" ]; then
138
    # The bootloader reduces the usable size of the data memory.
139
    SCARTS_DATAMEM_USABLE_SIZE=$((SCARTS_DATAMEM_USABLE_SIZE - SCARTS_DATAMEM_BOOTLOADER_SIZE))
140
    SCARTS_DATAMEM_USABLE_VMA_END=$((SCARTS_DATAMEM_BOOTLOADER_VMA_START - 1))
141
  fi
142
fi
143
 
144
if [ $SCARTS_DATAMEM_USABLE_SIZE -lt 0 ]; then
145
  SCARTS_DATAMEM_USABLE_SIZE=0
146
fi
147
 
148
##################################
149
# Linker Script specific options #
150
##################################
151
 
152
LINKER_SCRIPT_SEARCH_DIR=""
153
if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
154
  LINKER_SCRIPT_SEARCH_DIR=$SCARTS_16_TOOLCHAIN_LIB_DIR
155
elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
156
  LINKER_SCRIPT_SEARCH_DIR=$SCARTS_32_TOOLCHAIN_LIB_DIR
157
fi
158
 
159
###########################
160
# Memmap specific options #
161
###########################
162
 
163
MEMMAP_SRC_DIR="./src"
164
MEMMAP_BUILD_DIR="./build"
165
 
166
MEMMAP_DEPS_BOOTLOADER_DIR="bootloader"
167
MEMMAP_DEPS_CORE_DIR="core"
168
MEMMAP_DEPS_GDB_DIR="gdb"
169
MEMMAP_DEPS_GDB_INCLUDE_DIR="$MEMMAP_DEPS_GDB_DIR/include/gdb"
170
MEMMAP_DEPS_GDB_STUB_DIR="gdb-stub"
171
MEMMAP_DEPS_MAKE_DIR="make"
172
 
173
#############################
174
# Makefile specific options #
175
#############################
176
 
177
MAKEFILE_GCC_BINARY_SCARTS_16="scarts_16-none-eabi-gcc"
178
MAKEFILE_GCC_BINARY_SCARTS_32="scarts_32-none-eabi-gcc"
179
MAKEFILE_OBJCOPY_BINARY_SCARTS_16="scarts_16-none-eabi-objcopy"
180
MAKEFILE_OBJCOPY_BINARY_SCARTS_32="scarts_32-none-eabi-objcopy"
181
MAKEFILE_OBJDUMP_BINARY_SCARTS_16="scarts_16-none-eabi-objdump"
182
MAKEFILE_OBJDUMP_BINARY_SCARTS_32="scarts_32-none-eabi-objdump"
183
 
184
MAKEFILE_CFLAGS_DEBUG="-O0 -ggdb --save-temps"
185
MAKEFILE_CFLAGS_OPT="-O2"
186
MAKEFILE_LDFLAGS_DEBUG="-Wl,--nmagic,--no-check-sections"
187
MAKEFILE_LDFLAGS_OPT="-Wl,--nmagic,--no-check-sections,--strip-all"
188
 
189
MAKEFILE_GCC_BINARY=""
190
MAKEFILE_OBJCOPY_BINARY=""
191
MAKEFILE_OBJDUMP_BINARY=""
192
if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
193
  MAKEFILE_GCC_BINARY=$MAKEFILE_GCC_BINARY_SCARTS_16
194
  MAKEFILE_OBJCOPY_BINARY=$MAKEFILE_OBJCOPY_BINARY_SCARTS_16
195
  MAKEFILE_OBJDUMP_BINARY=$MAKEFILE_OBJDUMP_BINARY_SCARTS_16
196
elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
197
  MAKEFILE_GCC_BINARY=$MAKEFILE_GCC_BINARY_SCARTS_32
198
  MAKEFILE_OBJCOPY_BINARY=$MAKEFILE_OBJCOPY_BINARY_SCARTS_32
199
  MAKEFILE_OBJDUMP_BINARY=$MAKEFILE_OBJDUMP_BINARY_SCARTS_32
200
fi
201
 
202
MAKEFILE_CFLAGS=""
203
MAKEFILE_LDFLAGS=""
204
if [ "$SCARTS_DEBUG_MODE" = "true" ]; then
205
  MAKEFILE_CFLAGS=$MAKEFILE_CFLAGS_DEBUG
206
  MAKEFILE_LDFLAGS=$MAKEFILE_LDFLAGS_DEBUG
207
else
208
  MAKEFILE_CFLAGS=$MAKEFILE_CFLAGS_OPT
209
  MAKEFILE_LDFLAGS=$MAKEFILE_LDFLAGS_OPT
210
fi
211
 
212
# Validate arguments
213
if [ "$2" != "" ] && [ "$2" != "install" ]; then
214
  usage
215
  exit 1
216
fi
217
 
218
if [ "$MEMMAP_CFG_MACH" != "scarts_16" ] && [ "$MEMMAP_CFG_MACH" != "scarts_32" ]; then
219
  echo "Error: MEMMAP_CFG_MACH must be one of {\"scarts_16\", \"scarts_32\"}."
220
  exit 1
221
fi
222
 
223
echo "#######################"
224
echo "# Code memory mapping #"
225
echo "#######################"
226
echo ""
227
echo "SCARTS_BOOTROM_SIZE := 0x$(echo "obase=16; $(($SCARTS_BOOTROM_SIZE))" | bc)"
228
echo "SCARTS_CODEMEM_SIZE := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_SIZE))" | bc)"
229
echo "SCARTS_CODEMEM_USABLE_SIZE := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_USABLE_SIZE))" | bc)"
230
echo ""
231
echo "+--------------------+ <- SCARTS_CODEMEM_START := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_VMA_START))" | bc)"
232
echo "|      .text         |"
233
echo "+--------------------+ <- SCARTS_CODEMEM_USABLE_END := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_USABLE_VMA_END))" | bc)"
234
echo "+--------------------+ <- SCARTS_CODEMEM_END := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_VMA_END))" | bc)"
235
echo "+--------------------+ <- SCARTS_BOOTROM_START := 0x$(echo "obase=16; $(($SCARTS_BOOTROM_VMA_START))" | bc)"
236
echo "|      BootROM       |"
237
echo "+--------------------+ <- SCARTS_BOOTROM_END := 0x$(echo "obase=16; $(($SCARTS_BOOTROM_VMA_END))" | bc)"
238
 
239
if [ $SCARTS_BOOTROM_VMA_END -lt $((pow(2, SCARTS_WORD_SIZE) - 1)) ]; then
240
  echo "|       Unused       |"
241
  echo "+--------------------+ <- 0x$(echo "obase=16; $((pow(2, SCARTS_WORD_SIZE) - 1))" | bc)"
242
fi
243
 
244
echo ""
245
echo "#######################"
246
echo "# Data memory mapping #"
247
echo "#######################"
248
echo ""
249
echo "SCARTS_DATAMEM_SIZE := 0x$(echo "obase=16; $((SCARTS_DATAMEM_SIZE))" | bc)"
250
echo "SCARTS_DATAMEM_BOOTLOADER_SIZE := 0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_SIZE))" | bc)"
251
echo "SCARTS_DATAMEM_EXTMODS_SIZE := 0x$(echo "obase=16; $((SCARTS_DATAMEM_EXTMODS_SIZE))" | bc)"
252
echo "SCARTS_DATAMEM_USABLE_SIZE := 0x$(echo "obase=16; $((SCARTS_DATAMEM_USABLE_SIZE))" | bc)"
253
echo ""
254
echo "+--------------------+ <- SCARTS_DATAMEM_START := 0x$(echo "obase=16; $((SCARTS_DATAMEM_VMA_START))" | bc)"
255
echo "|       .data        |"
256
echo "|       .bss         |"
257
echo "+--------------------+"
258
echo "|       Heap         |"
259
echo ".                    ."
260
echo ".                    ."
261
echo ".                    ."
262
echo "|       Stack        |"
263
echo "+--------------------+ <- SCARTS_DATAMEM_USABLE_END := 0x$(echo "obase=16; $((SCARTS_DATAMEM_USABLE_VMA_END))" | bc)"
264
 
265
if [ $SCARTS_DATAMEM_BOOTLOADER_SIZE -gt 0 ]; then
266
  echo "+--------------------+ <- SCARTS_DATAMEM_BOOTLOADER_START := 0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_START))" | bc)"
267
  echo "|                    |"
268
  echo "|     Bootloader     |"
269
  echo "|                    |"
270
  echo "+--------------------+ <- SCARTS_DATAMEM_BOOTLOADER_END := 0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_END))" | bc)"
271
fi
272
 
273
echo "+--------------------+ <- SCARTS_DATAMEM_END := 0x$(echo "obase=16; $((SCARTS_DATAMEM_VMA_END))" | bc)"
274
 
275
echo "+--------------------+ <- SCARTS_DATAMEM_EXTMODS_START := 0x$(echo "obase=16; $((SCARTS_DATAMEM_EXTMODS_VMA_START))" | bc)"
276
echo "|                    |"
277
echo "|      External      |"
278
echo "|      Modules       |"
279
echo "|                    |"
280
echo "+--------------------+ <- SCARTS_DATAMEM_EXTMODS_END := 0x$(echo "obase=16; $((SCARTS_DATAMEM_EXTMODS_VMA_END))" | bc)"
281
 
282
echo ""
283
echo "#######################"
284
echo "# Validating settings #"
285
echo "#######################"
286
echo ""
287
 
288
echo -n "Validating log2(SCARTS_CODEMEM_SIZE) is integer in [5; $SCARTS_WORD_SIZE] ..."
289
if [ $(echo "$((int(SCARTS_CODEMEM_SIZE_LOG))) == $SCARTS_CODEMEM_SIZE_LOG" | bc) -eq 0 ] || [ $((SCARTS_CODEMEM_SIZE_LOG-1)) -lt 5 -o $((SCARTS_CODEMEM_SIZE_LOG-1)) -gt $SCARTS_WORD_SIZE ]; then
290
  echo " failed"
291
  echo "The size of the code memory (SCARTS_CODEMEM_SIZE := 0x$(echo "obase=16; $(($SCARTS_CODEMEM_SIZE))" | bc)) is not a power of two with log2(SCARTS_CODEMEM_SIZE) in [5; $SCARTS_WORD_SIZE]."
292
  exit 1
293
fi
294
echo " passed"
295
 
296
echo -n "Validating log2(SCARTS_BOOTROM_SIZE) is integer in [0; 16] ..."
297
if [ $(echo "$((int(SCARTS_BOOTROM_SIZE_LOG))) == $SCARTS_BOOTROM_SIZE_LOG" | bc) -eq 0 ] || [ $SCARTS_BOOTROM_SIZE_LOG -lt 0 -o $SCARTS_BOOTROM_SIZE_LOG -gt 16 ]; then
298
  echo " failed"
299
  echo "The size of the Boot-ROM (SCARTS_BOOTROM_SIZE := 0x$(echo "obase=16; $(($SCARTS_BOOTROM_SIZE))" | bc)) is not a power of two with log2(SCARTS_BOOTROM_SIZE) in [0; 16]."
300
  exit 1
301
fi
302
echo " passed"
303
 
304
echo -n "Validating SCARTS_CODEMEM_END < SCARTS_BOOTROM_START ..."
305
if [ $SCARTS_CODEMEM_VMA_END -ge $SCARTS_BOOTROM_VMA_START ]; then
306
  echo " failed"
307
  echo "The code memory (SCARTS_CODEMEM_END := 0x$(echo "obase=16; $((SCARTS_CODEMEM_VMA_END))" | bc)) collides with the address of the Boot-ROM (SCARTS_BOOTROM_START := 0x$(echo "obase=16; $((SCARTS_BOOTROM_START))" | bc))."
308
  exit 1
309
fi
310
echo " passed"
311
 
312
echo -n "Validating SCARTS_CODEMEM_USABLE_SIZE > 0 ..."
313
if [ $SCARTS_CODEMEM_USABLE_SIZE -le 0 ]; then
314
  echo " failed"
315
  echo "The code memory (SCARTS_CODEMEM_USABLE_SIZE := 0x$(echo "obase=16; $((SCARTS_CODEMEM_USABLE_SIZE))" | bc)) has become unusable, increase its size!"
316
  exit 1
317
fi
318
echo " passed"
319
 
320
echo -n "Validating log2(SCARTS_DATAMEM_SIZE) is integer in [5; $SCARTS_WORD_SIZE] ..."
321
if [ $(echo "$((int(SCARTS_DATAMEM_SIZE_LOG))) == $SCARTS_DATAMEM_SIZE_LOG" | bc) -eq 0 ] || [ $SCARTS_DATAMEM_SIZE_LOG -lt 5 -o $SCARTS_DATAMEM_SIZE_LOG -gt $SCARTS_WORD_SIZE ]; then
322
  echo " failed"
323
  echo "The size of the data memory (SCARTS_DATAMEM_SIZE := 0x$(echo "obase=16; $(($SCARTS_DATAMEM_SIZE))" | bc)) is not a power of two with log2(SCARTS_DATAMEM_SIZE) in [5; $SCARTS_WORD_SIZE]."
324
  exit 1
325
fi
326
echo " passed"
327
 
328
echo -n "Validating SCARTS_DATAMEM_END < SCARTS_DATAMEM_EXTMODS_START ..."
329
if [ $SCARTS_DATAMEM_VMA_END -ge $SCARTS_DATAMEM_EXTMODS_VMA_START ]; then
330
  echo " failed"
331
  echo "The data memory (SCARTS_DATAMEM_END := 0x$(echo "obase=16; $((SCARTS_DATAMEM_VMA_END))" | bc)) collides with the address of the external modules (SCARTS_DATAMEM_EXTMODS_START := 0x$(echo "obase=16; $((SCARTS_DATAMEM_EXTMODS_VMA_START))" | bc))."
332
  exit 1
333
fi
334
echo " passed"
335
 
336
echo -n "Validating SCARTS_DATAMEM_USABLE_SIZE > 0 ..."
337
if [ $SCARTS_DATAMEM_USABLE_SIZE -le 0 ]; then
338
  echo " failed"
339
  echo "The data memory (SCARTS_DATAMEM_USABLE_SIZE := 0x$(echo "obase=16; $((SCARTS_DATAMEM_USABLE_SIZE))" | bc)) has become unusable, increase its size!"
340
  exit 1
341
fi
342
echo " passed"
343
 
344
if [ "$2" = "install" ]; then
345
 
346
  echo ""
347
  echo "###########################"
348
  echo "# Installing dependencies #"
349
  echo "###########################"
350
  echo ""
351
 
352
  # Create missing directories
353
  if [ ! -d "$MEMMAP_BUILD_DIR" ]; then
354
    echo -n "Creating directory $MEMMAP_BUILD_DIR ..."
355
    mkdir -p $MEMMAP_BUILD_DIR
356
    echo " done"
357
  fi
358
 
359
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH" ]; then
360
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH ..."
361
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH
362
    echo " done"
363
  fi
364
 
365
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR" ]; then
366
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR ..."
367
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR
368
    echo " done"
369
  fi
370
 
371
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR" ]; then
372
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR ..."
373
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR
374
    echo " done"
375
  fi
376
 
377
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR" ]; then
378
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR ..."
379
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR
380
    echo " done"
381
  fi
382
 
383
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR" ]; then
384
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR ..."
385
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR
386
    echo " done"
387
  fi
388
 
389
  if [ ! -d "$MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR" ]; then
390
    echo -n "Creating directory $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR ..."
391
    mkdir -p $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR
392
    echo " done"
393
    echo ""
394
  fi
395
 
396
  echo "-- SCARTS Bootloader --"
397
 
398
  # Create linker script for bootloader
399
  SCARTS_BOOTLOADER_LD_SCRIPT=""
400
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
401
    SCARTS_BOOTLOADER_LD_SCRIPT="scarts_16-bootloader.ld"
402
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
403
    SCARTS_BOOTLOADER_LD_SCRIPT="scarts_32-bootloader.ld"
404
  fi
405
 
406
  echo -n "Creating linker script $SCARTS_BOOTLOADER_LD_SCRIPT in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR ..."
407
  sed "s/@SCARTS_BOOTROM_LMA_START@/0x$(echo "obase=16; $((SCARTS_BOOTROM_LMA_START))" | bc)/g;
408
       s/@SCARTS_BOOTROM_SIZE@/0x$(echo "obase=16; $((SCARTS_BOOTROM_SIZE))" | bc)/g;
409
       s/@SCARTS_BOOTROM_VMA_END@/0x$(echo "obase=16; $((SCARTS_BOOTROM_VMA_END))" | bc)/g;
410
       s/@SCARTS_BOOTROM_VMA_START@/0x$(echo "obase=16; $((SCARTS_BOOTROM_VMA_START))" | bc)/g;
411
       s/@SCARTS_DATAMEM_BOOTLOADER_LMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_LMA_START))" | bc)/g;
412
       s/@SCARTS_DATAMEM_BOOTLOADER_SIZE@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_SIZE))" | bc)/g;
413
       s/@SCARTS_DATAMEM_BOOTLOADER_VMA_END@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_END))" | bc)/g;
414
       s/@SCARTS_DATAMEM_BOOTLOADER_VMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_START))" | bc)/g;
415
       s/@SCARTS_SEARCH_DIR@/\"${LINKER_SCRIPT_SEARCH_DIR//\//\\/}\"/g
416
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_BOOTLOADER_DIR/$SCARTS_BOOTLOADER_LD_SCRIPT > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR/$SCARTS_BOOTLOADER_LD_SCRIPT
417
  echo " done"
418
 
419
  # Create Makefile for bootloader
420
  SCARTS_BOOTLOADER_MAKEFILE=""
421
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
422
    SCARTS_BOOTLOADER_MAKEFILE="scarts_16-Makefile"
423
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
424
    SCARTS_BOOTLOADER_MAKEFILE="scarts_32-Makefile"
425
  fi
426
 
427
  BOOTLOADER_MAKEFILE_CFLAGS=$MAKEFILE_CFLAGS
428
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
429
    BOOTLOADER_MAKEFILE_CFLAGS=$BOOTLOADER_MAKEFILE_CFLAGS' -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/include'
430
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
431
    BOOTLOADER_MAKEFILE_CFLAGS=$BOOTLOADER_MAKEFILE_CFLAGS' -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/include'
432
  fi
433
 
434
  BOOTLOADER_MAKEFILE_PROGRAM=""
435
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
436
    BOOTLOADER_MAKEFILE_PROGRAM="scarts_16-bootloader"
437
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
438
    BOOTLOADER_MAKEFILE_PROGRAM="scarts_32-bootloader"
439
  fi
440
 
441
  echo -n "Creating $SCARTS_BOOTLOADER_MAKEFILE in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR ..."
442
  sed "s/@MAKEFILE_CFLAGS@/$BOOTLOADER_MAKEFILE_CFLAGS/g;
443
       s/@MAKEFILE_GCC_BINARY@/$MAKEFILE_GCC_BINARY/g;
444
       s/@MAKEFILE_LDFLAGS@/$MAKEFILE_LDFLAGS/g;
445
       s/@MAKEFILE_LINKER_SCRIPT@/$SCARTS_BOOTLOADER_LD_SCRIPT/g;
446
       s/@MAKEFILE_OBJCOPY_BINARY@/$MAKEFILE_OBJCOPY_BINARY/g;
447
       s/@MAKEFILE_OBJDUMP_BINARY@/$MAKEFILE_OBJDUMP_BINARY/g;
448
       s/@MAKEFILE_PROGRAM@/$BOOTLOADER_MAKEFILE_PROGRAM/g
449
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_BOOTLOADER_DIR/Makefile > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR/$SCARTS_BOOTLOADER_MAKEFILE
450
  echo " done"
451
  echo ""
452
 
453
  echo "-- SCARTS Core --"
454
 
455
  # Create scarts.cmp
456
  echo -n "Creating scarts.cmp for machine $MEMMAP_CFG_MACH in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR ..."
457
  sed "s/@SCARTS_BOOTROM_SIZE_LOG@/$((SCARTS_BOOTROM_SIZE_LOG-1))/g;
458
       s/@SCARTS_BOOTROM_START_LOG@/$SCARTS_BOOTROM_VMA_START_LOG/g;
459
       s/@SCARTS_CODEMEM_SIZE_LOG@/$((SCARTS_CODEMEM_SIZE_LOG-1))/g;
460
       s/@SCARTS_DATAMEM_SIZE_LOG@/$SCARTS_DATAMEM_SIZE_LOG/g;
461
       s/@SCARTS_GDB_MODE@/$SCARTS_GDB_MODE/g;
462
       s/@SCARTS_WORD_SIZE@/$SCARTS_WORD_SIZE/g
463
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_CORE_DIR/scarts.cmp > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR/scarts.cmp
464
  echo " done"
465
  echo ""
466
 
467
  echo "-- SCARTS GDB Simulator --"
468
 
469
  # Create sim-scarts.h for GDB
470
  SCARTS_MACHINE_NAME=""
471
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
472
    SCARTS_MACHINE_NAME="SCARTS_16"
473
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
474
    SCARTS_MACHINE_NAME="SCARTS_32"
475
  fi
476
 
477
  SCARTS_SIM_INCLUDE_FILE=""
478
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
479
    SCARTS_SIM_INCLUDE_FILE="sim-scarts_16.h"
480
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
481
    SCARTS_SIM_INCLUDE_FILE="sim-scarts_32.h"
482
  fi
483
 
484
  echo -n "Creating $SCARTS_SIM_INCLUDE_FILE for machine $MEMMAP_CFG_MACH in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR ..."
485
  sed "s/@SCARTS_BOOTMEM_VMA@/0x$(echo "obase=16; $((SCARTS_BOOTROM_VMA_START))" | bc)/g;
486
       s/@SCARTS_BOOTMEM_LMA@/0x$(echo "obase=16; $((SCARTS_BOOTROM_LMA_START))" | bc)/g;
487
       s/@SCARTS_BOOTMEM_SIZE@/0x$(echo "obase=16; $((SCARTS_BOOTROM_SIZE/2))" | bc)/g;
488
       s/@SCARTS_CODEMEM_VMA@/0x$(echo "obase=16; $((SCARTS_CODEMEM_VMA_START))" | bc)/g;
489
       s/@SCARTS_CODEMEM_LMA@/0x$(echo "obase=16; $((SCARTS_CODEMEM_LMA_START))" | bc)/g;
490
       s/@SCARTS_CODEMEM_SIZE@/0x$(echo "obase=16; $((SCARTS_CODEMEM_SIZE/2))" | bc)/g;
491
       s/@SCARTS_DATAMEM_VMA@/0x$(echo "obase=16; $((SCARTS_DATAMEM_VMA_START))" | bc)/g;
492
       s/@SCARTS_DATAMEM_LMA@/0x$(echo "obase=16; $((SCARTS_DATAMEM_LMA_START))" | bc)/g;
493
       s/@SCARTS_DATAMEM_SIZE@/0x$(echo "obase=16; $((SCARTS_DATAMEM_SIZE))" | bc)/g;
494
       s/@SCARTS_MACHINE_NAME@/$SCARTS_MACHINE_NAME/g;
495
       s/@SCARTS_WORD_SIZE@/$((SCARTS_WORD_SIZE/8))/g
496
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_GDB_INCLUDE_DIR/sim-scarts.h > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR/$SCARTS_SIM_INCLUDE_FILE
497
  echo " done"
498
  echo ""
499
 
500
  echo "-- SCARTS GDB-Stub --"
501
 
502
  # Create linker script for GDB-stub
503
  SCARTS_GDB_STUB_LD_SCRIPT=""
504
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
505
    SCARTS_GDB_STUB_LD_SCRIPT="scarts_16-gdb-stub.ld"
506
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
507
    SCARTS_GDB_STUB_LD_SCRIPT="scarts_32-gdb-stub.ld"
508
  fi
509
 
510
  echo -n "Creating linker script $SCARTS_GDB_STUB_LD_SCRIPT in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR ..."
511
  sed "s/@SCARTS_BOOTROM_LMA_START@/0x$(echo "obase=16; $((SCARTS_BOOTROM_LMA_START))" | bc)/g;
512
       s/@SCARTS_BOOTROM_SIZE@/0x$(echo "obase=16; $((SCARTS_BOOTROM_SIZE))" | bc)/g;
513
       s/@SCARTS_BOOTROM_VMA_END@/0x$(echo "obase=16; $((SCARTS_BOOTROM_VMA_END))" | bc)/g;
514
       s/@SCARTS_BOOTROM_VMA_START@/0x$(echo "obase=16; $((SCARTS_BOOTROM_VMA_START))" | bc)/g;
515
       s/@SCARTS_DATAMEM_BOOTLOADER_SIZE@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_SIZE))" | bc)/g;
516
       s/@SCARTS_DATAMEM_BOOTLOADER_LMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_LMA_START))" | bc)/g;
517
       s/@SCARTS_DATAMEM_BOOTLOADER_VMA_END@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_END))" | bc)/g;
518
       s/@SCARTS_DATAMEM_BOOTLOADER_VMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_BOOTLOADER_VMA_START))" | bc)/g;
519
       s/@SCARTS_SEARCH_DIR@/\"${LINKER_SCRIPT_SEARCH_DIR//\//\\/}\"/g
520
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_GDB_STUB_DIR/$SCARTS_GDB_STUB_LD_SCRIPT > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR/$SCARTS_GDB_STUB_LD_SCRIPT
521
  echo " done"
522
 
523
  # Create Makefile for GDB-stub
524
  SCARTS_GDBSTUB_MAKEFILE=""
525
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
526
    SCARTS_GDBSTUB_MAKEFILE="scarts_16-Makefile"
527
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
528
    SCARTS_GDBSTUB_MAKEFILE="scarts_32-Makefile"
529
  fi
530
 
531
  GDBSTUB_MAKEFILE_CFLAGS=$MAKEFILE_CFLAGS' -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/gdb -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/include'
532
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
533
    GDBSTUB_MAKEFILE_CFLAGS=$GDBSTUB_MAKEFILE_CFLAGS' -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/..\/assets\/sim-plugins\/scarts_16'
534
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
535
    GDBSTUB_MAKEFILE_CFLAGS=$GDBSTUB_MAKEFILE_CFLAGS' -I$(INST_SCARTS_TOOLCHAIN_GDB_DIR)\/..\/assets\/sim-plugins\/scarts_32'
536
  fi
537
 
538
  GDBSTUB_MAKEFILE_PROGRAM=""
539
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
540
    GDBSTUB_MAKEFILE_PROGRAM="scarts_16-gdb-stub"
541
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
542
    GDBSTUB_MAKEFILE_PROGRAM="scarts_32-gdb-stub"
543
  fi
544
 
545
  echo -n "Creating $SCARTS_GDBSTUB_MAKEFILE in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR ..."
546
  sed "s/@MAKEFILE_CFLAGS@/$GDBSTUB_MAKEFILE_CFLAGS/g;
547
       s/@MAKEFILE_GCC_BINARY@/$MAKEFILE_GCC_BINARY/g;
548
       s/@MAKEFILE_LDFLAGS@/$MAKEFILE_LDFLAGS/g;
549
       s/@MAKEFILE_LINKER_SCRIPT@/$SCARTS_GDB_STUB_LD_SCRIPT/g;
550
       s/@MAKEFILE_OBJCOPY_BINARY@/$MAKEFILE_OBJCOPY_BINARY/g;
551
       s/@MAKEFILE_OBJDUMP_BINARY@/$MAKEFILE_OBJDUMP_BINARY/g;
552
       s/@MAKEFILE_PROGRAM@/$GDBSTUB_MAKEFILE_PROGRAM/g
553
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_GDB_STUB_DIR/Makefile > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR/$SCARTS_GDBSTUB_MAKEFILE
554
  echo " done"
555
  echo ""
556
 
557
  echo "-- SCARTS Makefile --"
558
 
559
  # Create default linker script
560
  MEMMAP_LD_SCRIPT=""
561
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
562
    MEMMAP_LD_SCRIPT=$MEMMAP_SRC_DIR/$MEMMAP_DEPS_MAKE_DIR/scarts_16.ld
563
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
564
    MEMMAP_LD_SCRIPT=$MEMMAP_SRC_DIR/$MEMMAP_DEPS_MAKE_DIR/scarts_32.ld
565
  fi
566
 
567
  echo -n "Creating default linker script ${MEMMAP_CFG_MACH}_$MEMMAP_CFG_NAME.ld for machine $MEMMAP_CFG_MACH in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR ..."
568
  sed "s/@SCARTS_CODEMEM_LMA_START@/0x$(echo "obase=16; $((SCARTS_CODEMEM_LMA_START))" | bc)/g;
569
       s/@SCARTS_CODEMEM_USABLE_SIZE@/0x$(echo "obase=16; $((SCARTS_CODEMEM_USABLE_SIZE))" | bc)/g;
570
       s/@SCARTS_CODEMEM_USABLE_VMA_END@/0x$(echo "obase=16; $((SCARTS_CODEMEM_USABLE_VMA_END))" | bc)/g;
571
       s/@SCARTS_CODEMEM_VMA_START@/0x$(echo "obase=16; $((SCARTS_CODEMEM_VMA_START))" | bc)/g;
572
       s/@SCARTS_DATAMEM_LMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_LMA_START))" | bc)/g;
573
       s/@SCARTS_DATAMEM_USABLE_SIZE@/0x$(echo "obase=16; $((SCARTS_DATAMEM_USABLE_SIZE))" | bc)/g;
574
       s/@SCARTS_DATAMEM_USABLE_VMA_END@/0x$(echo "obase=16; $((SCARTS_DATAMEM_USABLE_VMA_END))" | bc)/g;
575
       s/@SCARTS_DATAMEM_VMA_START@/0x$(echo "obase=16; $((SCARTS_DATAMEM_VMA_START))" | bc)/g;
576
       s/@SCARTS_SEARCH_DIR@/\"${LINKER_SCRIPT_SEARCH_DIR//\//\\/}\"/g
577
       " $MEMMAP_LD_SCRIPT > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR/${MEMMAP_CFG_MACH}-$MEMMAP_CFG_NAME.ld
578
  echo " done"
579
 
580
  # Create default Makefile
581
  SCARTS_DEFAULT_MAKEFILE=""
582
  if [ "$MEMMAP_CFG_MACH" = "scarts_16" ]; then
583
    SCARTS_DEFAULT_MAKEFILE="scarts_16-Makefile"
584
  elif [ "$MEMMAP_CFG_MACH" = "scarts_32" ]; then
585
    SCARTS_DEFAULT_MAKEFILE="scarts_32-Makefile"
586
  fi
587
 
588
  echo -n "Creating default $SCARTS_DEFAULT_MAKEFILE for machine $MEMMAP_CFG_MACH in $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR ..."
589
  sed "s/@MAKEFILE_CFLAGS@/$MAKEFILE_CFLAGS/g;
590
       s/@MAKEFILE_GCC_BINARY@/$MAKEFILE_GCC_BINARY/g;
591
       s/@MAKEFILE_LDFLAGS@/$MAKEFILE_LDFLAGS/g;
592
       s/@MAKEFILE_LINKER_SCRIPT@/${MEMMAP_CFG_MACH}-$MEMMAP_CFG_NAME.ld/g;
593
       s/@MAKEFILE_OBJCOPY_BINARY@/$MAKEFILE_OBJCOPY_BINARY/g;
594
       s/@MAKEFILE_OBJDUMP_BINARY@/$MAKEFILE_OBJDUMP_BINARY/g
595
       " $MEMMAP_SRC_DIR/$MEMMAP_DEPS_MAKE_DIR/Makefile > $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR/$SCARTS_DEFAULT_MAKEFILE
596
  echo " done"
597
 
598
  echo ""
599
  echo "#############################"
600
  echo "# Installation instructions #"
601
  echo "#############################"
602
  echo ""
603
 
604
  echo "-- SCARTS Bootloader --"
605
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR/$SCARTS_BOOTLOADER_LD_SCRIPT into the directory of the SCARTS Bootloader."
606
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_BOOTLOADER_DIR/$SCARTS_BOOTLOADER_MAKEFILE into the directory of the SCARTS Bootloader and compile."
607
  echo ""
608
 
609
  echo "-- SCARTS Core --"
610
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_CORE_DIR/scarts_conf.vhd into the SCARTS Core project and recompile it."
611
  echo ""
612
 
613
  echo "-- SCARTS GDB Simulator --"
614
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_INCLUDE_DIR/$SCARTS_SIM_INCLUDE_FILE into the include/gdb directory of the SCARTS GDB and compile."
615
  echo ""
616
 
617
  echo "-- SCARTS GDB-Stub --"
618
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR/$SCARTS_GDB_STUB_LD_SCRIPT into the directory of the SCARTS GDB-Stub."
619
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_GDB_STUB_DIR/$SCARTS_GDBSTUB_MAKEFILE into the directory of the SCARTS GDB-Stub and compile."
620
  echo ""
621
 
622
  echo "-- SCARTS Makefile --"
623
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR/$SCARTS_DEFAULT_MAKEFILE into your application's build directory and use it for compilation."
624
  echo "Copy $MEMMAP_BUILD_DIR/$MEMMAP_CFG_NAME/$MEMMAP_CFG_MACH/$MEMMAP_DEPS_MAKE_DIR/${MEMMAP_CFG_MACH}_$MEMMAP_CFG_NAME.ld into your application's build directory, the linker will automatically include it."
625
  echo "    Optionally you could specify the location of ${MEMMAP_CFG_MACH}_$MEMMAP_CFG_NAME.ld via the -L option in the LDFLAGS directive of your Makefile."
626
fi
627
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.