# # TOPPERS/ASP Kernel # Toyohashi Open Platform for Embedded Real-Time Systems/ # Advanced Standard Profile Kernel # # Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory # Toyohashi Univ. of Technology, JAPAN # Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory # Graduate School of Information Science, Nagoya Univ., JAPAN # # 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ # ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 # 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. # (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 # 権表示,この利用条件および下記の無保証規定が,そのままの形でソー # スコード中に含まれていること. # (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 # 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 # 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 # の無保証規定を掲載すること. # (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 # 用できない形で再配布する場合には,次のいずれかの条件を満たすこ # と. # (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 # 作権表示,この利用条件および下記の無保証規定を掲載すること. # (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに # 報告すること. # (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 # 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. # また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 # 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを # 免責すること. # # 本ソフトウェアは,無保証で提供されているものである.上記著作権者お # よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 # に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ # アの利用により直接的または間接的に生じたいかなる損害に関しても,そ # の責任を負わない. # # @(#) $Id: Makefile.core 301 2015-01-07 04:57:01Z ertl-ishikawa $ # # # Makefile のプロセッサ依存部(ARM-M用) # # # コア依存部ディレクトリ名の定義 # COREDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)/common # # ツール依存部ディレクトリ名の定義 # TOOLDIR = $(SRCDIR)/arch/$(TOOL) # # コンパイルオプション # COPTS := $(COPTS) -mthumb INCLUDES := $(INCLUDES) -I$(COREDIR) -I$(TOOLDIR) LDFLAGS := $(LDFLAGS) CDEFS := $(CDEFS) LIBS := $(LIBS) -lgcc vpath %.c $(COREDIR) vpath %.S $(COREDIR) # # カーネルに関する定義 # KERNEL_DIR := $(KERNEL_DIR) $(COREDIR) KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) KERNEL_COBJS := $(KERNEL_COBJS) core_kernel_impl.o # # コンフィギュレータ関係の変数の定義 # CFG_TABS := $(CFG_TABS) --symval-table $(COREDIR)/core_sym.def # # オフセットファイル生成のための定義(ToDo) # TARGET_OFFSET_TRB = $(COREDIR)/core_offset.trb # # コアのタイプによる違い # ifeq ($(CORE_TYPE),CORTEX_M4) ARM_ARCH = ARMV7M COPTS := $(COPTS) -mcpu=cortex-m4 CDEFS := $(CDEFS) -DTOPPERS_CORTEX_M4 FPU_ARCH_MACRO = __TARGET_FPU_FPV4_SP FPU_ARCH_OPT = fpv4-sp-d16 else ifeq ($(CORE_TYPE),CORTEX_M0PLUS) ARM_ARCH = ARMV6M COPTS := $(COPTS) -mcpu=cortex-m0plus CDEFS := $(CDEFS) -DTOPPERS_CORTEX_M0PLUS else ifeq ($(CORE_TYPE),CORTEX_M0) ARM_ARCH = ARMV6M COPTS := $(COPTS) -mcpu=cortex-m0 CDEFS := $(CDEFS) -DTOPPERS_CORTEX_M0 else ifeq ($(CORE_TYPE),CORTEX_M3) ARM_ARCH = ARMV7M COPTS := $(COPTS) -mcpu=cortex-m3 CDEFS := $(CDEFS) -DTOPPERS_CORTEX_M3 endif # # アーキテクチャ毎に異なる設定 # ifeq ($(ARM_ARCH),ARMV7M) KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) core_support.o CDEFS := $(CDEFS) -D__TARGET_ARCH_THUMB=4 else ifeq ($(ARM_ARCH),ARMV6M) KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) core_support_v6m.o CDEFS := $(CDEFS) -D__TARGET_ARCH_THUMB=3 endif # # FPUの設定 # ifeq ($(FPU_ABI),) FPU_ABI = softfp endif ifeq ($(FPU_USAGE),FPU_NO_PRESERV) COPTS := $(COPTS) -mfloat-abi=$(FPU_ABI) -mfpu=$(FPU_ARCH_OPT) CDEFS := $(CDEFS) -D$(FPU_ARCH_MACRO) -DTOPPERS_FPU_ENABLE else ifeq ($(FPU_USAGE),FPU_NO_LAZYSTACKING) COPTS := $(COPTS) -mfloat-abi=$(FPU_ABI) -mfpu=$(FPU_ARCH_OPT) CDEFS := $(CDEFS) -D$(FPU_ARCH_MACRO) -DTOPPERS_FPU_ENABLE -DTOPPERS_FPU_NO_LAZYSTACKING -DTOPPERS_FPU_CONTEXT else ifeq ($(FPU_USAGE),FPU_LAZYSTACKING) COPTS := $(COPTS) -mfloat-abi=$(FPU_ABI) -mfpu=$(FPU_ARCH_OPT) CDEFS := $(CDEFS) -D$(FPU_ARCH_MACRO) -DTOPPERS_FPU_ENABLE -DTOPPERS_FPU_LAZYSTACKING -DTOPPERS_FPU_CONTEXT endif