1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/boards/mulle/Makefile.include
Joakim Nohlgård 4a9cb807c6 k60: Remove (broken) support for first revision K60 hardware
The CPU has multiple issues and several parts of the platform code
does not even compile cleanly for this CPU in the current state.

This removes support for parts MK60DN256ZVLL10, MK60DN512ZVLL10
(note the Z) CPUs with this part number were used in Mulle v0.60 which
only has been used in some in-house projects at Eistec and LTU.
2017-04-07 08:39:49 +02:00

103 lines
3.3 KiB
Makefile

# define the cpu used by the Mulle board
export CPU = k60
# Default GDB port
export GDBPORT ?= 3333
# MULLE_SERIAL is used to select which specific Mulle board we are compiling for.
ifdef MULLE_SERIAL
CFLAGS += -DMULLE_SERIAL=$(MULLE_SERIAL)
endif
### CPU part number (must have a specific linker script for each part)
# Note that MK60DN256ZVLL10 (version 1.x) and MK60DN256VLL10 (version 2.x, no Z)
# only differ in some register locations etc, not in the actual memory layout,
# so it is safe to use the same linker script for both version 1.x and version
# 2.x silicon.
# The linker script needs to know the flash and RAM sizes of the device.
ifeq ($(CPU_MODEL),)
CPU_MODEL = K60DN512VLL10
endif
export CPU_MODEL
# OpenOCD settings for Mulle board.
# Try to determine which version of the OpenOCD config file we should use.
# Specify PROGRAMMER_VERSION or PROGRAMMER_SERIAL to choose a specific programmer board.
ifeq ($(PROGRAMMER_VERSION),)
ifneq ($(PROGRAMMER_SERIAL),)
# Makefile-way of comparing numbers, using lexicographical sorting since we don't have any arithmetic comparisons.
# Programmers with serial 100 -- 148 are version 0.60
# Programmers with serial 301 -- 330 are version 0.70
ifeq "100" "$(word 1, $(sort 100 $(PROGRAMMER_SERIAL)))"
# >= 100
ifneq "149" "$(word 1, $(sort 149 $(PROGRAMMER_SERIAL)))"
# < 149
PROGRAMMER_VERSION = 0.60
else
# >= 149
PROGRAMMER_VERSION = 0.70
endif
endif
endif
# Default to version 0.70 programmer
PROGRAMMER_VERSION ?= 0.70
endif
export OPENOCD_CONFIG = $(RIOTBOARD)/$(BOARD)/dist/openocd/mulle-programmer-$(PROGRAMMER_VERSION).conf
# Add serial matching command
ifneq ($(PROGRAMMER_SERIAL),)
OPENOCD_EXTRA_INIT += -c 'ftdi_serial $(PROGRAMMER_SERIAL)'
endif
OPENOCD_EXTRA_INIT += $(CPU_OOCD_FLAGS)
# Host OS name
OS := $(shell uname)
ifeq ($(PORT),)
# try to find tty name by serial number, only works on Linux currently.
ifeq ($(OS),Linux)
ifneq ($(PROGRAMMER_SERIAL),)
PORT := $(firstword $(shell $(RIOTBASE)/dist/tools/usb-serial/find-tty.sh '^$(PROGRAMMER_SERIAL)$$'))
else
# find-tty.sh will return the first USB tty if no serial is given.
PORT := $(firstword $(shell $(RIOTBASE)/dist/tools/usb-serial/find-tty.sh))
endif
else ifeq ($(OS),Darwin)
ifneq ($(PROGRAMMER_SERIAL),)
PORT := /dev/tty.usbserial-$(PROGRAMMER_SERIAL)B
else
PORT := $(firstword $(sort $(wildcard /dev/tty.usbserial*)))
endif
endif
endif
ifeq ($(PORT),)
# fall back to a sensible default
PORT := /dev/ttyUSB0
endif
# We need special handling of the watchdog if we want to speed up the flash
# verification by using the MCU to compute the image checksum after flashing.
# wdog-disable.bin is a precompiled binary which will disable the watchdog and
# return control to the debugger (OpenOCD)
export OPENOCD_PRE_VERIFY_CMDS += \
-c 'load_image $(RIOTCPU)/kinetis_common/dist/wdog-disable.bin 0x20000000 bin' \
-c 'resume 0x20000000'
export OPENOCD_EXTRA_INIT
export PRE_FLASH_CHECK_SCRIPT = $(RIOTCPU)/kinetis_common/dist/check-fcfield-hex.sh
.PHONY: flash
flash: $(RIOTCPU)/kinetis_common/dist/wdog-disable.bin
# Reset the default goal.
.DEFAULT_GOAL :=
# this board uses openocd
include $(RIOTMAKE)/tools/openocd.inc.mk
# setup serial terminal
include $(RIOTMAKE)/tools/serial.inc.mk