source: rtos_arduino/trunk/asp_1.9.2/arch/arm_m_gcc/stm32f/chip_user.txt@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 7.2 KB
Line 
1=====================================================================
2 ST32F(GCC)プロセッサ依存部
3 Last Modified:2015 Nov 14 17:35:26
4=====================================================================
5
6○概要
7
8STM32Fターゲット依存部は,ST社のST32Fシリーズをサポートしている.現状
9では,一部のSTM32Fシリーズのみをサポートしている.今後サポートチップを
10増やす予定である.ST32Fシリーズを確認済みのチップで動作された方は,連
11絡をいただけると幸いです.
12
13
14○確認済みのチップ
15
16・STM32F103VB(Cortex-M3)
17
18
19○カーネルの使用リソース
20
21カーネルは以下のリソースを使用する.
22
23 ・ROM
24 コードをé…
25ç½®ã™ã‚‹ï¼Ž
26 使用量は使用するAPIの数に依存する.
27
28 ・RAM
29 データをé…
30ç½®ã™ã‚‹ï¼Ž
31 使用量はオブジェクト数に依存する.
32
33 ・SysTick
34 カーネル内
35部のティックの生成に用いる.
36
37
38○コンパイラ
39
40GCC 4.4.1 (Sourcery G++ Lite 2010q1-188) で動作確認を行った.
41
42
43○割込み優å…
44ˆåº¦
45
46割込み優å…
47ˆåº¦ã¨ã—て指定可能な範囲は,-15 ~ -1 である.
48
49
50○ターゲットボード依存部の作成方法
51
52以下の内
53容をターゲットボード依存部に追加すること.STBEE(GCC)ターゲット
54依存部の内
55容をコピーして変更すると作成が容易である.
56
57●初期化処理
58
59以下の初期化ルーチンにターゲット毎の初期化を追加する.STM32Fターゲット
60依存部ではプロセッサクロック(RCC)やI/Oポートの初期化は行わないため,タ
61ーゲットボード依存部で初期化を行うこと.
62
63 ・target_initialize() : target_config.c
64 ターゲット依存部の初期化(C言語)
65
66 ・_hardware_init_hook : target_support.S(必
67要な場合)
68 低レベルのターゲット依存の初期化
69 スタートアップモジュールの中で,メモリの初期化の前に呼び出される
70
71●Makefile.target の設定項
72目
73
74ボード名, チップ名,コア名,開発環境名の定義
75・BOARD
76 ボード名を設定
77・CHIP
78 "stm32f"を設定
79・PRC
80 "arm_m"を設定
81・TOOL
82 "gcc"を設定
83
84GNU開発環境のターゲットアーキテクチャの定義
85・GCC_TARGET
86 使用するコンパイラのプリフィックスを追加.
87
88コンパイルオプション
89・INCLUDES
90 インクルード指定
91・COPTS
92 Cコンパイラへのオプション
93・LDFLAGS
94 リンカへのオプション
95 標準ライブラリをリンクしない場合は"-nostdlib"を指定する.
96
97カーネルに関する定義
98・KERNEL_DIR
99 カーネルディレクトリの指定.
100・KERNEL_ASMOBJS
101 カーネルアセンブラオブジェクトの指定
102・KERNEL_COBJS
103 カーネルCオブジェクトの指定
104・KERNEL_CFLAGS
105 カーネルオブジェクトコンパイル時のCコンパイラへのオプション
106
107システムサービスに関する定義
108・SYSSVC_DIR
109 システムサービスのディレクトリの指定
110・SYSSVC_COBJS
111 システムサービスのオブジェクトの指定
112 stm32fプロセッサ依存部のUSARTのドライバを使用する場合は,usart.oを指
113 定する.
114
115リンカスクリプトの定義
116・LDSCRIPT
117 使用するリンカスクリプトを指定する.
118
119スタートアップモジュールに関する定義
120・HIDDEN_OBJS
121 スタートアップモジュールの指定
122 ARM_Mプロセッサ依存部のスタートアップルーチンを用いる場合には,
123 start.oを指定.
124
125・スタートアップモジュールの生成ルール
126 以下の内
127容を追加する.
128---------------------------------------------------------------
129$(HIDDEN_OBJS): %.o: %.S
130 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
131
132$(HIDDEN_OBJS:.o=.d): %.d: %.S
133 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
134 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
135---------------------------------------------------------------
136
137チップ依存部のインクルード
138・以下の内
139容を追加する.
140 include $(SRCDIR)/arch/$(PRC)_$(TOOL)/$(CHIP)/Makefile.chip
141
142●target_config.h の設定項
143目
144
145・DEFAULT_ISTKSZ
146 ディフォルトの非タスクコンテキスト用のスタックサイズ
147
148・SIL_DLY_TIM1/2
149 微少時間待
150ちのための定義
151
152・SIO_PORTID
153 使用するシリアルポートID
154
155・IDLE処理の定義(オプション)
156 アイドル時の処理を変更したい場合に定義.
157
158・chip_config.h のインクルード
159
160●target_config.c の設定項
161目
162・初期化関数の定義
163 target_initialize()
164
165・終了処理関数の定義
166 target_exit()
167
168・システムログの低レベル出力のための文字出力
169 target_fput_log()
170
171●target_syssvc.h の設定項
172目
173
174・TARGET_NAME
175 起動メッセージのターゲットシステム名
176
177・TNUM_PORT/TNUM_SIOP
178 シリアルポート数の定義
179
180・LOGTASK_PORTID
181 ログタスクが使用するポートIDの指定
182
183・BPS_SETTING
184 コンソールに使用するポートのボーレート
185
186・chip_syssvc.h のインクルード
187
188●target_timer.h の設定項
189目
190
191・TIMER_CLOCK
192 タイマ値の内
193部表現とミリ秒単位との変換
194
195・INTPRI_TIMER
196 タイマ割込みの割込み優å…
197ˆåº¦
198
199・INTATR_TIMER
200 タイマ割込みの割込み属性
201
202●target_timer.cfg の設定項
203目
204
205・コア依存部のコンフィギュレーションファイルのインクルード.
206 INCLUDE("arm_m_gcc/common/core_timer.cfg");
207
208●target_stddef.h の設定項
209目
210・システム略称の定義
211
212・chip_stddef.hのインクルード
213
214●target_serial.h の設定項
215目
216・INTPRI_SIO
217 シリアルポートの優å…
218ˆåº¦
219
220・INTATR_SIO
221 シリアルポートの割り込み属性
222
223●target_serial.cfgの設定項
224目
225・初期化ルーチンの登録
226 ATT_INI({ TA_NULL, 0, sio_initialize });
227
228・割込みサービスルーチンの登録
229 ATT_ISR({ TA_NULL, SIO_PORTID, INTNO_SIO, sio_isr, 1 });
230
231・割込み要求ラインのコンフィギュレーション
232 CFG_INT(INTNO_SIO, { TA_ENAINT|INTATR_SIO, INTPRI_SIO });
233
234●target_kernel.h
235・chip_kernel.hのインクルード
236
237●target_check.tf
238・chip_check.t のインクルード.
239
240●target_cfg1_out.h
241・chip_cfg1_out.h のインクルード
242
243●target_asm.inc
244・chip_cfg1_out.hのインクルード
245
246●target.tf
247・chip.tfのインクルード
248
249●target_test.h
250・STACK_SIZE(オプション)
251 サンプルプログラムのディフォルトのスタックサイズの変更.
252
253○変更履歴
2542015/11/14
255・chip_sil.h/stm32f.h
256 ・core_sil.hでTBITW_IPRIを参ç…
257§ã™ã‚‹ãŸã‚ï¼Œå®šç¾©å ´æ‰€ã‚’stm32f.hから
258 chip_sio.hに移動.
259
2602015/11/04
261・Makefile.chip
262 ・アーキテクチャーを指定するように変更
263
2642012/10/17
265・1.8.0対応のため,char_t の箇所を他の型に変更.
266
2672012/06/18
268・xxx_stddef.h を相対パスではなくファイル名のみで指定するように変更.
269 どのファイルを用いるかは他のファイルと同様にコンパイラへのインクルー
270 ド指定の順序とする.
271
2722012/02/23
273・uart.h
274 ・SIO_PORTIDをSIO_PORIDと記述していた問題を修正.
275
2762011/11/28
277・新規追加
Note: See TracBrowser for help on using the repository browser.