source: asp_ccsproject/trunk/asp/arch/arm_m_gcc/common/arm_m.h@ 85

Last change on this file since 85 was 85, checked in by ecsg-okazaki, 10 years ago

2014/09/26 ECS E.Okazaki Folder configuration change

File size: 5.8 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2008-2011 by Embedded and Real-Time Systems Laboratory
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 *
9 * 上記著作権者
10は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12 * 変・再é…
13å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16 * スコード中に含まれていること.
17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18 * 用できる形で再é…
19å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
20å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
21 * 者
22マニュアルなど)に,上記の著作権表示,この利用条件および下記
23 * の無保証規定を掲載すること.
24 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
25 * 用できない形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
27 * と.
28 * (a) 再é…
29å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
30マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (b) 再é…
33å¸ƒã®å½¢æ…
34‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
35 * 報告すること.
36 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37 * 害からも,上記著作権者
38およびTOPPERSプロジェクトをå…
39è²¬ã™ã‚‹ã“と.
40 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
41 * 由に基づく請求からも,上記著作権者
42およびTOPPERSプロジェクトを
43 * å…
44è²¬ã™ã‚‹ã“と.
45 *
46 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
47お
48 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
49 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
50 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
51 * の責任を負わない.
52 *
53 * @(#) $Id: arm_m.h 2202 2011-07-26 13:27:11Z ertl-honda $
54 */
55
56/*
57 * ARMVx-Mのハードウェア資源の定義
58 */
59
60#ifndef ARM_M_H
61#define ARM_M_H
62
63/*
64 * EPSRのTビット
65 */
66#define EPSR_T 0x01000000
67
68/*
69 * IPSRの ISR NUMBER
70 */
71#define IPSR_ISR_NUMBER 0x1ff
72
73/*
74 * 例外・割込み発生時にスタック上に積まれる保存領域のサイズ
75 * 本カーネルでは例外フレームと呼ぶ
76 */
77#define EXC_FRAME_SIZE (8*4)
78
79/*
80 * 例外・割込み発生時にLRに設定されるEXC_RETURNの値
81 */
82#define EXC_RETURN_HANDLER 0x0
83#define EXC_RETURN_THREAD 0x8
84#define EXC_RETURN_MSP 0x0
85#define EXC_RETURN_PSP 0x4
86
87/*
88 * CONTROLレジスタ
89 */
90#define CONTROL_PSP 0x02
91#define CONTROL_MSP 0x00
92
93/*
94 * 例外番号
95 */
96#define EXCNO_NMI 2
97#define EXCNO_HARD 3
98#define EXCNO_MPU 4
99#define EXCNO_BUS 5
100#define EXCNO_USAGE 6
101#define EXCNO_SVCALL 11
102#define EXCNO_DEBUG 12
103#define EXCNO_PENDSV 14
104
105/*
106 * 例外番号の最小値と最大値
107 */
108#define TMIN_EXCNO 2
109#define TMAX_EXCNO 14
110
111/*
112 * 割込み番号
113 */
114#define IRQNO_SYSTICK 15
115
116/*
117 * 割込み番号の最小値
118 */
119#define TMIN_INTNO 15
120
121/*
122 * 例外フレームのオフセット
123 */
124#define P_EXCINF_OFFSET_EXC_RETURN 0x00
125#define P_EXCINF_OFFSET_BASEPRI 0x01
126#define P_EXCINF_OFFSET_XPSR 0x09
127#define P_EXCINF_OFFSET_PC 0x08
128
129/*
130 * NVIC関連
131 */
132
133/*
134 * コントロールレジスタ
135 */
136#define NVIC_INT_CTRL 0xe000ed04
137
138#define NVIC_PENDSVSET 0x10000000
139
140/*
141 * システムハンドラーコントロールレジスタ
142 */
143#define NVIC_SYS_HND_CTRL 0xE000ED24
144
145/*
146 * 各例外の許可ビット
147 */
148#define NVIC_SYS_HND_CTRL_USAGE 0x00040000
149#define NVIC_SYS_HND_CTRL_BUS 0x00020000
150#define NVIC_SYS_HND_CTRL_MEM 0x00010000
151
152/*
153 * 優å…
154ˆåº¦è¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿
155 */
156#define NVIC_SYS_PRI1 0xE000ED18 // Sys. Handlers 4 to 7 Priority
157#define NVIC_SYS_PRI2 0xE000ED1C // Sys. Handlers 8 to 11 Priority
158#define NVIC_SYS_PRI3 0xE000ED20 // Sys. Handlers 12 to 15 Priority
159#define NVIC_PRI0 0xE000E400 // IRQ 0 to 3 Priority Register
160
161/*
162 * 割込み許可レジスタ
163 */
164#define NVIC_SETENA0 0xE000E100 // IRQ 0 to 31 Set Enable Register
165
166/*
167 * 割込み禁止レジスタ
168 */
169#define NVIC_CLRENA0 0xE000E180 // IRQ 0 to 31 Set Disable Register
170
171/*
172 * 割込みセットペンディングレジスタ
173 */
174#define NVIC_ISER0 0xE000E200 // IRQ 0 to 31 Set-Pending Register
175
176/*
177 * 割込みクリアペンディングレジスタ
178 */
179#define NVIC_ICER0 0xE000E280 // IRQ 0 to 31 Clear-Pending Register
180
181/*
182 * ベクタテーブルオフセットレジスタ
183 */
184#define NVIC_VECTTBL 0xE000ED08
185
186
187/*
188 * SYSTIC関連レジスタ
189 */
190#define SYSTIC_CONTROL_STATUS 0xE000E010
191#define SYSTIC_RELOAD_VALUE 0xE000E014
192#define SYSTIC_CURRENT_VALUE 0xE000E018
193#define SYSTIC_CALIBRATION 0xE000E01C
194
195#define SYSTIC_ENABLE 0x01
196#define SYSTIC_TICINT 0x02
197#define SYSTIC_CLKSOURCE 0x04
198#define SYSTIC_COUNTFLAG 0x10000
199
200#define SYSTIC_SKEW 0x40000000
201#define SYSTIC_NOREF 0x80000000
202#define SYSTIC_TENMS 0x00ffffff
203
204#endif /* ARM_M_H */
Note: See TracBrowser for help on using the repository browser.