source: atk2-sc3_fl850f1l/arch/v850_gcc/SmpC1ISR.S@ 117

Last change on this file since 117 was 117, checked in by ertl-ishikawa, 9 years ago

ATK2-SC3 1.3.2 FL850F1L(RH850F1L)依存部(GCC/GHS/CCRH)を追加

File size: 4.6 KB
Line 
1/*
2 * TOPPERS ATK2
3 * Toyohashi Open Platform for Embedded Real-Time Systems
4 * Automotive Kernel Version 2
5 *
6 * Copyright (C) 2012-2013 by Center for Embedded Computing Systems
7 * Graduate School of Information Science, Nagoya Univ., JAPAN
8 * Copyright (C) 2012-2013 by FUJISOFT INCORPORATED, JAPAN
9 * Copyright (C) 2012-2013 by FUJITSU VLSI LIMITED, JAPAN
10 * Copyright (C) 2012-2013 by NEC Communication Systems, Ltd., JAPAN
11 * Copyright (C) 2012-2013 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
12 * Copyright (C) 2012-2013 by Renesas Electronics Corporation, JAPAN
13 * Copyright (C) 2012-2013 by Sunny Giken Inc., JAPAN
14 * Copyright (C) 2012-2013 by TOSHIBA CORPORATION, JAPAN
15 * Copyright (C) 2012-2013 by Witz Corporation, JAPAN
16 *
17 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
18 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
19 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
20 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
21 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
22 * スコード中に含まれていること.
23 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
24 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
25 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
26 * の無保証規定を掲載すること.
27 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
29 * と.
30 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
31 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
32 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
33 * 報告すること.
34 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
35 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
36 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
37 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
38 * 免責すること.
39 *
40 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
41 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
42 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
43 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
44 * の責任を負わない.
45 *
46 * $Id: SmpC1ISR.S 117 2014-12-10 03:58:03Z t_ishikawa $
47 */
48
49#define TOPPERS_MACRO_ONLY
50
51#define UINT_C(val) (val)
52#define CAST(type, val) (val) /* 型キャストを行うマクロ */
53
54#include "v850asm.inc"
55#include "target_test.h"
56#include "kernel/kernel_impl.h"
57#include "target_timer.h"
58#include "v850.h"
59
60.global C1ISRMainSmpC1ISR
61.global _C1ISRMainSmpC1ISR
62
63C1ISRMainSmpC1ISR:
64_C1ISRMainSmpC1ISR:
65
66 /* レジスタの保存 */
67 addi -80, sp, sp
68 st.w ep, 12[sp]
69 mov sp, ep
70 sst.w r1, 72[ep]
71 sst.w r6, 68[ep]
72 sst.w r7, 64[ep]
73 sst.w r8, 60[ep]
74 sst.w r9, 56[ep]
75 sst.w r10, 52[ep]
76 sst.w r11, 48[ep]
77 sst.w r12, 44[ep]
78 sst.w r13, 40[ep]
79 sst.w r14, 36[ep]
80 sst.w r15, 32[ep]
81 sst.w r16, 28[ep]
82 sst.w r17, 24[ep]
83 sst.w r18, 20[ep]
84 sst.w r19, 16[ep]
85 sst.w r31, 8[ep]
86
87 /* 多重割込みのため,現在のEIPCとEIPSWを保存 */
88 stsr eipc, r6
89 sst.w r6, 4[ep]
90 stsr eipsw, r6
91 sst.w r6, 0[ep]
92
93 /* debug led4 on */
94 Lea P24, r6
95 ld.h 0[r6], r7 /* P24 -> r7 */
96 mov ~0x0800, r8
97 and r7, r8
98 st.h r8, 0[r6]
99
100 UNLOCK_ALL_INT /* 全割込み解除 */
101
102 /* 割込み発生前のcallevel_statをスタックに保存 */
103 Lea _callevel_stat, r6
104 ld.h 0[r6], r7
105 sst.w r7, 76[ep]
106
107 /* callevel_statにC1ISRをセット */
108
109 Lea TSYS_ISR1, r8
110 or r8, r7
111 st.h r7, 0[r6]
112
113 /*
114 * タイマ割込みをクリア
115 */
116 Lea ICTAUA0I(TAUA_CH7), r6
117 ld.h 0[r6], r7
118 mov ~EIRFn, r8
119 and r8, r7
120 st.h r7, 0[r6]
121
122/* jarl _c1isr_syslog, r31 FIXME */
123
124 Lea _callevel_stat, r6
125 sld.w 76[ep], r7
126 st.h r7, 0[r6]
127
128 LOCK_ALL_INT /* 全割込み設定 */
129
130 /* debug led4 off */
131 Lea P24, r6
132 ld.h 0[r6], r7 /* P24 -> r7 */
133 mov 0x0800, r8
134 or r7, r8
135 st.h r8, 0[r6]
136
137 /* レジスタの復帰 */
138 mov sp, ep
139 sld.w 4[ep], r10
140 ldsr r10, eipc
141 sld.w 0[ep], r10
142 ldsr r10, eipsw
143 sld.w 72[ep], r1
144 sld.w 68[ep], r6
145 sld.w 64[ep], r7
146 sld.w 60[ep], r8
147 sld.w 56[ep], r9
148 sld.w 52[ep], r10
149 sld.w 48[ep], r11
150 sld.w 44[ep], r12
151 sld.w 40[ep], r13
152 sld.w 36[ep], r14
153 sld.w 32[ep], r15
154 sld.w 28[ep], r16
155 sld.w 24[ep], r17
156 sld.w 20[ep], r18
157 sld.w 16[ep], r19
158 sld.w 8[ep], r31
159 addi 80, ep, sp
160 sld.w 12[ep], r30
161 eiret
162
Note: See TracBrowser for help on using the repository browser.