OSDN Git Service

84f1d980cc22a93c726bcee89c17445292ef48c6
[hos/hos-v4a.git] / kernel / include / arch / proc / arm / arm_v7m / procatr.h
1 /**
2  *  Hyper Operating System V4 Advance
3  *
4  * @file  procatr.h
5  * @brief %jp{ARMv7-M}%en{ARMv7-M}
6  *
7  * Copyright (C) 1998-2011 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #ifndef _KERNEL__arch__proc__arm__arm_v7m__procatr_h__
13 #define _KERNEL__arch__proc__arm__arm_v7m__procatr_h__
14
15
16 #define _KERNEL_PROCATR_ARM_CORTEX_M3
17
18
19 /* %jp{プロセッサアーキテクチャ定義のあるインクルードパス} */
20 #define _KERNEL_PROCATR_INC_PATH                        "arm/arm_v7m"
21
22
23 /* %jp{プロセッサアーキテクチャに依存した属性} */
24 #define _KERNEL_PROCATR_CTX_STK                         FALSE           /**< %jp{コンテキスト生成にスタック領域の指定が必要か?} */
25 #define _KERNEL_PROCATR_CTX_STKSZ                       FALSE           /**< %jp{コンテキスト生成にスタックサイズの指定が必要か?} */
26 #define _KERNEL_PROCATR_CTX_ISP                         TRUE            /**< %jp{コンテキスト生成に初期スタックポインタ値が必要か?} */
27 #define _KERNEL_PROCATR_CTX_DEL                         FALSE           /**< %jp{別コンテキストからのコンテキスト削除が必要か?} */
28 #define _KERNEL_PROCATR_CTX_RST                         TRUE            /**< %jp{自コンテキストのリスタートが可能か?} */
29
30 #define _KERNEL_PROCATR_TMIN_STKSZ                      (4*16)          /**< %jp{最低限必要なスタックサイズ(byte単位)} */
31 #define _KERNEL_PROCATR_DEF_SYSSTKSZ            64
32 #define _KERNEL_PROCATR_DEF_INTSTKSZ            256
33
34 #define _KERNEL_PROCATR_SPT_SMP                         FALSE           /**< %jp{SMPに対応しているか?} */
35 #define _KERNEL_PROCATR_SPT_MULTINT                     TRUE            /**< %jp{多重割込みに対応しているか?} */
36
37 #define _KERNEL_PROCATR_TMIN_INHNO                      0                       /**< %jp{割込みハンドラ番号の最小値} */
38 #define _KERNEL_PROCATR_TMAX_INHNO                      255                     /**< %jp{割込みハンドラ番号の最大値} */
39
40 #define _KERNEL_PROCATR_TMIN_EXCNO                      0                       /**< %jp{CPU例外ハンドラ番号の最小値} */
41 #define _KERNEL_PROCATR_TMAX_EXCNO                      15                      /**< %jp{CPU例外ハンドラ番号の最大値} */
42
43 #define _KERNEL_PROCATR_SYSSTK_NUM                      1                       /**< %jp{システムスタックは何本必要か?} */
44
45 #define _KERNEL_PROCATR_SIGNED_INT                      0                       /**< %jp{符号付整数と符号無し整数のどちらが得意か?(符号付き:1, 符号無し:-1, 同じ:0)} */
46 #define _KERNEL_PROCATR_TBIT_INT                        32                      /**< %jp{プロセッサに最適な整数型のビット数} */
47 #define _KERNEL_PROCATR_TBIT_PTR                        32                      /**< %jp{ポインタのビット数} */
48 #define _KERNEL_PROCATR_MEM_ALIGN                       4                       /**< %jp{適切なメモリのアライメント(byte単位)} */
49 #define _KERNEL_PROCATR_STK_ALIGN                       8                       /**< %jp{適切なスタックのアライメント(byte単位)} */
50 #define _KERNEL_PROCATR_ALLOW_UNALIGN           FALSE           /**< %jp{アンアラインアクセスは可能か?} */
51
52 #define _KERNEL_PROCATR_SYS_CTX                         TRUE            /**< %jp{コンテキスト状態管理をプロセッサで実施するか?} */
53 #define _KERNEL_PROCATR_SYS_LOC                         FALSE           /**< %jp{CPUロック状態管理をプロセッサで実施するか?} */
54 #define _KERNEL_PROCATR_SYS_DSP                         FALSE           /**< %jp{ディスパッチ禁止状態管理をプロセッサで実施するか?} */
55 #define _KERNEL_PROCATR_SYS_SYS                         FALSE           /**< %jp{システム状態管理をプロセッサで実施するか?} */
56 #define _KERNEL_PROCATR_SYS_DLY                         TRUE            /**< %jp{遅延ディスパッチ保留状態管理をプロセッサで実施するか?} */
57
58
59
60 #endif  /* _KERNEL__arch__proc__arm__arm_v7m__procatr_h__ */
61
62
63 /* end of file */