OSDN Git Service

コメント、Doxygenコメント、E_PACKAGE等を整理。
authorsuikan <suikan@users.sourceforge.jp>
Sun, 21 Oct 2012 13:06:15 +0000 (22:06 +0900)
committersuikan <suikan@users.sourceforge.jp>
Sun, 21 Oct 2012 13:06:15 +0000 (22:06 +0900)
19 files changed:
asp/arch/arm_m_gcc/MANIFEST
asp/arch/arm_m_gcc/common/core_support.S
asp/arch/arm_m_gcc/common/core_user_cm4f.txt [new file with mode: 0644]
asp/arch/arm_m_gcc/lpc1800_gcc/chip_syssvc.h
asp/arch/arm_m_gcc/lpc4300_gcc/MANIFEST
asp/arch/arm_m_gcc/lpc4300_gcc/chip_stddef.h
asp/arch/arm_m_gcc/lpc4300_gcc/chip_syssvc.h
asp/arch/arm_m_gcc/lpc4300_gcc/chip_timer.h
asp/arch/arm_m_gcc/lpc4300_gcc/lpc4300.h
asp/target/lpc1768_generic_gcc/lpc1768_generic.h
asp/target/lpc1768_generic_gcc/target_user.txt
asp/target/lpc1830_generic_gcc/lpc1830_generic.h
asp/target/lpc1830_generic_gcc/target_user.txt
asp/target/lpc4330_generic_gcc/asp.doxyfile
asp/target/lpc4330_generic_gcc/lpc4330_generic.h
asp/target/lpc4330_generic_gcc/target_config.c
asp/target/lpc4330_generic_gcc/target_config.h
asp/target/lpc4330_generic_gcc/target_timer.h
asp/target/lpc4330_generic_gcc/target_user.txt

index 478d19e..a1fa75f 100644 (file)
@@ -26,5 +26,6 @@ common/core_timer.cfg
 common/core_timer.h
 common/core_unrename.h
 common/core_user.txt
+common/core_user_cm4f.txt
 common/Makefile.core
 common/start.S
index ea70d68..5d90285 100644 (file)
@@ -490,13 +490,12 @@ ret_int_3:
 
 #if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
        tst   r3,#FP_EXC_FRAME                          /* r3はLR。例外フレームには浮動小数点コンテキストを含んでいるか */
-       it    eq                            /* 含まれている場合の処理 */
+       it    eq                            /* 含まれている場合の処理。0ならば含まれている */
        vstmdbeq r2!,{s16-s31}                          /* preserved FPレジスタを保存。ここでlazystackingは解消される */
                                                                                /* 共通処理 */
        stmfd r2!,{r3}                                          /* LRは、後でsvc_handlerから擬似リターンするときに使う */
        stmfd r2!,{r3}                                          /* アライメントのために2度プッシュ */
-       it    eq                            /* 含まれている場合の処理 */
-       orreq   r3,#FP_EXC_FRAME                                /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
+       orr   r3,#FP_EXC_FRAME                          /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
        /* この先はショート例外フレームである */
 #endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
 
@@ -580,10 +579,10 @@ svc_handler:
        add   r0, #EXC_FRAME_SIZE     /* スタックを捨てる   */
 #if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
        ldmfd r0!,{lr}
-       ldmfd r0!,{lr}                                          /* LRã\83\95ã\83¬ã\83¼ã\83 ã\81¯ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88のために二度積まれている */
+       ldmfd r0!,{lr}                                          /* LRã\81¯ã\82¢ã\83©ã\82¤ã\83¡ã\83³ã\83\88維æ\8c\81のために二度積まれている */
        tst   lr,#FP_EXC_FRAME                          /* 例外フレームには浮動小数点コンテキストを含んでいるか */
-       it    eq                                                        /* å½\93該ã\83\93ã\83\83ã\83\88ã\81\8c\81ªã\82\89å\90«ã\82\93ã\81§ã\81\84ã\81ªã\82\8b */
-       vldmiaeq r0!,{s16-s31}                                  /* 含んでいるならpreserved FPレジスタを復帰する */
+       it    eq                                                        /* 当該ビットが0なら含んでいる */
+       vldmiaeq r0!,{s16-s31}                          /* 含んでいるならpreserved FPレジスタを復帰する */
 #endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
        msr   psp, r0
        mov   r0, #0
diff --git a/asp/arch/arm_m_gcc/common/core_user_cm4f.txt b/asp/arch/arm_m_gcc/common/core_user_cm4f.txt
new file mode 100644 (file)
index 0000000..c9fad53
--- /dev/null
@@ -0,0 +1,43 @@
+=====================================================================
+                         CORTEX-M4対応プロセッサ依存部
+                                  Last Modified: 2012 Oct 21 
+=====================================================================
+
+
+(1) 対応しているターゲットシステムの種類・構成
+
+TOPPERSプロジェクト公式ARM-M依存部1.7に、CORTEX-M4F対応コードを追加した。
+
+
+(2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
+
+カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
+ット依存部のドキュメントに記載する.
+
+GCCを使ってCORTEX-M4Fの浮動小数点レジスタを使うには、-mcpu=cortex-m4  
+-mfpu=fpv4-sp-d16 -mfloat-abi=softfp を指定する。この場合、pre-defined Macro
+として__ARM_ARCH_7EM__が定義され、__SOFTFP__が未定義となる。追加コードはこの条件が
+満たされる場合のみコンパイルされる。
+
+コードは以下の部分に追加されている。すべて core_support.S の中である。
+
+dispatch:
+タスク切り替え処理において、現行タスクのFPUコンテキストを保存する必要がある場合には
+保存する。必要性はcontrolレジスタのbit2で行う。dispatch_rでの判断のため、control
+レジスタの値をスタックに保存する。
+
+dispatch_r:
+タスク切り替え処理において、新たにCPUを割り当てられたタスクのためにFPUコンテキストを
+復帰する必要がある場合には、復帰する。判断はスタック上に保存されているcontrolレジスタの
+値を使う。
+
+ret_int:
+割り込み出口処理において、浮動小数点コンテキストが例外フレームに含まれている場合に
+S16-S31を追加保存する。svc_handlerのために、lrレジスタ値を保存する。
+
+svc_handler:
+割り込み出口処理でCPU資源を奪われたタスクに復帰するさい、必要に応じてS16-S31を復帰する。
+
+start_r:
+新たなタスクを割り当てる際には、controlのビット2をクリアして、浮動小数点実行履歴を
+クリアしておく。
index 9bc2348..471c3ff 100644 (file)
@@ -98,7 +98,7 @@
 /**
  * \brief システムログの低レベル出力のための文字出力
  * \details
- *  ターゲット依存の方法で,文字cを表示/出力/保存する.LPC17XXの実装では、
+ *  ターゲット依存の方法で,文字cを表示/出力/保存する.LPC18XXの実装では、
  *  pdic/uartのポーリングによる出力ルーチンを呼ぶ。
  *
  *  このルーチンを呼ぶ前に、初期化として #target_uart_init()を一度呼ばなければ
index 99e30ee..9204a75 100644 (file)
@@ -3,7 +3,7 @@ PACKAGE asp_arch_arm_m_gcc
 cmsis/LPC43xx.h
 cmsis/core_cm4.h
 cmsis/core_cmFunc.h
-cmsis/core_cm4Instr.h
+cmsis/core_cmInstr.h
 cmsis/core_cm4_simd.h
 cmsis/system_LPC43xx.h
 MANIFEST
@@ -23,7 +23,7 @@ chip_test.h
 chip_timer.cfg
 chip_timer.h
 chip_user.txt
-lpc1800.h
+lpc4300.h
 chip_rename.def
 chip_rename.h
 chip_unrename.h
index 3f1e774..fb10101 100644 (file)
@@ -58,7 +58,7 @@
 /**
  * \brief ターゲットを識別するためのマクロの定義
  * \details
- * 各種のチップに対応可能なコードの中で、LPC18xxに依存する部分がある場合は
+ * 各種のチップに対応可能なコードの中で、LPC43xxに依存する部分がある場合は
  * このマクロによる条件コンパイルにする。
  *
  * ターゲット依存部とはっきり区別するため、チップ依存部の識別名の前にTOPPERS_CHIP_を
index 4da73cf..87a7e9a 100644 (file)
@@ -46,7 +46,7 @@
 
 /**
  * \file chip_syssvc.h
- * \brief システムサービスのチップ依存部(NXP LPC18xx用)
+ * \brief システムサービスのチップ依存部(NXP LPC43xx用)
  * \details
  *  システムサービスのターゲット依存部のインクルードファイル.このファ
  *  イルの内容は,コンポーネント記述ファイルに記述され,このファイルは
@@ -85,7 +85,7 @@
 /**
  * \brief UARTへの入力クロック
  * \details
- * 内蔵UARTのクロック周波数を指定する。単位はHz。LPC18xxはそれぞれのUARTに対して
+ * 内蔵UARTのクロック周波数を指定する。単位はHz。LPC43xxはそれぞれのUARTに対して
  * 独立した周波数を入力できるが、今回の実装ではtarget_serial.cはすべてのUARTに
  * 同じクロックが入力されれると仮定している。
  *
@@ -98,7 +98,7 @@
 /**
  * \brief システムログの低レベル出力のための文字出力
  * \details
- *  ターゲット依存の方法で,文字cを表示/出力/保存する.LPC17XXの実装では、
+ *  ターゲット依存の方法で,文字cを表示/出力/保存する.LPC43XXの実装では、
  *  pdic/uartのポーリングによる出力ルーチンを呼ぶ。
  *
  *  このルーチンを呼ぶ前に、初期化として #target_uart_init()を一度呼ばなければ
index 8be5a00..9a60482 100644 (file)
@@ -46,7 +46,7 @@
 
 /**
  * \file chip_timer.h
- * \brief タイマドライバ(NXP LPC18XX汎用)
+ * \brief タイマドライバ(NXP LPC43XX汎用)
  */
 
 #ifndef TOPPERS_CHIP_TIMER_H
index 4cdd112..11ac289 100644 (file)
@@ -45,7 +45,7 @@
  */
 /**
  * \file lpc4300.h
- * \details NXP LPC1800シリーズのハードウェア宣言
+ * \details NXP LPC4300シリーズのハードウェア宣言
  */
 #ifndef TOPPERS_CHIP_LPC4300_H
 #define TOPPERS_CHIP_LPC4300_H
@@ -67,7 +67,7 @@
  * CORTEX-M4のNVIC割り込みコントローラは任意個の割り込み源を持つ。このマクロは、
  * 最大の割り込み番号の値を表す。
  */
-#define TMAX_INTNO   (16 + 53)                 // LPC1830の最大割り込み番号は16+53
+#define TMAX_INTNO   (16 + 53)                 // LPC4330の最大割り込み番号は16+53
 
 /**
  * \brief 割込み優先度のビット幅
index 00c9b8b..ee40adb 100644 (file)
@@ -70,7 +70,7 @@
  * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
  * \code
  * $ cd asp/cfg
- * $ .configure
+ * $ ./configure
  * $ make
  * \endcode
  *
index 77891e0..5936c8b 100644 (file)
@@ -233,6 +233,7 @@ asp:
 
 (13) ライセンス上の注意
 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
 
 (14) バージョン履歴
 
index 2352462..7e3cd34 100644 (file)
@@ -70,7 +70,7 @@
  * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
  * \code
  * $ cd asp/cfg
- * $ .configure
+ * $ ./configure
  * $ make
  * \endcode
  *
index bc4a32a..de52af6 100644 (file)
@@ -1,6 +1,6 @@
 =====================================================================
              LPC1830 GENERICターゲット依存部 (asp-1.7対応)
-                                  Last Modified: 2012/Oct/06
+                                  Last Modified: 2012/Oct/21
 =====================================================================
 
 (1) 対応しているターゲットシステムの種類・構成,バージョン番号
@@ -27,7 +27,7 @@
        
        ・デバッグ環境
                GNU gdb (Sourcery G++ Lite 2010q1-188) 7.0.50.20100218-cvs
-               Open On-Chip Debugger 0.4.0 (2010-08-12-22:40)
+               Open On-Chip Debugger 0.6.1
                HJ/LINK USB
                LPC1830 Xplorer
 
@@ -225,10 +225,11 @@ asp:
 
 (13) ライセンス上の注意
 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
 
 (14) バージョン履歴
 
-2012/Oct/6
+2012/Oct/21
        ver 1.7.1
 
 
index 1611216..6d1e2b4 100644 (file)
@@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
 # by quotes) that should identify the project.
 
-PROJECT_NAME = "LPC1830 Generic dependent part"
+PROJECT_NAME = "LPC4330 Generic dependent part"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number.
 # This could be handy for archiving the generated documentation or
@@ -574,7 +574,7 @@ WARN_LOGFILE =
 # directories like "/usr/src/myproject". Separate the files or directories
 # with spaces.
 
-INPUT = . ../../arch/arm_m_gcc/lpc1800_gcc ../../arch/arm_m_gcc/lpc1800_gcc/cmsis ../../pdic/uart ../../arch/arm_m_gcc/common 
+INPUT = . ../../arch/arm_m_gcc/lpc4300_gcc ../../arch/arm_m_gcc/lpc4300_gcc/cmsis ../../pdic/uart ../../arch/arm_m_gcc/common 
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
index 2e35bf8..7f108fd 100644 (file)
@@ -70,7 +70,7 @@
  * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
  * \code
  * $ cd asp/cfg
- * $ .configure
+ * $ ./configure
  * $ make
  * \endcode
  *
 /**
  * \brief 内蔵クロックの発信周波数
  * \details
- * 内蔵発振器のクロック周波数[Hz]。SYS_CLOCKが参照する。LPC1830の場合は12MHzである。
+ * 内蔵発振器のクロック周波数[Hz]。SYS_CLOCKが参照する。LPC4330の場合は12MHzである。
  */
-#define INTERNAL_CLOCK        (12000000)            // 内蔵発振器は4MHz
+#define INTERNAL_CLOCK        (12000000)            // 内蔵発振器は12MHz
 
 #define PLL_MULTIPLYER 1
 /**
  * \brief コア・クロック周波数
  * \details
- * CORTEX-M3コアに入力する動作クロックの周波数[Hz]。
+ * CORTEX-M4Fコアに入力する動作クロックの周波数[Hz]。
  */
-#define SYS_CLOCK        (INTERNAL_CLOCK * PLL_MULTIPLYER)    // コアに入力するクロック 100MHz
+#define SYS_CLOCK        (INTERNAL_CLOCK * PLL_MULTIPLYER)    // コアに入力するクロック
 
 
 #ifndef TOPPERS_MACRO_ONLY
index da38d4b..c19f2c6 100644 (file)
@@ -72,7 +72,7 @@ void target_initialize(void)
      */
     chip_initialize();
 
-    /* Flash Accelerator はLPC1830には存在しない */
+    /* Flash Accelerator はLPC4330には存在しない */
 //    LPC_SC->FLASHCFG = 0x403a;
 
     /*
index 575793b..080b27f 100644 (file)
@@ -50,7 +50,7 @@
 
 /**
  * \file target_config.h
- * \brief カーネル実装のターゲット依存部モジュール(NXP LPC1830用)
+ * \brief カーネル実装のターゲット依存部モジュール(NXP LPC4330用)
  * \details
  * カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター
  * ゲット依存部の位置付けとなす.
index 038fad4..5c395ef 100644 (file)
@@ -46,7 +46,7 @@
 
 /**
  * \file target_timer.h
- * \brief タイマドライバ(NXP LPC1830汎用)
+ * \brief タイマドライバ(NXP LPC4330汎用)
  */
 
 #ifndef TOPPERS_TARGET_TIMER_H
index bc4a32a..e266d86 100644 (file)
@@ -1,15 +1,15 @@
 =====================================================================
-             LPC1830 GENERICターゲット依存部 (asp-1.7対応)
-                                  Last Modified: 2012/Oct/06
+             LPC4330 GENERICターゲット依存部 (asp-1.7対応)
+                                  Last Modified: 2012/Oct/21
 =====================================================================
 
 (1) 対応しているターゲットシステムの種類・構成,バージョン番号
 
        ・ターゲットハードウェア(ボード等)の名称と対応している構成
-               NXP製LPC1830を使用したボード一般。発振器は内蔵発振器を使う。
+               NXP製LPC4330を使用したボード一般。発振器は内蔵発振器を使う。
                
        ・ターゲット略称
-               lpc1830_generic_gcc
+               lpc4330_generic_gcc
        
        ・ターゲット非依存部のバージョン番号
                1.7
@@ -27,7 +27,7 @@
        
        ・デバッグ環境
                GNU gdb (Sourcery G++ Lite 2010q1-188) 7.0.50.20100218-cvs
-               Open On-Chip Debugger 0.4.0 (2010-08-12-22:40)
+               Open On-Chip Debugger 0.6.1
                HJ/LINK USB
                LPC1830 Xplorer
 
 (10) ターゲットシステム固有の注意事項
 
 (10) 類似のターゲットにポーティングする開発者向けの参考情報
-       LPC1830を使った他のボードにポーティングする場合には、以下のオブジェクトを修正する
+       LPC4330を使った他のボードにポーティングする場合には、以下のオブジェクトを修正する
        
-       lpc1830_generic.h               (名前をターゲット識別名に変更する)
+       lpc4330_generic.h               (名前をターゲット識別名に変更する)
                SYS_CLOCK                                       CPUコアへの入力周波数[Hz]
                
        target_config.h
                target_initialize()             PLLやピンの初期化を行う。
                
        target_stddef.h
-               TOPPERS_LPC1830_GENERIC ターゲット識別マクロ。ターゲット識別名を大文字にし、頭に
+               TOPPERS_LPC4330_GENERIC ターゲット識別マクロ。ターゲット識別名を大文字にし、頭に
                                                                        TOPPERS_をつける。
                        
        target_syssvc.h
                SIO_BAUD_RATE_DEFAULT   ボーレートを変更したい場合
                TARGET_COPYRIGHT                        著作権表示文字列
 
-       LPC1800シリーズの他のプロセッサにポーティングするには、上の修正に加えてターゲットのLDファイルの
-       MEMORY宣言を変更する。一般にLPC1800シリーズはメモリ構成以外のプログラミングモデルは同じである。
+       LPC4300シリーズの他のプロセッサにポーティングするには、上の修正に加えてターゲットのLDファイルの
+       MEMORY宣言を変更する。一般にLPC4300シリーズはメモリ構成以外のプログラミングモデルは同じである。
 
 (12) ディレクトリ構成・ファイル構成
 asp:
@@ -156,7 +156,7 @@ asp:
                        prc_user_annex.txt
                        start.S
        chip:
-               lpc1800_gcc:
+               lpc4300_gcc:
                        MANIFEST
                        Makefile.chip
                        chip.tf
@@ -178,12 +178,15 @@ asp:
                        chip_unrename.h
                        chip_user.txt
                        cmsis
-                       lpc1800.h
+                       lpc4300.h
 
                        cmsis:
-                               LPC18xx.h
-                               core_cm3.h
-                               system_LPC18xx.h
+                               LPC43xx.h
+                               core_cm4.h
+                               core_cm4_simd.h
+                               core_cmFunc.h
+                               core_cmInstr.h
+                               system_LPC43xx.h
 
        pdic:
                uart:
@@ -200,8 +203,8 @@ asp:
                        asp.doxyfile
                        doxygen.css
                        html
-                       lpc1830_generic.h
-                       lpc1830_sram.ld
+                       lpc4330_generic.h
+                       lpc4330_sram.ld
                        target.tf
                        target_cfg1_out.h
                        target_check.tf
@@ -225,10 +228,11 @@ asp:
 
 (13) ライセンス上の注意
 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
 
 (14) バージョン履歴
 
-2012/Oct/6
+2012/Oct/21
        ver 1.7.1