source: asp3_tinet_ecnl_rx/trunk/asp3_dcre/arch/rx630_gcc/start.S@ 337

Last change on this file since 337 was 337, checked in by coas-nagasima, 6 years ago

ASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain;charset=UTF-8
File size: 5.2 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,2006 by Embedded and Real-Time Systems Laboratory
9;* Graduate School of Information Science, Nagoya Univ., JAPAN
10;* Copyright (C) 2008-2010 by Witz Corporation, JAPAN
11;*
12;* 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
13;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
14;* 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
15;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
16;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
17;* スコード中に含まれていること.
18;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
19;* 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
20;* 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
21;* の無保証規定を掲載すること.
22;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
23;* 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
24;* と.
25;* (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
26;* 作権表示,この利用条件および下記の無保証規定を掲載すること.
27;* (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
28;* 報告すること.
29;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
30;* 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
31;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
32;* 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
33;* 免責すること.
34;*
35;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
36;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
37;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
38;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
39;* の責任を負わない.
40;*
41;* @(#) $Id$
42;*
43
44#define TOPPERS_MACRO_ONLY
45#define UINT_C(val) (val) /* uint_t型の定数を作るマクロ */
46#define ULONG_C(val) (val) /* ulong_t型の定数を作るマクロ */
47#define CAST(type, val) (val) /* 型キャストを行うマクロ */
48#include "kernel_impl.h"
49#include "sectrx.inc"
50
51 ;
52 ; メモリマップの定義(ターゲット依存部)
53 ;
54
55.equ DFLRE, 007FC440H ; DFLREレジスタ
56
57.equ DB_BLOCK_ENABLE, 02D0FH
58
59;
60; 初期化ルーチン
61;
62 .section P, CODE
63
64 .global _start
65 .global _sta_ker
66 .global _software_init_hook
67 .global _hardware_init_hook
68 .global __kernel_istkpt
69 .global _vvector_table
70
71_start:
72 ;
73 ; 電源投入後はレベル0, 全割込み禁止状態である.
74 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
75 ; の初期化は行わない.
76 ;
77
78 ;
79 ; 内蔵ROM(データフラッシュ)領域の設定
80 ;
81 ; リセット後, データフラッシュ領域は読み出し禁止となっている
82 ; ため, 読み出し許可に設定する.
83 ;
84 mov.l #DFLRE, r5
85 mov.w #DB_BLOCK_ENABLE, [R5]
86
87 ;
88 ; スタックポインタの設定
89 ;
90 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
91 ; ユーザ領域を設定する.
92 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
93 ;
94 mov.l #__kernel_istkpt, r5
95 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定
96
97 ;
98 ; 可変ベクタテーブルの設定
99 ;
100 ; mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定
101 mvtc #_vvector_table, intb ; ベクタテーブルの設定
102
103 ;
104 ; ハードウェア固有の初期化ルーチンの呼出し
105 ;
106 mov.l #_hardware_init_hook, r5
107 cmp #0, r5
108 beq.b init_D
109 jsr r5
110
111 ;
112 ; 初期値あり変数領域の初期化
113 ;
114init_D:
115 mov.l #(_edata - _data), r3
116 cmp #0, r3
117 beq.b clear_B ; サイズ0なら初期化必要なし
118 mov.l #(_data), r1
119 mov.l #(_mdata), r2
120 smovf
121
122 ;
123 ; 初期値なし変数領域の初期化
124 ;
125clear_B:
126 mov.l #0, r2
127 mov.l #(_bss), r1
128 mov.l #(_ebss - _bss) , r3
129 sstr.b
130
131 ;
132 ; software_init_hook を呼出し(0 でない場合)
133 ;
134 ; ソフトウェア環境(特にライブラリ)に依存して必要な初期化処理
135 ; がある場合は,software_init_hook という関数を用意すればよい.
136 ;
137 mov.l #_software_init_hook, r5
138 cmp #0, r5
139 beq.b kernel_link
140 jsr r5
141
142 ;
143 ; カーネルスタート
144 ;
145kernel_link:
146 bra.a _sta_ker ; --> _sta_ker()
147
148 .end
149
Note: See TracBrowser for help on using the repository browser.