From: ryuz Date: Mon, 23 Jul 2012 15:47:58 +0000 (+0900) Subject: debug sdcc X-Git-Url: http://git.osdn.net/view?p=hos%2Fhos-v4a.git;a=commitdiff_plain;h=20b26c6460a582ab07054b4658c4919f7927902a debug sdcc --- diff --git a/kernel/build/common/gmake/sdcc_d.inc b/kernel/build/common/gmake/sdcc_d.inc index a4e409e..33fa97f 100755 --- a/kernel/build/common/gmake/sdcc_d.inc +++ b/kernel/build/common/gmake/sdcc_d.inc @@ -1,7 +1,7 @@ # ---------------------------------------------------------------------------- # Hyper Operating System V4 Advance # -# Copyright (C) 1998-2006 by Project HOS +# Copyright (C) 1998-2012 by Project HOS # http://sourceforge.jp/projects/hos/ # ---------------------------------------------------------------------------- @@ -13,62 +13,58 @@ CMD_LIBR ?= sdcclib CMD_LINK ?= sdcc CMD_OBJCNV ?= sdcc -# %jp{拡張子定義} + +# %jp{拡張子定義}%en{file extensions} EXT_C ?= c EXT_CPP ?= cpp EXT_ASM ?= S -EXT_OBJ ?= o -EXT_LIB ?= lib -EXT_EXE ?= elf +EXT_OBJ ?= rel +EXT_LIB ?= a +EXT_EXE ?= out EXT_MOT ?= mot EXT_HEX ?= hex EXT_BIN ?= bin + # ---------------------------------- # C-compiler # ---------------------------------- -# %jp{共通オプションの設定} +# %jp{共通オプションの設定}%en{common options} CFLAGS += -# %jp{インクルードパスオプションの定義} -CFLAGS_INC ?= $(patsubst %,-I%,$(INC_DIRS)) -# %jp{マクロ定義オプションの定義} -CFLAGS_DEF ?= $(patsubst %,-D%,$(C_DEFS)) +# %jp{デバッグオプションの定義}%en{debug options} +CFLAGS_DBG ?= -# %jp{デバッグオプションの定義} -CFLAGS_DBG ?= --debug -# %jp{最適化オプションの定義} -CFLAGS_OPT_NONE ?= -CFLAGS_OPT_NORMAL ?= +# %jp{最適化オプションの定義}%en{optimize options} +CFLAGS_OPT_NONE ?= +CFLAGS_OPT_NORMAL ?= CFLAGS_OPT_SIZE ?= --opt-code-size CFLAGS_OPT_SPEED ?= --opt-code-speed + # ---------------------------------- # Assembler # ---------------------------------- -# %jp{共通オプションの設定} +# %jp{共通オプションの設定}%en{common options} AFLAGS += -# %jp{インクルードパスオプションの定義} -AFLAGS_INC ?= $(patsubst %,-I%,$(INC_DIRS)) -# %jp{マクロ定義オプションの定義} -AFLAGS_DEF ?= - -# %jp{デバッグオプションの定義} +# %jp{デバッグオプションの定義}%en{debug options} AFLAGS_DBG ?= --debug -# %jp{最適化オプションの定義} + +# %jp{最適化オプションの定義}%en{optimize options} AFLAGS_OPT_NONE ?= AFLAGS_OPT_NORMAL ?= AFLAGS_OPT_SIZE ?= AFLAGS_OPT_SPEED ?= + # end of file diff --git a/kernel/build/common/gmake/sdcc_r.inc b/kernel/build/common/gmake/sdcc_r.inc index 9f712c1..7328c3d 100755 --- a/kernel/build/common/gmake/sdcc_r.inc +++ b/kernel/build/common/gmake/sdcc_r.inc @@ -5,31 +5,94 @@ # http://sourceforge.jp/projects/hos/ # ---------------------------------------------------------------------------- -define NEW-LINES - -endef +# -------------------------------------- +# %jp{オプション展開}%en{options} +# -------------------------------------- + +# %jp{C言語インクルードパスオプションの定義}%en{C-compiler include path} +ifneq ($(INC_DIRS),) +CFLAGS_INC ?= $(patsubst %,-I%,$(INC_DIRS)) +endif + + +# %jp{C言語マクロ定義オプションの定義}%en{C-compiler define macros} +ifneq ($(C_DEFS),) +CFLAGS_DEF ?= $(patsubst %,-D%,$(C_DEFS)) +endif + + +# %jp{アセンブリ言語インクルードパスオプションの定義}%en{Assembler include path} +ifneq ($(INC_DIRS),) +AFLAGS_INC ?= $(patsubst %,-I%,$(INC_DIRS)) +endif + + +# %jp{アセンブリ言語マクロ定義オプションの定義}%en{Assembler define macros} +ifneq ($(A_DEFS),) +AFLAGS_DEF ?= $(patsubst %,-D%,$(A_DEFS)) +endif + + +# %jp{オプション統合}{Options marged} +CFLAGS += $(CFLAGS_INC) $(CFLAGS_DEF) +AFLAGS += $(AFLAGS_INC) $(AFLAGS_DEF) + + + +# -------------------------------------- +# %jpルール定義}%en{Rules} +# -------------------------------------- + + +# %jp{実行ファイル生成}%en{Executable file} $(TARGET_EXE): $(OBJS) $(LIBS) - $(CMD_LINK) $(LNFLAGS) $(OBJS) $(LIBS) -o $(TARGET_EXE) + $(CMD_LINK) $(LNFLAGS) $(OBJS) $(LIBS) $(LNFLAGS2) -o $(TARGET_EXE) +# %jp{モトローラS形式ファイル生成}%en{Motorola S format file} $(TARGET_MOT): $(TARGET_EXE) $(CMD_OBJCNV) -O srec $(TARGET_EXE) $(TARGET_MOT) -# %jp{ライブラリ生成} +# %jp{インテルHEX形式ファイル生成}%en{Intel HEX format file} +$(TARGET_HEX): $(TARGET_EXE) + $(CMD_OBJCNV) -O ihex $(TARGET_EXE) $(TARGET_HEX) + + +# %jp{プレーンバイナリ形式ファイル生成}%en{Plain Binary} +$(TARGET_BIN): $(TARGET_EXE) + $(CMD_OBJCNV) -O binary $(TARGET_EXE) $(TARGET_BIN) + + +# %jp{ライブラリ生成}%en{Library} $(TARGET_LIB): $(OBJS) - $(foreach obj,$(OBJS),$(CMD_LIBR) -a $(TARGET_LIB) $(obj)$(NEW-LINES)) + $(CMD_LIBR) $(ARFLAGS) -r $(TARGET_LIB) $(OBJS) + -# %jp{Cコンパイル} +# %jp{Cコンパイル}%en{C Compile} $(OBJS_DIR)/%.$(EXT_OBJ) :: %.$(EXT_C) $(CMD_CC) $(CFLAGS) -c $< -o $@ -# %jp{アセンブル} + +# %jp{アセンブル}%en{Assemble} $(OBJS_DIR)/%.$(EXT_OBJ) :: %.$(EXT_ASM) $(CMD_ASM) $(AFLAGS) -c $< -o $@ +# %jp{一括コンパイル}%en{batch cmpile} +batch_c: + $(CMD_CC) $(CFLAGS) -c $(CSRCS) + $(CMD_MV) -f $(addsuffix .$(EXT_OBJ), $(basename $(notdir $(CSRCS)))) $(OBJS_DIR) + + +# %jp{一括アセンブル}%en{batch cmpile} +batch_asm: + $(CMD_CC) $(CFLAGS) -c $(ASRCS) + $(CMD_MV) -f $(addsuffix .$(EXT_OBJ), $(basename $(notdir $(ASRCS)))) $(OBJS_DIR) + + + # end of file diff --git a/kernel/source/object/tsk/ref_tsk.c b/kernel/source/object/tsk/ref_tsk.c index 9464a5c..94c0552 100755 --- a/kernel/source/object/tsk/ref_tsk.c +++ b/kernel/source/object/tsk/ref_tsk.c @@ -82,7 +82,7 @@ ER ref_tsk(ID tskid, T_RTSK *p_rtsk) #endif #if _KERNEL_SPT_RTSK_TASK - p_rtsk->task = _KERNEL_TSK_GET_TASK(tcb_ro); /* %jp{タスクの起動番地(HOS独自拡張)} */ + p_rtsk->task = (FP)_KERNEL_TSK_GET_TASK(tcb_ro); /* %jp{タスクの起動番地(HOS独自拡張)} */ #endif #if _KERNEL_SPT_RTSK_ITSKPRI p_rtsk->itskpri = _KERNEL_TSK_GET_ITSKPRI(tcb_ro); /* %jp{タスクの起動時優先度(HOS独自拡張)} */