OSDN Git Service

add cortex-m3 startup
authorryuz <ryuz@users.sourceforge.jp>
Wed, 23 Mar 2011 14:54:58 +0000 (23:54 +0900)
committerryuz <ryuz@users.sourceforge.jp>
Wed, 23 Mar 2011 14:54:58 +0000 (23:54 +0900)
20 files changed:
cfgrtr/source/definh.cpp
kernel/build/arm/cortex_m3/gcc/Makefile
kernel/include/arch/proc/arm/arm_v7m/proc.h [moved from kernel/include/arch/proc/arm/cortex_m3/proc.h with 93% similarity]
kernel/include/arch/proc/arm/arm_v7m/procatr.h [moved from kernel/include/arch/proc/arm/cortex_m3/procatr.h with 90% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/kcre_ctx.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/kcre_ctx.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/kdis_int.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/kdis_int.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/kena_int.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/kena_int.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/khwf_hdr.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/khwf_hdr.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/knmi_hdr.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/knmi_hdr.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/krst_ctx.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/krst_ctx.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/krst_hdr.S [new file with mode: 0644]
kernel/source/arch/proc/arm/arm_v7m/gcc/kswi_ctx.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/kswi_ctx.S with 100% similarity]
kernel/source/arch/proc/arm/arm_v7m/gcc/kwai_int.S [moved from kernel/source/arch/proc/arm/cortex_m3/gcc/kwai_int.S with 100% similarity]
kernel/source/arch/proc/arm/cortex_m3/gcc/krst_hdr.S [deleted file]
kernel/source/core/hep/cre_hep.c
sample/arm/stm32f103/gcc/.cproject
sample/arm/stm32f103/gcc/Makefile
sample/arm/stm32f103/gcc/kernel_vct.c
sample/arm/stm32f103/gcc/link.lds
sample/arm/stm32f103/main.c

index f2509a2..d09ca62 100755 (executable)
@@ -138,15 +138,15 @@ void  CApiDefInh::WriteVecter(FILE* fp, CApiIntStack *pIntStack)
                switch ( i )
                {
                case 0:
-                       fprintf(fp, "\t\t{(FP)(_kernel_reset_handler)},\t\t/* reset handler */\n");
-                       break;
-
-               case 1:
                        fprintf(fp, "\t\t{(FP)(");
                        pIntStack->WriteStackPointer(fp);
                        fprintf(fp, ")},\t\t/* stack pointer */\n");
                        break;
 
+               case 1:
+                       fprintf(fp, "\t\t{(FP)(_kernel_reset_handler)},\t\t/* reset handler */\n");
+                       break;
+
                case 2:
                        fprintf(fp, "\t\t{(FP)(_kernel_nmi_handler)},\t\t/* non maskable intterupt handler */\n");
                        break;
index aae5280..ebc1fa6 100644 (file)
@@ -25,7 +25,7 @@ CMD_LIBR ?= $(GCC_ARCH)ar
 
 # %jp{アーキテクチャ定義}%en{architecture}
 ARCH_NAME ?= cortex_m3
-ARCH_PROC ?= arm/cortex_m3
+ARCH_PROC ?= arm/arm_v7m
 ARCH_IRC  ?= none
 ARCH_CC   ?= gcc
 
similarity index 93%
rename from kernel/include/arch/proc/arm/cortex_m3/proc.h
rename to kernel/include/arch/proc/arm/arm_v7m/proc.h
index 1347b42..f420197 100644 (file)
@@ -2,15 +2,15 @@
  *  Hyper Operating System V4 Advance
  *
  * @file  proc.h
- * @brief %jp{ARM Cortex-M3}%en{Cortex-M3}
+ * @brief %jp{ARMv7-M}%en{ARMv7-M}
  *
  * Copyright (C) 1998-2011 by Project HOS
  * http://sourceforge.jp/projects/hos/
  */
 
 
-#ifndef _KERNEL__arch__proc__arm__cortex_m3__proc_h__
-#define _KERNEL__arch__proc__arm__cortex_m3__proc_h__
+#ifndef _KERNEL__arch__proc__arm__arm_v7m__proc_h__
+#define _KERNEL__arch__proc__arm__arm_v7m__proc_h__
 
 
 
@@ -82,7 +82,7 @@ void    _kernel_swi_ctx(_KERNEL_T_CTXCB *pk_ctxinf_nxt, _KERNEL_T_CTXCB *pk_ctxc
                                                                        _kernel_swi_ctx((pk_ctxinf_nxt), (pk_ctxcb_now))                                /**< %jp{実行コンテキストの切替} */
 
 
-#endif /* _KERNEL__arch__proc__arm__cortex_m3__proc_h__ */
+#endif /* _KERNEL__arch__proc__arm__arm_v7m__proc_h__ */
 
 
 
@@ -2,22 +2,22 @@
  *  Hyper Operating System V4 Advance
  *
  * @file  procatr.h
- * @brief %jp{ARM Cortex-M3}%en{ARM Cortex-M3}
+ * @brief %jp{ARMv7-M}%en{ARMv7-M}
  *
  * Copyright (C) 1998-2011 by Project HOS
  * http://sourceforge.jp/projects/hos/
  */
 
 
-#ifndef _KERNEL__arch__proc__arm__cortex_m3__procatr_h__
-#define _KERNEL__arch__proc__arm__cortex_m3__procatr_h__
+#ifndef _KERNEL__arch__proc__arm__arm_v7m__procatr_h__
+#define _KERNEL__arch__proc__arm__arm_v7m__procatr_h__
 
 
 #define _KERNEL_PROCATR_ARM_CORTEX_M3
 
 
 /* %jp{プロセッサアーキテクチャ定義のあるインクルードパス} */
-#define _KERNEL_PROCATR_INC_PATH                       "arm/cortex_m3"
+#define _KERNEL_PROCATR_INC_PATH                       "arm/arm_v7m"
 
 
 /* %jp{プロセッサアーキテクチャに依存した属性} */
@@ -51,7 +51,7 @@
 
 
 
-#endif /* _KERNEL__arch__proc__arm__cortex_m3__procatr_h__ */
+#endif /* _KERNEL__arch__proc__arm__arm_v7m__procatr_h__ */
 
 
 /* end of file */
diff --git a/kernel/source/arch/proc/arm/arm_v7m/gcc/krst_hdr.S b/kernel/source/arch/proc/arm/arm_v7m/gcc/krst_hdr.S
new file mode 100644 (file)
index 0000000..951eb8d
--- /dev/null
@@ -0,0 +1,70 @@
+/**
+ *  Hyper Operating System V4 Advance
+ *
+ * Copyright (C) 1998-2011 by Project HOS
+ * http://sourceforge.jp/projects/hos/
+ */
+
+
+
+                               .text
+                               .align  2
+
+                               .extern         ___data
+                               .extern         ___data_end
+                               .extern         ___bss
+                               .extern         ___bss_end
+                               .extern         main
+                               .global         main
+
+/************************************************
+  リセットハンドラ
+ ************************************************/
+                               .global _kernel_reset_handler
+                               .thumb
+                               .thumb_func
+                               .type   _kernel_reset_handler, %function
+_kernel_reset_handler:
+
+                               /* DATA領域のコピー */
+                               movw    r0, #:lower16:___data_rom
+                               movt    r0, #:upper16:___data_rom
+                               movw    r1, #:lower16:___data
+                               movt    r1, #:upper16:___data
+                               movw    r2, #:lower16:___data_end
+                               movt    r2, #:upper16:___data_end
+
+data_loop:
+                               ldr             r3, [r0]
+                               add             r0, r0, #4
+                               str             r3, [r1]
+                               add             r1, r1, #4
+                               cmp             r1, r2
+                               bcc             data_loop
+
+                               /* BSS領域の初期化 */
+                               movw    r0, #:lower16:___bss
+                               movt    r0, #:upper16:___bss
+                               movw    r1, #:lower16:___bss_end
+                               movt    r1, #:upper16:___bss_end
+                               mov             r2, #0
+bss_loop:
+                               str             r2, [r0]
+                               add             r0, r0, #4
+                               cmp             r0, r1
+                               bcc             bss_loop
+
+                               /* main関数の呼び出し */
+                               blx             main
+end_loop:
+                               b               end_loop
+
+
+                               .size   _kernel_reset_handler, .-_kernel_reset_handler
+
+
+                               .end
+
+
+; end of file
+
diff --git a/kernel/source/arch/proc/arm/cortex_m3/gcc/krst_hdr.S b/kernel/source/arch/proc/arm/cortex_m3/gcc/krst_hdr.S
deleted file mode 100644 (file)
index b90d028..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/** 
- *  Hyper Operating System V4 Advance
- *
- * Copyright (C) 1998-2011 by Project HOS
- * http://sourceforge.jp/projects/hos/
- */
-
-
-
-                               .text
-                               .align  2
-
-                               .global main
-
-/************************************************
-  リセットハンドラ
- ************************************************/
-                               .global _kernel_reset_handler
-                               .thumb
-                               .thumb_func
-                               .type   _kernel_reset_handler, %function
-_kernel_reset_handler:
-                               blx             main
-                               
-                               .size   _kernel_reset_handler, .-_kernel_reset_handler
-
-
-                               .end
-
-
-; end of file
-
index 682556c..90ffa14 100755 (executable)
@@ -20,7 +20,7 @@ void _kernel_cre_hep(
                VP             hep)
 {
        _KERNEL_T_HEPBLK *blk_last;
-       
+
        /* %jp{サイズのアライメントを調整} */
        hepsz &= ~(_KERNEL_HEP_MEMALIGN - 1);
 
@@ -34,15 +34,15 @@ void _kernel_cre_hep(
        /* %jp{設定保存} */
        pk_hepcb->base   = (_KERNEL_T_HEPBLK *)hep;
        pk_hepcb->heapsz = hepsz;
-       
+
        /* %jp{終端位置に番人を設定} */
        blk_last = (_KERNEL_T_HEPBLK *)((UB *)hep + hepsz - _KERNEL_HEP_BLKSIZE);
-       
+
        /* %jp{全体を空き領域に設定} */
        pk_hepcb->base->prev = NULL;
        pk_hepcb->base->size = hepsz - (_KERNEL_HEP_BLKSIZE * 2);
        pk_hepcb->base->flag = _KERNEL_HEP_FREE;
-       
+
        /* %jp{終端の番人を利用中に設定} */
        blk_last->prev = NULL;
        blk_last->size = 0;
index ba99194..8c44eb4 100644 (file)
                                </extensions>
                        </storageModule>
                        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
-                               <configuration buildProperties="" id="cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895" name="デフォルト" parent="org.eclipse.cdt.build.core.emptycfg">
+                               <configuration artifactName="sample_stm32f103" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895" name="デフォルト" parent="org.eclipse.cdt.build.core.emptycfg">
                                        <folderInfo id="cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895.535793802" name="/" resourcePath="">
                                                <toolChain id="cdt.managedbuild.toolchain.gnu.cygwin.base.1357496047" name="cdt.managedbuild.toolchain.gnu.cygwin.base" superClass="cdt.managedbuild.toolchain.gnu.cygwin.base">
                                                        <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.Cygwin_PE" id="cdt.managedbuild.target.gnu.platform.cygwin.base.1298702746" name="デバッグ・プラットフォーム" osList="win32" superClass="cdt.managedbuild.target.gnu.platform.cygwin.base"/>
-                                                       <builder id="cdt.managedbuild.target.gnu.builder.cygwin.base.1747100279" managedBuildOn="false" name="Gnu Make ビルダー.デフォルト" superClass="cdt.managedbuild.target.gnu.builder.cygwin.base"/>
-                                                       <tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.base.931406315" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.base"/>
+                                                       <builder id="cdt.managedbuild.target.gnu.builder.cygwin.base.1747100279" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make ビルダー" superClass="cdt.managedbuild.target.gnu.builder.cygwin.base"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.assembler.cygwin.base.931406315" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.cygwin.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1109452503" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
+                                                       </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.archiver.cygwin.base.74847627" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.cygwin.base"/>
-                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.base.1097478345" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.base"/>
-                                                       <tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.base.115305879" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.base"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.base.1097478345" name="Cygwin C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1357814029" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin"/>
+                                                       </tool>
+                                                       <tool id="cdt.managedbuild.tool.gnu.c.compiler.cygwin.base.115305879" name="Cygwin C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.cygwin.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.2040205678" superClass="cdt.managedbuild.tool.gnu.c.compiler.input.cygwin"/>
+                                                       </tool>
                                                        <tool id="cdt.managedbuild.tool.gnu.c.linker.cygwin.base.1286825455" name="Cygwin C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.cygwin.base"/>
-                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.base.274938788" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.base"/>
+                                                       <tool id="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.base.274938788" name="Cygwin C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.cygwin.base">
+                                                               <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.563625971" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+                                                               </inputType>
+                                                       </tool>
                                                </toolChain>
                                        </folderInfo>
                                </configuration>
                        </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+                       <storageModule moduleId="org.eclipse.cdt.core.language.mapping"/>
                        <storageModule moduleId="scannerConfiguration">
                                <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
                                <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
                                                <parser enabled="true"/>
                                        </scannerInfoProvider>
                                </profile>
+                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895;cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895.535793802;cdt.managedbuild.tool.gnu.cpp.compiler.cygwin.base.1097478345;cdt.managedbuild.tool.gnu.cpp.compiler.input.cygwin.1357814029">
+                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"/>
+                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="makefileGenerator">
+                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                               </scannerConfigBuildInfo>
+                               <scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895;cdt.managedbuild.toolchain.gnu.cygwin.base.1570928895.535793802;cdt.managedbuild.tool.gnu.c.compiler.cygwin.base.115305879;cdt.managedbuild.tool.gnu.c.compiler.input.cygwin.2040205678">
+                                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"/>
+                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="makefileGenerator">
+                                                       <runAction arguments="-E -P -v -dD" command="" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/${specs_file}&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'g++ -E -P -v -dD &quot;${plugin_state_location}/specs.cpp&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                                       <profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
+                                               <buildOutputProvider>
+                                                       <openAction enabled="true" filePath=""/>
+                                                       <parser enabled="true"/>
+                                               </buildOutputProvider>
+                                               <scannerInfoProvider id="specsFile">
+                                                       <runAction arguments="-c 'gcc -E -P -v -dD &quot;${plugin_state_location}/specs.c&quot;'" command="sh" useDefault="true"/>
+                                                       <parser enabled="true"/>
+                                               </scannerInfoProvider>
+                                       </profile>
+                               </scannerConfigBuildInfo>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
+                               <buildTargets>
+                                       <target name="sample_dbg.elf" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+                                               <buildCommand>make</buildCommand>
+                                               <buildArguments>KERNEL_DEBUG=Yes DEBUG=Yes</buildArguments>
+                                               <buildTarget>all</buildTarget>
+                                               <stopOnError>true</stopOnError>
+                                               <useDefaultCommand>false</useDefaultCommand>
+                                               <runAllBuilders>true</runAllBuilders>
+                                       </target>
+                                       <target name="sampledbg.elf" path="" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
+                                               <buildCommand>make</buildCommand>
+                                               <buildArguments>DEBUG=Yes</buildArguments>
+                                               <buildTarget>sampledbg.elf</buildTarget>
+                                               <stopOnError>true</stopOnError>
+                                               <useDefaultCommand>false</useDefaultCommand>
+                                               <runAllBuilders>true</runAllBuilders>
+                                       </target>
+                               </buildTargets>
                        </storageModule>
-                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
                </cconfiguration>
        </storageModule>
        <storageModule moduleId="cdtBuildSystem" version="4.0.0">
index 660ca85..28d1846 100644 (file)
@@ -6,6 +6,9 @@
 # ----------------------------------------------------------------------------
 
 
+KERNEL_DEBUG ?= Yes
+DEBUG        ?= Yes
+
 
 # --------------------------------------
 #  %jp{各種設定}{setting}
@@ -27,6 +30,8 @@ CMD_OBJCNV ?= $(GCC_ARCH)objcopy
 ARCH_NAME ?= cortex_m3
 ARCH_CC   ?= gcc
 
+EXT_EXE   ?= elf
+
 
 # %jp{ディレクトリ定義}%en{directories}
 TOP_DIR           = ../../../..
index d372f27..3a8ad49 100644 (file)
@@ -5,8 +5,8 @@
 
 
 #include "kernel.h"
-#include "arch/proc/arm/cortex_m3/procatr.h"
-#include "arch/proc/arm/cortex_m3/proc.h"
+#include "arch/proc/arm/arm_v7m/procatr.h"
+#include "arch/proc/arm/arm_v7m/proc.h"
 #include "arch/irc/none/ircatr.h"
 #include "arch/irc/none/irc.h"
 #include "config/cfgknl.h"
@@ -39,8 +39,8 @@ extern VP       _kernel_int_stkblk[((512) + sizeof(VP) - 1) / sizeof(VP)];
 
 _KERNEL_T_INHINF _kernel_inh_tbl[65] =
        {
-               {(FP)(_kernel_reset_handler)},          /* reset handler */
                {(FP)(&_kernel_int_stkblk[((512) + sizeof(VP) - 1) / sizeof(VP)])},             /* stack pointer */
+               {(FP)(_kernel_reset_handler)},          /* reset handler */
                {(FP)(_kernel_nmi_handler)},            /* non maskable intterupt handler */
                {(FP)(_kernel_hw_fault_handler)},               /* hard fault handler */
                {(FP)NULL},
index 76681d0..ec3f373 100644 (file)
@@ -3,9 +3,9 @@ ENTRY(_kernel_reset_handler)
 
 MEMORY
 {
-       vector : o = 0x00000000, l = 0x00001000
-       rom    : o = 0x00001000, l = 0x000ff000
-       ram    : o = 0x40000000, l = 0x00004000
+       vector : o = 0x08000000, l = 0x00001000
+       ro     : o = 0x08001000, l = 0x000ff000
+       rw     : o = 0x20000000, l = 0x00005000
 }
 
 SECTIONS
@@ -13,7 +13,8 @@ SECTIONS
        .vector :
        {
                ___vector = . ; 
-               */kernel_vct.o(.text)
+               */kernel_vct.o(.data)
+               */kernel_vct.o(.rodata*)
                FILL(0xff)
                ___vector_end = . ; 
        } > vector
@@ -25,7 +26,7 @@ SECTIONS
                *(.rodata*)
                *(.glue*)
                 ___text_end = . ; 
-       }  > rom
+       }  > ro
        .tors :
        {
                . = ALIGN(4);
@@ -35,20 +36,20 @@ SECTIONS
                ___dtors = . ;
                *(.dtors)
                ___dtors_end = . ;
-       } > rom
+       } > ro
        data : AT (ADDR(.tors) + SIZEOF(.tors))
        {
            ___data_rom = ADDR(.tors) + SIZEOF(.tors);
                ___data = . ;
                *(.data)
                ___data_end = . ;
-       } > ram
+       } > rw
        .bss :
        {
                ___bss = . ;
                *(.bss)
                *(COMMON)
                ___bss_end = . ;  
-       }  >ram
+       }  >rw
 }
 
index 74dfd13..30efc6c 100644 (file)
@@ -1,4 +1,4 @@
-/** 
+/**
  *  Sample program for Hyper Operating System V4 Advance
  *
  * @file  main.c
 #include "kernel.h"
 
 
+#define REG_RCC_APB2ENR                ((volatile UW *)0x40021018)
+#define REG_GPIOC_CRL          ((volatile UW *)0x40011000)
+#define REG_GPIOC_ODR          ((volatile UW *)0x4001100c)
+
+
 /** %jp{メイン関数} */
 int main()
 {
-       
+       /* LED ON */
+       *REG_RCC_APB2ENR = 0x00000010;
+       *REG_GPIOC_CRL   = 0x42444444;
+       *REG_GPIOC_ODR   = 0x00000040;
+
+
        /* %jp{カーネルの動作開始} */
        vsta_knl();
-       
+
        return 0;
 }
 
+/* dummy */
 void _sbrk(void)
 {
 }
 
+
 /* end of file */