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

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

nucleo_f401re依存部の追加

File size: 6.0 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 * 例外・割込み発生時にLRに設定されるEXC_RETURNの値
77 */
78#define EXC_RETURN_HANDLER 0x0
79#define EXC_RETURN_THREAD 0x8
80#define EXC_RETURN_MSP 0x0
81#define EXC_RETURN_PSP 0x4
82
83/*
84 * CONTROLレジスタ
85 */
86#define CONTROL_PSP 0x02
87#define CONTROL_MSP 0x00
88
89/*
90 * 例外番号
91 */
92#define EXCNO_NMI 2
93#define EXCNO_HARD 3
94#define EXCNO_MPU 4
95#define EXCNO_BUS 5
96#define EXCNO_USAGE 6
97#define EXCNO_SVCALL 11
98#define EXCNO_DEBUG 12
99#define EXCNO_PENDSV 14
100
101/*
102 * 例外番号の最小値と最大値
103 */
104#define TMIN_EXCNO 2
105#define TMAX_EXCNO 14
106
107/*
108 * 割込み番号
109 */
110#define IRQNO_SYSTICK 15
111
112/*
113 * 割込み番号の最小値
114 */
115#define TMIN_INTNO 15
116
117/*
118 * 例外フレームのオフセット
119 */
120#define P_EXCINF_OFFSET_EXC_RETURN 0x00
121#define P_EXCINF_OFFSET_BASEPRI 0x01
122#define P_EXCINF_OFFSET_XPSR 0x09
123#define P_EXCINF_OFFSET_PC 0x08
124
125/*
126 * NVIC関連
127 */
128
129/*
130 * コントロールレジスタ
131 */
132#define NVIC_INT_CTRL 0xe000ed04
133
134#define NVIC_PENDSVSET 0x10000000
135
136/*
137 * システムハンドラーコントロールレジスタ
138 */
139#define NVIC_SYS_HND_CTRL 0xE000ED24
140
141/*
142 * 各例外の許可ビット
143 */
144#define NVIC_SYS_HND_CTRL_USAGE 0x00040000
145#define NVIC_SYS_HND_CTRL_BUS 0x00020000
146#define NVIC_SYS_HND_CTRL_MEM 0x00010000
147
148/*
149 * 優å…
150ˆåº¦è¨­å®šãƒ¬ã‚¸ã‚¹ã‚¿
151 */
152#define NVIC_SYS_PRI1 0xE000ED18 // Sys. Handlers 4 to 7 Priority
153#define NVIC_SYS_PRI2 0xE000ED1C // Sys. Handlers 8 to 11 Priority
154#define NVIC_SYS_PRI3 0xE000ED20 // Sys. Handlers 12 to 15 Priority
155#define NVIC_PRI0 0xE000E400 // IRQ 0 to 3 Priority Register
156
157/*
158 * 割込み許可レジスタ
159 */
160#define NVIC_SETENA0 0xE000E100 // IRQ 0 to 31 Set Enable Register
161
162/*
163 * 割込み禁止レジスタ
164 */
165#define NVIC_CLRENA0 0xE000E180 // IRQ 0 to 31 Set Disable Register
166
167/*
168 * 割込みセットペンディングレジスタ
169 */
170#define NVIC_ISER0 0xE000E200 // IRQ 0 to 31 Set-Pending Register
171
172/*
173 * 割込みクリアペンディングレジスタ
174 */
175#define NVIC_ICER0 0xE000E280 // IRQ 0 to 31 Clear-Pending Register
176
177/*
178 * ベクタテーブルオフセットレジスタ
179 */
180#define NVIC_VECTTBL 0xE000ED08
181
182
183/*
184 * SYSTIC関連レジスタ
185 */
186#define SYSTIC_CONTROL_STATUS 0xE000E010
187#define SYSTIC_RELOAD_VALUE 0xE000E014
188#define SYSTIC_CURRENT_VALUE 0xE000E018
189#define SYSTIC_CALIBRATION 0xE000E01C
190
191#define SYSTIC_ENABLE 0x01
192#define SYSTIC_TICINT 0x02
193#define SYSTIC_CLKSOURCE 0x04
194#define SYSTIC_COUNTFLAG 0x10000
195
196#define SYSTIC_SKEW 0x40000000
197#define SYSTIC_NOREF 0x80000000
198#define SYSTIC_TENMS 0x00ffffff
199
200/*
201 * Configuration Control Register
202 */
203#define CCR_BASE 0xE000ED14
204#define CCR_STKALIGN 0x00000200
205#define CPACR_BASE 0xE000ED88U /*!< System Control Space Base Address */
206
207#endif /* ARM_M_H */
Note: See TracBrowser for help on using the repository browser.