source: azure_iot_hub_f767zi/trunk/asp_baseplatform/arch/arm_m_gcc/common/core_user.txt@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain;charset=UTF-8
File size: 25.0 KB
Line 
1=====================================================================
2 ARM-Mプロセッサ依存部
3 Last Modified:2015 Nov 23 09:31:43
4=====================================================================
5
6
7(1) 対応しているターゲットシステムの種類・構成
8
9ARM-M依存部は,ARMvx-Mアーキテクチャをターゲットとしている.ARMvx-Mは,
10ARMとは異なり,ARM命令を実行できないため,ARM依存部と分けている.現状
11サポートしているコアは次の通りである.
12
13・Cortex-M0
14・Cortex-M0+
15・Cortex-M3
16・Cortex-M4
17
18(2) 使用する開発環境と動作検証した条件(バージョン,オプション等)
19
20カーネルはGCCを用いてコンパイルする.動作確認したバージョンは各ターゲ
21ット依存部のドキュメントに記載する.
22
23
24(3) ターゲット定義事項の規定
25
26(3-1) データ型に関する規定
27
28データ型は arch/gcc/tool_stddef.h で定義されている内容で,float型と
29double型は,それぞれIEEE754準拠の単精度浮動小数点数と倍精度浮動小数点
30数である.
31
32(3-2) 割込み処理に関する規定
33
34○割込みハンドラ番号と割込み番号の割当て,両者の対応
35
36割込みハンドラ番号と割込み番号は,例外発生時にIPSRにセットされる例外番
37号を用いる.SYSTICKは15番で,外部割込みは16番からの番号が割り付けられ
38ている.
39
40○割込み優先度の段階数とTMIN_INTPRIの値
41
42割込み優先度の段階数は,SoC毎にハードウェア的にサポートする割込み優先
43度ビット幅が異なるので,ターゲット依存部毎に異なる.ターゲット依存部で
44は,割込み優先度のビット幅(TBITW_IPRI)とその割込み優先度中のサブ優先
45度のビット幅(TBITW_SUBPRI)を定義する.
46
47各ビット幅の値とCFG_INTで使用可能な割込み優先度の範囲は次の通りである.
48
49 -(2^(TBIW_IPRI)) + (2^TBITW_SUBIPRI) ~ -1
50
51例えば優先度のビット幅(TBITW_IPRI)が8bit,サブ優先度のビット幅
52(TBITW_SUBIPRI) が1bitの場合は,-254 ~ -1 の範囲である.
53
54優先度のビット幅(TBITW_IPRI)が3bit,サブ優先度のビット幅(TBITW_SUBIPRI)
55が0bitの場合は,-8 ~ -1 の範囲である.
56
57最大優先度(3bitの例では-8)は,内部優先度としては"0x00"となる.この優先
58度はCPUロックで用いるBASEPRIレジスタではマスクできないため,カーネル管
59理内の割込みの最高優先度(TMIN_INTPRI)は,最大値より1つ優先度が低い値
60以下の値を指定する.
61
62この範囲で,カーネル管理内の割込みの最高優先度(TMIN_INTPRI)をターゲ
63ット依存部で設定する.
64
65○dis_intとena_intのサポートの有無,その制限事項
66
67dis_intとena_intをサポートする.制限事項は特にない.
68
69○CFG_INTの制限事項と拡張(ターゲット定義で使用できる割込み属性)
70
71CFG_INTの制限事項はなく,ターゲット定義で使用可能な割込み属性は特にな
72い.
73
74○カーネル管理外の割込み
75
76ARMv7-Mでは,カーネル管理外の割込みをサポートする.指定方法は,割込み
77優先度の段階数で指定した,サポートする割込み優先度の最高値(最小値)よ
78り,TMIN_INTPRIの値を大きく(優先度を低く)設定すると,TMIN_INTPRIより
79値が小い(高優先度)な割込み優先度を設定した割込みを割込み優先度として
80扱う.
81
82カーネル管理外の割込みはOS実行中も禁止になることはなく(厳密には割込み
83の出口でごく短い区間禁止される),割込み発生時は,カーネルのコードを経
84由せずに呼び出される.
85
86カーネル管理外の割込みに対する,DEF_INH,CFG_INTはサポートする.
87
88(3-3) CPU例外処理に関する規定
89
90○CPU例外ハンドラ番号
91
92CPU例外ハンドラ番号としては,例外発生時にIPSRにセットされる,例外番号
93を用いる.各例外の例外番号は以下の通りである.
94
95 例外 例外番号
96 Reset 1
97 Non-makable Interrupt 2
98 Hard Fault 3
99 Memory Management 4
100 Bus Fault 5
101 Usage Fault 6
102 SVCall 11
103 Debug Monitor 12
104 PendSV 14
105
106なお,Resetと,SVCall(ARMv7-M),PendSV(ARMv6-M)については,カーネルが
107使用するため,ユーザーは使用することができない.
108
109ARM-MアーキテクチャではCPU例外に優先度を設定することが可能である.
110ARM-M依存部では,全てのCPU例外の優先度をCPUロックではマスクできないマ
111スク出来ない値(内部優先度0)に初期化している.
112
113(3-4) CPUロック・割込みロック
114
115ARMv7-Mでは,CPUロックは,basepriをTMIN_INTPRIの優先度の割込みを禁止す
116る値に設定する.割込みロックは,FAULTMASKを'1'に設定することで実現してい
117る.
118
119ARMv6-Mでは,CPUロック/割込みロック共にPRIMASKにより実現している.
120
121(3-5) 性能評価用システム時刻の参照に関する規定
122
123get_utmをサポートする.精度に関しては,ターゲット毎に異なる.
124
125(3-6) スタートアップルーチンでの初期化内容
126
127スタートアップルーチンは,Threadモードで呼び出されることを前提としてい
128る.実行後,割込みロック状態とする.割込みロック状態は,カーネルの初期
129化終了時に許可する.スタートアップルーチンで,MSPをアクティブなスタッ
130クとし,MSPの内容を初期化するためには,INIT_MSPをターゲット依存部で定
131義する.
132
133(3-7) ベクタテーブルオフセットの初期化
134
135プロセッサ依存の初期化処理で,Vector Table Offset Register をターゲッ
136ト依存部の初期化ルーチンで設定する.なお,ベクターテーブルは,.vector
137のセクション属性が付加されているため,リンカスクリプトでこのセクション
138を指定して配置する.
139
140
141(4) タイマドライバ関連の情報
142
143カーネルのタイムティックとして,SYSTICを使用する場合は,core_config.c
144をコンパイル対象とし,コンフィギュレーションファイルに core_config.cfg
145を指定すること.
146
147周期の基本は1msecとする.周期をCALIBRATIONレジスタの設定内容を元に計算
148する場合は,SYSTIC_USE_CALIBRATION を定義する.CALIBRATIONレジスタを用
149いない場合は,1msec周期分のカウント値を TIMER_CLOCK に設定する.クロッ
150クソースとして,外部クロックを用いる場合は,SYSTIC_USE_STCLK を用いる.
151
152
153(5) ターゲット依存部での設定項目
154
155ターゲット依存部では以下のマクロを定義する必要がある.
156
157 ・TMAX_INTNO : 割込み番号の最大値(通常の割込み番号 + 15)
158 ・TBITW_IPRI : 割込み優先度のビット幅
159 ・TBITW_SUBIPRI : 割込み優先度のビット幅中のサブ優先度のビット幅
160 ・TMIN_INTPRI : 割込み優先度の最小値(最高値)
161 ・TIC_NUME : タイムティックの周期の分子
162 ・TIC_DENO : タイムティックの周期の分母
163 ・TIMER_CLOCK : タイマ値の内部表現とミリ秒単位との変換
164 ・INTPRI_TIMER : タイマ割込み割込み優先度
165 ・INTATR_TIMER : タイマ割込みの割込み属性
166 ・INIT_MSP : スタートアップルーチンでMSPを初期化する場合は定義
167 ・DEFAULT_ISTKSZ : スタックサイズ(8byte単位で指定)
168 ・SIL_DLY_TIM1 : 微少時間待ちのための定義
169 ・SIL_DLY_TIM2 : 微少時間待ちのための定義
170
171ターゲット依存部のMakefileでは以下を定義する必要がある.
172
173 ・CORE_TYPE : コアの種類
174 CORTEX_M4/CORTEX_M3/CORTEX_M0/CORTEX_M0PLUS/
175 ・FPU_USAGE : FPUを使用する場合にいずれかに定義.
176 FPU_NO_PRESERV : コンテキスト保存なし
177 FPU_NO_LAZYSTACKING : コンテキスト保存あり
178 FPU_LAZYSTACKING : コンテキスト保存あり(Lazy stacking)
179 ・FPU_ABI : FPU使用時のABIいずれかを指定
180 softfp : float/dobuleの引数の受け渡しに一般レジスタを使用
181 hard : float/dobuleの引数の受け渡しにFPUレジスタを使用
182
183(6) その他
184
185(6-1) Configureation and Control Register(CCR)のSTKALIGNの制限
186
187システム起動後(正確にはOSの初期化終了後)はCCRのSTKALIGNの設定は,変
188更しないこと.
189
190
191(7) ディレクトリ構成・ファイル構成
192 ./arch/arm_m_gcc/common
193 ./Makefile.core
194 ./arm_m.h
195 ./makeoffset.c
196 ./core.tf
197 ./core_cfg1_out.h
198 ./core_check.tf
199 ./core_config.c
200 ./core_config.h
201 ./core_def.csv
202 ./core_insn.h
203 ./core_kernel.h
204 ./core_rename.def
205 ./core_rename.h
206 ./core_sil.h
207 ./core_stddef.h
208 ./core_support.S
209 ./core_test.h
210 ./core_timer.c
211 ./core_timer.cfg
212 ./core_timer.h
213 ./core_unrename.h
214 ./core_user.txt
215 ./start.S
216
217(8)ARMCC共有コードの記述方法
218
219ARMCCと共有するコードは,次のルールに従ってコードを記述する必要がある.
220
2211.メモリバリア命令(Asm("":::"memory"))のマクロ化
222
223ターゲット依存部 ポーティングガイドの(1-6-2)(c)には,次のように記述さ
224れている.
225
226-----
227(c) クリティカルセクションの出入処理の本質的な部分が,マクロやインライ
228 ン関数呼出しで実現している場合には,クリティカルセクションに入る処
229 理の最後と出る処理の先頭に,Asm("":::"memory")という記述を入れる.
230-----
231
232メモリバリア命令(Asm("":::"memory"))は,ARMCCと互換性がないため,この
233記述をする箇所は,次のマクロで記述すると,コンパイル時に適切なメモリバ
234リア命令に置き換えられる.
235
236 ARM_MEMORY_CHANGED
237
2382.インクルード方法
239
240ターゲット依存部 ポーティングガイドの1.5には,次のように記述されている.
241
242-----
243その他のヘッダファイルは,「#include "..."」によりインクルードする.ヘッ
244ダファイルが,カレントディレクトリやインクルードするファイルと同じディ
245レクトリ以外のディレクトリに置かれている場合には,次のようにパス指定を
246行う.
247-----
248
249GCC依存部とARMCC依存部でヘッダファイルを共有できない場合には,それぞれ
250で同じ名前のファイルを持つ.そして,コンパイルオプションでインクルード
251すべきファイルを先に指定している.そのため,ARMCCと共有するファイルで
252これらのファイルをインクルードする場合には,「#include "..."」ではなく,
253「#include <...>」で記述し,相対パスではなくファイル名のみを記載するこ
254と.
255
2563.アセンブラディレクティブ
257
258GCCとARMCCのアセンブラディレクティブは互換性がない.そのため,ARMCCと
259共有するファイルは次に示すマクロディレクティブで記述すること.
260
261マクロディレクティブ GCCディレクティブ
262 ASECTION(name) .section name,"a"
263 ATEXT .text
264 AGLOBAL(name) .global name
265 AALIGN(x) .align x
266 ALONG .long
267 ALABEL(label) label:
268 AOR |
269 ATHUMB(name) __athumb name
270
271
272(9)アイドル処理
273
274実行するべきタスクがない場合は,ディスパッチャーで割込みを許可して,割
275込みを待つ(dispatcher_2).ARM-M依存部のコードでは,次のようになって
276いる.
277
278 PRIMASK をセット
279 全割込み許可
280 wfi
281 PRIMASK をクリア(割込みを受け付ける)
282 CPUロック状態へ
283
284ターゲット依存で,上記の処理の代わりに,省電力モード等に移行する処理を
285記述したい場合には,ターゲット依存部で,TOPPERS_CUSTOM_IDLEを定義し,
286代わりに実行した処理を toppers_asm_custom_idle というアセンブラマクロ
287として記述する.
288
289なお,toppers_asm_custom_idle の記述にあたっては,次のレジスタは
290oppers_asm_custom_idleの前後で使用するため,oppers_asm_custom_idle 内
291で使用する場合は,前後で保存復帰すること.これらのレジスタは Calee
292saved レジスタであるため, oppers_asm_custom_idle として関数呼び出しを
293した場合は,呼び出した関数で自動的に保存復帰されるため,アセンブラレベ
294ルでの保存復帰は必要ない.
295
296レジスタ : 内容
297r4 : '0'
298r5 : 'IIPM_LOCK'
299r6 : reqflgのアドレス
300r7 : lock_flgのアドレス
301sp : 非タスクコンテキスト用のスタックの先頭アドレス(msp)
302
303アセンブラマクロはC言語記述中に展開するとエラーとなる.core_support.S で
304は,TOPPERS_ASM_MACRO というマクロを定義しているため,ターゲット依存部
305で toppers_asm_custom_idle アセンブラマクロを定義する際には,
306TOPPERS_ASM_MACRO を条件コンパイルの条件として用いること.
307
308(10)FPU
309Cortex-M4FのFPUをサポートしている.FPUの使用方法は次の3種類から選択可
310能である.それぞれMakefile内でFPU_USAGEマクロを定義して指定する.指定
311がない場合はFPUを無効とする.
312
313FPU_NO_PRESERV
314ディスパッチャ等ではFPUコンテキストの保存復帰を行わない.
315FPUを使用可能なタスクは1個もしくは,システム中の最高優先度のISR群で使
316用可能.
317
318FPU_NO_LAZYSTACKING
319ディスパッチャ等ではFPUコンテキストの保存復帰を行う.Lazy stacking は
320使用しない.全てのタスク/ISRでFPUを使用可能.
321
322FPU_LAZYSTACKING
323ディスパッチャ等ではFPUコンテキストの保存復帰を行う.Lazy stacking を
324使用する.全てのタスク/ISRでFPUを使用可能.
325
326(11)その他
327
3281. ベクターテーブルのセクション指定
329
330core.tf で以下の _kernel_vector_table の配列の変数の宣言の生成の際に,
331GEN_VECTOR_TABLE_VARNAME という関数が定義されていれば,core.tf では変
332数の宣言は行わず,GEN_VECTOR_TABLE_VARNAME を呼び出す.
333
334const FP _kernel_vector_table[] =
335
336GEN_VECTOR_TABLE_VARNAME が宣言されている場合でも,配列の本体の生成は,
337core.tfで行う.
338
3392. ARMv6-Mでの割込みロック(SIL_LOC_INT())
340
341CPUロック・割込みロックにPRIMASKを使用しているため,CPUロック・割込み
342ロック中にHardwareFault以外の例外が発生して受け付けられなくなるという
343制約がある.
344
345(12) バージョン履歴
3462015/11/22
347・Cortex-M4FのFPUのサポートを追加.
348
3492015/11/14
350・ARMv7-M
351 ・core_sil.h
352 ・割込みロック(SIL_LOC_INT())をBASEPRIを使用するように変更.
353 ・元のFAULTMASKだとFAULTMASKをセットした状態で例外が発生すると例外
354 が発生しないため.
355
3562015/11/04
357・ARMv6-M対応に関する変更
358 ・ARMv7-Mに影響を及ぼす変更
359 ・例外フレームのフォーマットを変更(basepriとEXC_RETURNの順序を変更)
360 ・エントリポイント(_start)をリネームの対象に変更.
361 ・Cライブラリの_startと名前が重複するため.
362 ・Makefile.coreで -nostdlib を付けないように変更.
363 ・ターゲット依存部で指定する
364
3652014/12/01
366・core_support.S
367 2013/08/20 の修正でPSP上への割込み優先度マスク(r2)とEXC_RETURN(lr)の
368 保存をstfmdで行うにしたが,スタックへの積み方がlr,r2となっているため
369 ,割込み・例外出口のコードとの整合性がとれていなかった.r2,lrと保存
370 するようにlrをr0に一旦コピーしてr0(lr),r2とstmfdに指定するよう変更.
371
3722014/07/23
373・target_timer_probe_int()において,SYSTIC_CONTROL_STATUS を一度読み込
374 むとクリアされるため,割込み等で複数回読み込む使い方には適応しない.
375 そのため,NVICのペンディングレジスタを読み込むように変更.
376
3772012/10/17
378・1.8.0対応のため,char_t の箇所を他の型に変更.
379
3802013/08/20
381・core_support.S
382 例外/割込み例外発生時のPSP上への割込み優先度マスク(r2)とEXC_RETURN(lr)
383 の保存をstmfd1命令で実施するように変更.
384
3852013/03/10
386・core_support.S
387 sub/addはアセンブラにより32bit命令nsub.w/add.wと変換される.16bit命
388 令のsubs/addsでも問題ないため,変更.
389
3902012/06/18
391・xxx_stddef.h を相対パスではなくファイル名のみで指定するように変更.
392 どのファイルを用いるかは他のファイルと同様にコンパイラへのインクルー
393 ド指定の順序とする.
394・core.tf で _kernel_vector_table の配列の変数の宣言部分を生成する際に,
395 GEN_VECTOR_TABLE_VARNAME という関数が定義されていれば,呼び出すよう
396 に変更.
397 セクション指定方法がコンパイラ毎に異なるため用意.
398
3992012/02/29
400・Makefile.core
401 ・CDEFSにTOPPERS_LABEL_ASMを指定していたが,ARM用のgccではアセンブラ
402 のシンボルの前に_を付けないため削除.
403
4042012/02/02
405・core_config.h
406 ・x_set_ipm()で,iipmが'0'(IIPM_ENAALL)の時の問題を修正.
407・core_support.S
408 ・toppers_asm_custom_idleの前後で使用するレジスタを変更.この変更に
409 より,toppers_asm_custom_idle で関数呼び出しをする場合は,アセンブ
410 ラレベルでのレジスタの保存が必要なくなった.
411
4122012/02/23
413・core_support.S
414 ・core_exc_entryでbasepriを読み込んだあと,全割込みロック状態のチェ
415 ックために上書きしていた問題を修正
416 ・call_texrtnとcall_texrtnの呼び出しをb命令で記述すると,16bit命令と
417 して解釈するコンパイラがあるため,メモリ配置によってはレンジが足り
418 なくなる.bx命令に変更することで問題を修正.
419
4202012/01/31
421・core_timer.c
422 ・タイマ割込みハンドラにて,probe_int のため,COUNTFLAGをクリアするた
423 めに読み込んでいたレジスタが誤っていた問題を修正.
424
4252011/12/03
426・core_test.h の多重インクルード防止マクロの名称修正
427 ・CHIP を CORE に修正.
428
429・ARMCC対応に伴う変更
430 ・core_asm.inc(追加)
431 ・GCCのアセンブラのディレクティブの定義を記述したファイルを追加.
432 ・core_config.h(変更)
433 ・core_insn.h のインクルード方法を""から<>に変更して,コンパイラの
434 引数で指定された順でインクルードファイルをサーチするよう変更.
435 ・メモリバリア命令(Asm("":::"memory"))をマクロ化してcore_insn.h に
436 定義を使用するよう変更.
437 ・core_insn.h(変更)
438 ・メモリバリア命令(Asm("":::"memory"))のマクロ定義を追加
439 ・core_support.S(変更)
440 ・ARMCCとファイルを共有するため,ディレクティブをマクロに書き換え.
441 ・start.S(変更)
442 ・ARMCCとファイルを共有するため,ディレクティブをマクロに書き換え.
443
4442011/07/26
445・CCRのSTKALIGNが'1'の場合への対応
446 割込み・例外の出入口処理では,スタックは常に8byte境界となるように変
447 更.
448
4492011/07/25
450・CPU例外の優先度の初期化
451 CPUロックでマスクできない優先度(内部優先度0)に初期化する処理を追加.
452
453・CFG_INTで使用できる割込み優先度の最大値の修正(core.tf)
454 ・最大値が1つ大きな値となっていた.
455
456・カーネル管理外の割込みの扱いの変更
457 ・共通部での扱いの変更に伴う変更.
458
459・タイマ割込みハンドラでのCOUNTFLAGのクリア処理の修正
460 SYSTIC_CONTROL_STATUSレジスタのCOUNTFLAGをクリアするには,
461 SYSTIC_CURRENT_VALUEレジスタを読み込む必要があるが,誤って
462 SYSTIC_CONTROL_STATUSレジスタを読み込んでいた.
463
464・core_int_entryにおけるbasepriの設定
465 NVIC優先度マスクが自動的に設定されるため優先度マスクの点では必要な
466 いが,x_get_ipm()がbasepriを参照するため,basepriも更新するよう変更.
467
4682011/07/24
469・_ret_int_2/svc_handler の変更
470 割込み優先度マスクが全解除状態でしかタスク例外を呼び出さないように
471 仕様が変更されたため,_ret_int_2では,割込み優先度マスクを,全解除
472 状態(TIPM_ENAALL)に設定するよう変更.
473 svc_handlerはタスクにリターンする時にbasepriをIIPM_ENAALLにするよう
474 に変更.
475
476・x_config_int()/set_exc_int_priority()の修正
477 x_config_int()から,set_exc_int_priority()に対して外部優先度を引数に
478 して呼び出しいたため,内部優先度を引数で呼び出すよう修正.
479 set_exc_int_priority()も受け取った引数を内部優先度として優先度を設定
480 するように修正.
481
4822011/07/23
483・共通部を1.4.0にupdate.
484
485・arm依存部と同様にチップ依存部を置けるようにディレクトリ構造を変更
486
487・arm依存部と同様にファイル名のプリフィックスをcoreに変更.
488
489・call_atexitの削除
490 software_term_hook の呼び出しは,core_terminate()に移動.
491
492・共通部を1.7.0にupdate.
493
494・タスクコンテキストブロックの型名の変更
495 CTXB型をTSKCTXB型に名称変更.
496
497・ターゲット依存部でサポートする機能を示すマクロの変更
498 TOPPERS_SUPPORT_DIS_INTをTOPPERS_TARGET_SUPPORT_DIS_INTに,
499 TOPPERS_SUPPORT_ENA_INTをTOPPERS_TARGET_SUPPORT_ENA_INTに,
500 変更.
501
502・exc_sense_unlockの定義を削除.
503
504・オフセットファイルをコンフィギュレータで生成する方法への対応
505
506・CHECK_FUNC_ALIGN,CHECK_FUNC_NONNULL,CHECK_STACK_ALIGN,
507 CHECK_STACK_NONNULL,CHECK_MPF_ALIGN,CHECK_MPF_NONNULLの定義を,タ
508 ーゲット依存部のテンプレートファイル(パス3)からヘッダファイルに移
509 動.
510
511・割込みと例外の入り口処理の名前を変更
512 int_entryをcore_int_entryへexc_entryをcore_exc_entryに変更.
513 オフセットの取得方法が変更となったため,元の名前のままだとcfg1_out.c
514 がコンパイルエラーとなるために変更.
515
516・ターゲット依存部で定義する名称のリネームの追加
517
518・call_texrtnを呼び出す条件に「ipmflgがtrue」を追加
519
520・カーネル管理外のCPU例外の扱いの変更
521
5222011/07/22
523・x_disable_int() : prc_config.h の修正
524 割込み禁止レジスタのアドレスを取得する際に,ベースの値をuint32_tの
525 ポインタにキャストしていなったため,正しいアドレスが生成できていな
526 かった問題を修正.
527
528・非タスクコンテキスト用のスタックの初期値マクロ(TOPPERS_ISTKPT)の修正
529 : prc_config.h
530 バイト単位で取得するように,(char_t *) にキャストして掲載するように修
531 正.
532
533・LOG_INH_ENTRYとLOG_INH_LEAVEの誤記 : prc_support.S
534 LOG_INH_ENTRYとLOG_INH_LEAVEであるべき箇所が LOG_EXC_ENTRYと
535 LOG_EXC_ENTRYになっている問題を修正.
536
537・TOPPERS_CUSTOM_IDLE のtypoの修正 : prc_support.S
538
539・svn_hanlderの修正 : prc_support.S
540 一律EXC_FRAME_SIZE分のスタックを捨てていたが,Configureation and
541 Control Register(CCR)のSTKALIGNが'1'の場 合は,8byte境界にアライン
542 されるため,捨てるサイズが異なる.アラインされたかは,xPSRの9ビッ
543 トをチェックすることにより判定する.
544
545・prc.tfの修正
546 boostのバージョンによって変わる挙動を吸収.
547 http://www.toppers.jp/TOPPERS-USERS/201004/msg00034.html
548
549・_kernel_istkpt の削除 : prc_cfg1_out.h
550 _kernel_istkpt が必要ないターゲットが存在するため,必要なら,ターゲ
551 ット依存部で定義するように変更.
552
5532008/08/22
554・prc_user.txt/prc_design.txt
555 ・2008/8/21の技術検討会での議論結果を反映.
556
557・prc_support.S/prc_config.c/prc_config.h/arm_m.h
558 ・コンテキスト判定をexc_ncntからアクティブなスタックに変更
559
560・prc_config.c
561 ・set_exc_int_priority() でサポート可能なIRQの上限を239に拡張.
562
563・start.S
564 ・起動時はThreadモードを前提としていることを明記.
565 ・ブートローダー等から起動される場合を想定し,MSPを有効にするように
566 変更.
567
568・prc_timer.c
569 ・コメントを修正
570 ・デバッグ用コードを削除
571
5722008/07/11
573・最初のリリース
Note: See TracBrowser for help on using the repository browser.