• R/O
  • HTTP
  • SSH
  • HTTPS

asp: Commit

ASPカーネルツリーのリポジトリ


Commit MetaInfo

Revision1beb273ef18bc0c8592a1ce9857d1425024b2d22 (tree)
Time2012-10-21 22:06:15
Authorsuikan <suikan@user...>
Commitersuikan

Log Message

コメント、Doxygenコメント、E_PACKAGE等を整理。

Change Summary

Incremental Difference

--- a/asp/arch/arm_m_gcc/MANIFEST
+++ b/asp/arch/arm_m_gcc/MANIFEST
@@ -26,5 +26,6 @@ common/core_timer.cfg
2626 common/core_timer.h
2727 common/core_unrename.h
2828 common/core_user.txt
29+common/core_user_cm4f.txt
2930 common/Makefile.core
3031 common/start.S
--- a/asp/arch/arm_m_gcc/common/core_support.S
+++ b/asp/arch/arm_m_gcc/common/core_support.S
@@ -490,13 +490,12 @@ ret_int_3:
490490
491491 #if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
492492 tst r3,#FP_EXC_FRAME /* r3はLR。例外フレームには浮動小数点コンテキストを含んでいるか */
493- it eq /* 含まれている場合の処理 */
493+ it eq /* 含まれている場合の処理。0ならば含まれている */
494494 vstmdbeq r2!,{s16-s31} /* preserved FPレジスタを保存。ここでlazystackingは解消される */
495495 /* 共通処理 */
496496 stmfd r2!,{r3} /* LRは、後でsvc_handlerから擬似リターンするときに使う */
497497 stmfd r2!,{r3} /* アライメントのために2度プッシュ */
498- it eq /* 含まれている場合の処理 */
499- orreq r3,#FP_EXC_FRAME /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
498+ orr r3,#FP_EXC_FRAME /* r3はLR。EXC_RETURNをFPなしフレームに強制する */
500499 /* この先はショート例外フレームである */
501500 #endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
502501
@@ -580,10 +579,10 @@ svc_handler:
580579 add r0, #EXC_FRAME_SIZE /* スタックを捨てる */
581580 #if defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)
582581 ldmfd r0!,{lr}
583- ldmfd r0!,{lr} /* LRフレームはアライメントのために二度積まれている */
582+ ldmfd r0!,{lr} /* LRはアライメント維持のために二度積まれている */
584583 tst lr,#FP_EXC_FRAME /* 例外フレームには浮動小数点コンテキストを含んでいるか */
585- it eq /* 当該ビットが0なら含んでいなる */
586- vldmiaeq r0!,{s16-s31} /* 含んでいるならpreserved FPレジスタを復帰する */
584+ it eq /* 当該ビットが0なら含んでいる */
585+ vldmiaeq r0!,{s16-s31} /* 含んでいるならpreserved FPレジスタを復帰する */
587586 #endif /* defined(__ARM_ARCH_7EM__) & !defined(__SOFTFP__)*/
588587 msr psp, r0
589588 mov r0, #0
--- /dev/null
+++ b/asp/arch/arm_m_gcc/common/core_user_cm4f.txt
@@ -0,0 +1,43 @@
1+=====================================================================
2+ CORTEX-M4対応プロセッサ依存部
3+ Last Modified: 2012 Oct 21
4+=====================================================================
5+
6+
7+(1) 対応しているターゲットシステムの種類・構成
8+
9+TOPPERSプロジェクト公式ARM-M依存部1.7に、CORTEX-M4F対応コードを追加した。
10+
11+
12+(2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
13+
14+カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
15+ット依存部のドキュメントに記載する.
16+
17+GCCを使ってCORTEX-M4Fの浮動小数点レジスタを使うには、-mcpu=cortex-m4
18+-mfpu=fpv4-sp-d16 -mfloat-abi=softfp を指定する。この場合、pre-defined Macro
19+として__ARM_ARCH_7EM__が定義され、__SOFTFP__が未定義となる。追加コードはこの条件が
20+満たされる場合のみコンパイルされる。
21+
22+コードは以下の部分に追加されている。すべて core_support.S の中である。
23+
24+dispatch:
25+タスク切り替え処理において、現行タスクのFPUコンテキストを保存する必要がある場合には
26+保存する。必要性はcontrolレジスタのbit2で行う。dispatch_rでの判断のため、control
27+レジスタの値をスタックに保存する。
28+
29+dispatch_r:
30+タスク切り替え処理において、新たにCPUを割り当てられたタスクのためにFPUコンテキストを
31+復帰する必要がある場合には、復帰する。判断はスタック上に保存されているcontrolレジスタの
32+値を使う。
33+
34+ret_int:
35+割り込み出口処理において、浮動小数点コンテキストが例外フレームに含まれている場合に
36+S16-S31を追加保存する。svc_handlerのために、lrレジスタ値を保存する。
37+
38+svc_handler:
39+割り込み出口処理でCPU資源を奪われたタスクに復帰するさい、必要に応じてS16-S31を復帰する。
40+
41+start_r:
42+新たなタスクを割り当てる際には、controlのビット2をクリアして、浮動小数点実行履歴を
43+クリアしておく。
--- a/asp/arch/arm_m_gcc/lpc1800_gcc/chip_syssvc.h
+++ b/asp/arch/arm_m_gcc/lpc1800_gcc/chip_syssvc.h
@@ -98,7 +98,7 @@
9898 /**
9999 * \brief システムログの低レベル出力のための文字出力
100100 * \details
101- * ターゲット依存の方法で,文字cを表示/出力/保存する.LPC17XXの実装では、
101+ * ターゲット依存の方法で,文字cを表示/出力/保存する.LPC18XXの実装では、
102102 * pdic/uartのポーリングによる出力ルーチンを呼ぶ。
103103 *
104104 * このルーチンを呼ぶ前に、初期化として #target_uart_init()を一度呼ばなければ
--- a/asp/arch/arm_m_gcc/lpc4300_gcc/MANIFEST
+++ b/asp/arch/arm_m_gcc/lpc4300_gcc/MANIFEST
@@ -3,7 +3,7 @@ PACKAGE asp_arch_arm_m_gcc
33 cmsis/LPC43xx.h
44 cmsis/core_cm4.h
55 cmsis/core_cmFunc.h
6-cmsis/core_cm4Instr.h
6+cmsis/core_cmInstr.h
77 cmsis/core_cm4_simd.h
88 cmsis/system_LPC43xx.h
99 MANIFEST
@@ -23,7 +23,7 @@ chip_test.h
2323 chip_timer.cfg
2424 chip_timer.h
2525 chip_user.txt
26-lpc1800.h
26+lpc4300.h
2727 chip_rename.def
2828 chip_rename.h
2929 chip_unrename.h
--- a/asp/arch/arm_m_gcc/lpc4300_gcc/chip_stddef.h
+++ b/asp/arch/arm_m_gcc/lpc4300_gcc/chip_stddef.h
@@ -58,7 +58,7 @@
5858 /**
5959 * \brief ターゲットを識別するためのマクロの定義
6060 * \details
61- * 各種のチップに対応可能なコードの中で、LPC18xxに依存する部分がある場合は
61+ * 各種のチップに対応可能なコードの中で、LPC43xxに依存する部分がある場合は
6262 * このマクロによる条件コンパイルにする。
6363 *
6464 * ターゲット依存部とはっきり区別するため、チップ依存部の識別名の前にTOPPERS_CHIP_を
--- a/asp/arch/arm_m_gcc/lpc4300_gcc/chip_syssvc.h
+++ b/asp/arch/arm_m_gcc/lpc4300_gcc/chip_syssvc.h
@@ -46,7 +46,7 @@
4646
4747 /**
4848 * \file chip_syssvc.h
49- * \brief システムサービスのチップ依存部(NXP LPC18xx用)
49+ * \brief システムサービスのチップ依存部(NXP LPC43xx用)
5050 * \details
5151 * システムサービスのターゲット依存部のインクルードファイル.このファ
5252 * イルの内容は,コンポーネント記述ファイルに記述され,このファイルは
@@ -85,7 +85,7 @@
8585 /**
8686 * \brief UARTへの入力クロック
8787 * \details
88- * 内蔵UARTのクロック周波数を指定する。単位はHz。LPC18xxはそれぞれのUARTに対して
88+ * 内蔵UARTのクロック周波数を指定する。単位はHz。LPC43xxはそれぞれのUARTに対して
8989 * 独立した周波数を入力できるが、今回の実装ではtarget_serial.cはすべてのUARTに
9090 * 同じクロックが入力されれると仮定している。
9191 *
@@ -98,7 +98,7 @@
9898 /**
9999 * \brief システムログの低レベル出力のための文字出力
100100 * \details
101- * ターゲット依存の方法で,文字cを表示/出力/保存する.LPC17XXの実装では、
101+ * ターゲット依存の方法で,文字cを表示/出力/保存する.LPC43XXの実装では、
102102 * pdic/uartのポーリングによる出力ルーチンを呼ぶ。
103103 *
104104 * このルーチンを呼ぶ前に、初期化として #target_uart_init()を一度呼ばなければ
--- a/asp/arch/arm_m_gcc/lpc4300_gcc/chip_timer.h
+++ b/asp/arch/arm_m_gcc/lpc4300_gcc/chip_timer.h
@@ -46,7 +46,7 @@
4646
4747 /**
4848 * \file chip_timer.h
49- * \brief タイマドライバ(NXP LPC18XX汎用)
49+ * \brief タイマドライバ(NXP LPC43XX汎用)
5050 */
5151
5252 #ifndef TOPPERS_CHIP_TIMER_H
--- a/asp/arch/arm_m_gcc/lpc4300_gcc/lpc4300.h
+++ b/asp/arch/arm_m_gcc/lpc4300_gcc/lpc4300.h
@@ -45,7 +45,7 @@
4545 */
4646 /**
4747 * \file lpc4300.h
48- * \details NXP LPC1800シリーズのハードウェア宣言
48+ * \details NXP LPC4300シリーズのハードウェア宣言
4949 */
5050 #ifndef TOPPERS_CHIP_LPC4300_H
5151 #define TOPPERS_CHIP_LPC4300_H
@@ -67,7 +67,7 @@
6767 * CORTEX-M4のNVIC割り込みコントローラは任意個の割り込み源を持つ。このマクロは、
6868 * 最大の割り込み番号の値を表す。
6969 */
70-#define TMAX_INTNO (16 + 53) // LPC1830の最大割り込み番号は16+53
70+#define TMAX_INTNO (16 + 53) // LPC4330の最大割り込み番号は16+53
7171
7272 /**
7373 * \brief 割込み優先度のビット幅
--- a/asp/target/lpc1768_generic_gcc/lpc1768_generic.h
+++ b/asp/target/lpc1768_generic_gcc/lpc1768_generic.h
@@ -70,7 +70,7 @@
7070 * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
7171 * \code
7272 * $ cd asp/cfg
73- * $ .configure
73+ * $ ./configure
7474 * $ make
7575 * \endcode
7676 *
--- a/asp/target/lpc1768_generic_gcc/target_user.txt
+++ b/asp/target/lpc1768_generic_gcc/target_user.txt
@@ -233,6 +233,7 @@ asp:
233233
234234 (13) ライセンス上の注意
235235 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
236+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
236237
237238 (14) バージョン履歴
238239
--- a/asp/target/lpc1830_generic_gcc/lpc1830_generic.h
+++ b/asp/target/lpc1830_generic_gcc/lpc1830_generic.h
@@ -70,7 +70,7 @@
7070 * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
7171 * \code
7272 * $ cd asp/cfg
73- * $ .configure
73+ * $ ./configure
7474 * $ make
7575 * \endcode
7676 *
--- a/asp/target/lpc1830_generic_gcc/target_user.txt
+++ b/asp/target/lpc1830_generic_gcc/target_user.txt
@@ -1,6 +1,6 @@
11 =====================================================================
22 LPC1830 GENERICターゲット依存部 (asp-1.7対応)
3- Last Modified: 2012/Oct/06
3+ Last Modified: 2012/Oct/21
44 =====================================================================
55
66 (1) 対応しているターゲットシステムの種類・構成,バージョン番号
@@ -27,7 +27,7 @@
2727
2828 ・デバッグ環境
2929 GNU gdb (Sourcery G++ Lite 2010q1-188) 7.0.50.20100218-cvs
30- Open On-Chip Debugger 0.4.0 (2010-08-12-22:40)
30+ Open On-Chip Debugger 0.6.1
3131 HJ/LINK USB
3232 LPC1830 Xplorer
3333
@@ -225,10 +225,11 @@ asp:
225225
226226 (13) ライセンス上の注意
227227 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
228+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
228229
229230 (14) バージョン履歴
230231
231-2012/Oct/6
232+2012/Oct/21
232233 ver 1.7.1
233234
234235
--- a/asp/target/lpc4330_generic_gcc/asp.doxyfile
+++ b/asp/target/lpc4330_generic_gcc/asp.doxyfile
@@ -25,7 +25,7 @@ DOXYFILE_ENCODING = UTF-8
2525 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
2626 # by quotes) that should identify the project.
2727
28-PROJECT_NAME = "LPC1830 Generic dependent part"
28+PROJECT_NAME = "LPC4330 Generic dependent part"
2929
3030 # The PROJECT_NUMBER tag can be used to enter a project or revision number.
3131 # This could be handy for archiving the generated documentation or
@@ -574,7 +574,7 @@ WARN_LOGFILE =
574574 # directories like "/usr/src/myproject". Separate the files or directories
575575 # with spaces.
576576
577-INPUT = . ../../arch/arm_m_gcc/lpc1800_gcc ../../arch/arm_m_gcc/lpc1800_gcc/cmsis ../../pdic/uart ../../arch/arm_m_gcc/common
577+INPUT = . ../../arch/arm_m_gcc/lpc4300_gcc ../../arch/arm_m_gcc/lpc4300_gcc/cmsis ../../pdic/uart ../../arch/arm_m_gcc/common
578578
579579 # This tag can be used to specify the character encoding of the source files
580580 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
--- a/asp/target/lpc4330_generic_gcc/lpc4330_generic.h
+++ b/asp/target/lpc4330_generic_gcc/lpc4330_generic.h
@@ -70,7 +70,7 @@
7070 * ビルドするには、次のコマンドを実行してコンフィギュレータをビルドする。
7171 * \code
7272 * $ cd asp/cfg
73- * $ .configure
73+ * $ ./configure
7474 * $ make
7575 * \endcode
7676 *
@@ -89,17 +89,17 @@
8989 /**
9090 * \brief 内蔵クロックの発信周波数
9191 * \details
92- * 内蔵発振器のクロック周波数[Hz]。SYS_CLOCKが参照する。LPC1830の場合は12MHzである。
92+ * 内蔵発振器のクロック周波数[Hz]。SYS_CLOCKが参照する。LPC4330の場合は12MHzである。
9393 */
94-#define INTERNAL_CLOCK (12000000) // 内蔵発振器は4MHz
94+#define INTERNAL_CLOCK (12000000) // 内蔵発振器は12MHz
9595
9696 #define PLL_MULTIPLYER 1
9797 /**
9898 * \brief コア・クロック周波数
9999 * \details
100- * CORTEX-M3コアに入力する動作クロックの周波数[Hz]。
100+ * CORTEX-M4Fコアに入力する動作クロックの周波数[Hz]。
101101 */
102-#define SYS_CLOCK (INTERNAL_CLOCK * PLL_MULTIPLYER) // コアに入力するクロック 100MHz
102+#define SYS_CLOCK (INTERNAL_CLOCK * PLL_MULTIPLYER) // コアに入力するクロック
103103
104104
105105 #ifndef TOPPERS_MACRO_ONLY
--- a/asp/target/lpc4330_generic_gcc/target_config.c
+++ b/asp/target/lpc4330_generic_gcc/target_config.c
@@ -72,7 +72,7 @@ void target_initialize(void)
7272 */
7373 chip_initialize();
7474
75- /* Flash Accelerator はLPC1830には存在しない */
75+ /* Flash Accelerator はLPC4330には存在しない */
7676 // LPC_SC->FLASHCFG = 0x403a;
7777
7878 /*
--- a/asp/target/lpc4330_generic_gcc/target_config.h
+++ b/asp/target/lpc4330_generic_gcc/target_config.h
@@ -50,7 +50,7 @@
5050
5151 /**
5252 * \file target_config.h
53- * \brief カーネル実装のターゲット依存部モジュール(NXP LPC1830用)
53+ * \brief カーネル実装のターゲット依存部モジュール(NXP LPC4330用)
5454 * \details
5555 * カーネルのターゲット依存部のインクルードファイル.kernel_impl.hのター
5656 * ゲット依存部の位置付けとなす.
--- a/asp/target/lpc4330_generic_gcc/target_timer.h
+++ b/asp/target/lpc4330_generic_gcc/target_timer.h
@@ -46,7 +46,7 @@
4646
4747 /**
4848 * \file target_timer.h
49- * \brief タイマドライバ(NXP LPC1830汎用)
49+ * \brief タイマドライバ(NXP LPC4330汎用)
5050 */
5151
5252 #ifndef TOPPERS_TARGET_TIMER_H
--- a/asp/target/lpc4330_generic_gcc/target_user.txt
+++ b/asp/target/lpc4330_generic_gcc/target_user.txt
@@ -1,15 +1,15 @@
11 =====================================================================
2- LPC1830 GENERICターゲット依存部 (asp-1.7対応)
3- Last Modified: 2012/Oct/06
2+ LPC4330 GENERICターゲット依存部 (asp-1.7対応)
3+ Last Modified: 2012/Oct/21
44 =====================================================================
55
66 (1) 対応しているターゲットシステムの種類・構成,バージョン番号
77
88 ・ターゲットハードウェア(ボード等)の名称と対応している構成
9- NXP製LPC1830を使用したボード一般。発振器は内蔵発振器を使う。
9+ NXP製LPC4330を使用したボード一般。発振器は内蔵発振器を使う。
1010
1111 ・ターゲット略称
12- lpc1830_generic_gcc
12+ lpc4330_generic_gcc
1313
1414 ・ターゲット非依存部のバージョン番号
1515 1.7
@@ -27,7 +27,7 @@
2727
2828 ・デバッグ環境
2929 GNU gdb (Sourcery G++ Lite 2010q1-188) 7.0.50.20100218-cvs
30- Open On-Chip Debugger 0.4.0 (2010-08-12-22:40)
30+ Open On-Chip Debugger 0.6.1
3131 HJ/LINK USB
3232 LPC1830 Xplorer
3333
@@ -101,9 +101,9 @@
101101 (10) ターゲットシステム固有の注意事項
102102
103103 (10) 類似のターゲットにポーティングする開発者向けの参考情報
104- LPC1830を使った他のボードにポーティングする場合には、以下のオブジェクトを修正する
104+ LPC4330を使った他のボードにポーティングする場合には、以下のオブジェクトを修正する
105105
106- lpc1830_generic.h (名前をターゲット識別名に変更する)
106+ lpc4330_generic.h (名前をターゲット識別名に変更する)
107107 SYS_CLOCK CPUコアへの入力周波数[Hz]
108108
109109 target_config.h
@@ -113,7 +113,7 @@
113113 target_initialize() PLLやピンの初期化を行う。
114114
115115 target_stddef.h
116- TOPPERS_LPC1830_GENERIC ターゲット識別マクロ。ターゲット識別名を大文字にし、頭に
116+ TOPPERS_LPC4330_GENERIC ターゲット識別マクロ。ターゲット識別名を大文字にし、頭に
117117 TOPPERS_をつける。
118118
119119 target_syssvc.h
@@ -122,8 +122,8 @@
122122 SIO_BAUD_RATE_DEFAULT ボーレートを変更したい場合
123123 TARGET_COPYRIGHT 著作権表示文字列
124124
125- LPC1800シリーズの他のプロセッサにポーティングするには、上の修正に加えてターゲットのLDファイルの
126- MEMORY宣言を変更する。一般にLPC1800シリーズはメモリ構成以外のプログラミングモデルは同じである。
125+ LPC4300シリーズの他のプロセッサにポーティングするには、上の修正に加えてターゲットのLDファイルの
126+ MEMORY宣言を変更する。一般にLPC4300シリーズはメモリ構成以外のプログラミングモデルは同じである。
127127
128128 (12) ディレクトリ構成・ファイル構成
129129 asp:
@@ -156,7 +156,7 @@ asp:
156156 prc_user_annex.txt
157157 start.S
158158 chip:
159- lpc1800_gcc:
159+ lpc4300_gcc:
160160 MANIFEST
161161 Makefile.chip
162162 chip.tf
@@ -178,12 +178,15 @@ asp:
178178 chip_unrename.h
179179 chip_user.txt
180180 cmsis
181- lpc1800.h
181+ lpc4300.h
182182
183183 cmsis:
184- LPC18xx.h
185- core_cm3.h
186- system_LPC18xx.h
184+ LPC43xx.h
185+ core_cm4.h
186+ core_cm4_simd.h
187+ core_cmFunc.h
188+ core_cmInstr.h
189+ system_LPC43xx.h
187190
188191 pdic:
189192 uart:
@@ -200,8 +203,8 @@ asp:
200203 asp.doxyfile
201204 doxygen.css
202205 html
203- lpc1830_generic.h
204- lpc1830_sram.ld
206+ lpc4330_generic.h
207+ lpc4330_sram.ld
205208 target.tf
206209 target_cfg1_out.h
207210 target_check.tf
@@ -225,10 +228,11 @@ asp:
225228
226229 (13) ライセンス上の注意
227230 LDファイルはCodeSourcery社のLDファイルに手を加えているため、同社のライセンスにしたがう。
231+また、cmsisサブディレクトリ内のファイルはARM/NXP社のものを使用している。
228232
229233 (14) バージョン履歴
230234
231-2012/Oct/6
235+2012/Oct/21
232236 ver 1.7.1
233237
234238
Show on old repository browser