source: ssp_armv6_m_gcc/tags/1.3.0/arch/armv6_m_gcc/arm_m.h@ 86

Last change on this file since 86 was 86, checked in by nmir-saito, 9 years ago

add separate package of SSP kernel for ARMv6-M

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