OSDN Git Service

debug sdcc
authorryuz <QZF06013@nifty.ne.jp>
Mon, 23 Jul 2012 15:47:58 +0000 (00:47 +0900)
committerryuz <QZF06013@nifty.ne.jp>
Mon, 23 Jul 2012 15:47:58 +0000 (00:47 +0900)
kernel/build/common/gmake/sdcc_d.inc
kernel/build/common/gmake/sdcc_r.inc
kernel/source/object/tsk/ref_tsk.c

index a4e409e..33fa97f 100755 (executable)
@@ -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{ã\83\9eã\82¯ã\83­å®\9a義ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®å®\9a義}
-CFLAGS_DEF ?= $(patsubst %,-D%,$(C_DEFS))
+# %jp{ã\83\87ã\83\90ã\83\83ã\82°ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81®å®\9a義}%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
index 9f712c1..7328c3d 100755 (executable)
@@ -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
index 9464a5c..94c0552 100755 (executable)
@@ -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独自拡張)} */