source: asp3_wo_tecs/trunk/arch/arm_m_gcc/common/arm_m.h@ 302

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

TECSレスのASP3の開発のため以下のtrunkからコピー
http://dev.toppers.jp/svn/asp3/branches/WO_TECS-3.C.0

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