3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
6 * Copyright (C) 2008-2011 by Embedded and Real-Time Systems Laboratory
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
9 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
23 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
38 * @(#) $Id: arm_m.h 2202 2011-07-26 13:27:11Z ertl-honda $
51 #define EPSR_T 0x01000000
56 #define IPSR_ISR_NUMBER 0x1ff
59 * 例外・割込み発生時にスタック上に積まれる保存領域のサイズ
62 #define EXC_FRAME_SIZE (8*4)
65 * 例外・割込み発生時にLRに設定されるEXC_RETURNの値
67 #define EXC_RETURN_HANDLER 0x0
68 #define EXC_RETURN_THREAD 0x8
69 #define EXC_RETURN_MSP 0x0
70 #define EXC_RETURN_PSP 0x4
75 #define CONTROL_PSP 0x02
76 #define CONTROL_MSP 0x00
86 #define EXCNO_SVCALL 11
87 #define EXCNO_DEBUG 12
88 #define EXCNO_PENDSV 14
99 #define IRQNO_SYSTICK 15
104 #define TMIN_INTNO 15
109 #define P_EXCINF_OFFSET_EXC_RETURN 0x00
110 #define P_EXCINF_OFFSET_BASEPRI 0x01
111 #define P_EXCINF_OFFSET_XPSR 0x09
112 #define P_EXCINF_OFFSET_PC 0x08
121 #define NVIC_INT_CTRL 0xe000ed04
123 #define NVIC_PENDSVSET 0x10000000
126 * システムハンドラーコントロールレジスタ
128 #define NVIC_SYS_HND_CTRL 0xE000ED24
133 #define NVIC_SYS_HND_CTRL_USAGE 0x00040000
134 #define NVIC_SYS_HND_CTRL_BUS 0x00020000
135 #define NVIC_SYS_HND_CTRL_MEM 0x00010000
140 #define NVIC_SYS_PRI1 0xE000ED18 // Sys. Handlers 4 to 7 Priority
141 #define NVIC_SYS_PRI2 0xE000ED1C // Sys. Handlers 8 to 11 Priority
142 #define NVIC_SYS_PRI3 0xE000ED20 // Sys. Handlers 12 to 15 Priority
143 #define NVIC_PRI0 0xE000E400 // IRQ 0 to 3 Priority Register
148 #define NVIC_SETENA0 0xE000E100 // IRQ 0 to 31 Set Enable Register
153 #define NVIC_CLRENA0 0xE000E180 // IRQ 0 to 31 Set Disable Register
158 #define NVIC_ISER0 0xE000E200 // IRQ 0 to 31 Set-Pending Register
163 #define NVIC_ICER0 0xE000E280 // IRQ 0 to 31 Clear-Pending Register
168 #define NVIC_VECTTBL 0xE000ED08
174 #define SYSTIC_CONTROL_STATUS 0xE000E010
175 #define SYSTIC_RELOAD_VALUE 0xE000E014
176 #define SYSTIC_CURRENT_VALUE 0xE000E018
177 #define SYSTIC_CALIBRATION 0xE000E01C
179 #define SYSTIC_ENABLE 0x01
180 #define SYSTIC_TICINT 0x02
181 #define SYSTIC_CLKSOURCE 0x04
182 #define SYSTIC_COUNTFLAG 0x10000
184 #define SYSTIC_SKEW 0x40000000
185 #define SYSTIC_NOREF 0x80000000
186 #define SYSTIC_TENMS 0x00ffffff