source: azure_iot_hub/trunk/asp3_dcre/arch/rx630_gcc/start.S@ 388

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

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/plain
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;* 上記著作権者
13は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
14;* ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
15;* 変・再é…
16å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
17;* (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
18;* 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
19;* スコード中に含まれていること.
20;* (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
21;* 用できる形で再é…
22å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
23å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
24;* 者
25マニュアルなど)に,上記の著作権表示,この利用条件および下記
26;* の無保証規定を掲載すること.
27;* (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
28;* 用できない形で再é…
29å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
30;* と.
31;* (a) 再é…
32å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
33マニュアルなど)に,上記の著
34;* 作権表示,この利用条件および下記の無保証規定を掲載すること.
35;* (b) 再é…
36å¸ƒã®å½¢æ…
37‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
38;* 報告すること.
39;* (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
40;* 害からも,上記著作権者
41およびTOPPERSプロジェクトをå…
42è²¬ã™ã‚‹ã“と.
43;* また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
44;* 由に基づく請求からも,上記著作権者
45およびTOPPERSプロジェクトを
46;* å…
47è²¬ã™ã‚‹ã“と.
48;*
49;* 本ソフトウェアは,無保証で提供されているものである.上記著作権者
50お
51;* よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
52;* に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
53;* アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
54;* の責任を負わない.
55;*
56;* @(#) $Id: start.S 388 2019-05-22 11:25:18Z coas-nagasima $
57;*
58
59#define TOPPERS_MACRO_ONLY
60#define UINT_C(val) (val) /* uint_t型の定数を作るマクロ */
61#define ULONG_C(val) (val) /* ulong_t型の定数を作るマクロ */
62#define CAST(type, val) (val) /* 型キャストを行うマクロ */
63#include "kernel_impl.h"
64#include "sectrx.inc"
65
66 ;
67 ; メモリマップの定義(ターゲット依存部)
68 ;
69
70.equ DFLRE, 007FC440H ; DFLREレジスタ
71
72.equ DB_BLOCK_ENABLE, 02D0FH
73
74;
75; 初期化ルーチン
76;
77 .section P, CODE
78
79 .global _start
80 .global _sta_ker
81 .global _software_init_hook
82 .global _hardware_init_hook
83 .global __kernel_istkpt
84 .global _vvector_table
85
86_start:
87 ;
88 ; 電源投å…
89¥å¾Œã¯ãƒ¬ãƒ™ãƒ«0, å…
90¨å‰²è¾¼ã¿ç¦æ­¢çŠ¶æ…
91‹ã§ã‚ã‚‹.
92 ; カーネルでは高速割込みを使用しないため、BPC, BPSW及びFINTV
93 ; の初期化は行わない.
94 ;
95
96 ;
97 ; 内
98蔵ROM(データフラッシュ)領域の設定
99 ;
100 ; リセット後, データフラッシュ領域は読み出し禁止となっている
101 ; ため, 読み出し許可に設定する.
102 ;
103 mov.l #DFLRE, r5
104 mov.w #DB_BLOCK_ENABLE, [R5]
105
106 ;
107 ; スタックポインタの設定
108 ;
109 ; ユーザにて非タスクコンテキスト用スタック領域を用意した場合,
110 ; ユーザ領域を設定する.
111 ; kernel_cfg.cにて"_kernel_istkpt"の値を決定する.
112 ;
113 mov.l #__kernel_istkpt, r5
114 mov.l [r5], r0 ; 非タスクコンテキスト用スタック領域を設定
115
116 ;
117 ; 可変ベクタテーブルの設定
118 ;
119 ; mvtc #VVECTOR_TOP, intb ; ベクタテーブルの設定
120 mvtc #_vvector_table, intb ; ベクタテーブルの設定
121
122 ;
123 ; ハードウェア固有の初期化ルーチンの呼出し
124 ;
125 mov.l #_hardware_init_hook, r5
126 cmp #0, r5
127 beq.b init_D
128 jsr r5
129
130 ;
131 ; 初期値あり変数領域の初期化
132 ;
133init_D:
134 mov.l #(_edata - _data), r3
135 cmp #0, r3
136 beq.b clear_B ; サイズ0なら初期化必
137要なし
138 mov.l #(_data), r1
139 mov.l #(_mdata), r2
140 smovf
141
142 ;
143 ; 初期値なし変数領域の初期化
144 ;
145clear_B:
146 mov.l #0, r2
147 mov.l #(_bss), r1
148 mov.l #(_ebss - _bss) , r3
149 sstr.b
150
151 ;
152 ; software_init_hook を呼出し(0 でない場合)
153 ;
154 ; ソフトウェア環境(特にライブラリ)に依存して必
155要な初期化処理
156 ; がある場合は,software_init_hook という関数を用意すればよい.
157 ;
158 mov.l #_software_init_hook, r5
159 cmp #0, r5
160 beq.b kernel_link
161 jsr r5
162
163 ;
164 ; カーネルスタート
165 ;
166kernel_link:
167 bra.a __sta_ker ; --> __sta_ker()
168
169 .end
170
Note: See TracBrowser for help on using the repository browser.