source: atk2-sc3-1.4.0-ntisr/arch/v850_gcc/prc_mem.tf

Last change on this file was 172, checked in by ertl-ishikawa, 8 years ago

ATK2-SC3 1.4.0 RH850依存部 非信頼C2ISR対応を追加

  • Property svn:executable set to *
File size: 7.6 KB
Line 
1$ ======================================================================
2$
3$ TOPPERS ATK2
4$ Toyohashi Open Platform for Embedded Real-Time Systems
5$ Automotive Kernel Version 2
6$
7$ Copyright (C) 2013-2015 by Center for Embedded Computing Systems
8$ Graduate School of Information Science, Nagoya Univ., JAPAN
9$ Copyright (C) 2013 by Embedded and Real-Time Systems Laboratory
10$ Graduate School of Information Science, Nagoya Univ., 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$
57$ =====================================================================
58
59$
60$ パス4のプロセッサ依存テンプレート(V850 GCC/GHS用)
61$
62
63$
64$ ユーザスタック領域のセクションラベル名を返す
65$ ARGV[1]:タスクID
66$
67$FUNCTION SECTION_USTACK$
68 $RESULT = FORMAT("user_stack%s", ARGV[1])$
69$END$
70
71$
72$ 基本タスクのå…
73±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ã®ã‚»ã‚¯ã‚·ãƒ§ãƒ³ãƒ©ãƒ™ãƒ«å
74$ ARGV[1]:å…
75±æœ‰ã‚¹ã‚¿ãƒƒã‚¯ID(タスク優å…
76ˆåº¦)
77$
78$FUNCTION SECTION_SHARED_USTACK$
79 $RESULT = FORMAT("shared_user_stack%s", ARGV[1])$
80$END$
81
82$FUNCTION START_MO_SYMBOL$
83 $IF !EQ(MO.PLABEL[ARGV[1]], "")$
84 $RESULT = SYMBOL(CONCAT("__start_", MO.PLABEL[ARGV[1]]))$
85 $ELIF !EQ(MO.MLABEL[ARGV[1]], "")$
86 $RESULT = SYMBOL(CONCAT("__start_", MO.MLABEL[ARGV[1]]))$
87 $ELIF MO.LINKER[ARGV[1]]$
88 $ERROR$
89 MO $ARGV[1]$ do not have PLABEL and MLABEL
90 $END$
91 $END$
92$END$
93
94$FUNCTION LIMIT_MO_SYMBOL$
95 $IF !EQ(MO.PLABEL[ARGV[1]], "")$
96 $RESULT = SYMBOL(CONCAT("__limit_", MO.PLABEL[ARGV[1]]))$
97 $ELIF !EQ(MO.MLABEL[ARGV[1]], "")$
98 $RESULT = SYMBOL(CONCAT("__limit_", MO.MLABEL[ARGV[1]]))$
99 $ELIF MO.LINKER[ARGV[1]]$
100 $ERROR$
101 MO $ARGV[1]$ do not have PLABEL and MLABEL
102 $END$
103 $END$
104$END$
105
106$
107$ OSAP初期化コンテキストブロックのための宣言
108$
109$FUNCTION PREPARE_OSAPINICTXB$
110 $FILE "kernel_mem.c"$
111
112$ // ユーザスタック領域のラベル
113 $IF LENGTH(TSK.ID_LIST)$
114 $FOREACH tskid TSK.ID_LIST$
115 $IF !OSAP.TRUSTED[TSK.OSAPID[tskid]]$
116 extern uint8 $FORMAT("__start_user_stack%s", tskid)$;$NL$
117 extern uint8 $FORMAT("__limit_user_stack%s", tskid)$;$NL$
118 $END$
119 $END$
120 $END$
121$ // å…
122±æœ‰ãƒ¦ãƒ¼ã‚¶ã‚¹ã‚¿ãƒƒã‚¯é ˜åŸŸã®ãƒ©ãƒ™ãƒ«
123 $FOREACH tskpri RANGE(TMIN_TPRI, TMAX_TPRI)$
124 $IF LENGTH(shared_ustack_size[tskpri])$
125 extern uint8 $FORMAT("__start_shared_user_stack%s", tskpri)$;$NL$
126 extern uint8 $FORMAT("__limit_shared_user_stack%s", tskpri)$;$NL$
127 $END$
128 $END$
129
130 $IF LENGTH(OSAP.ID_LIST)$
131 $FOREACH domid OSAP.ID_LIST$
132 $IF !OSAP.TRUSTED[domid]$
133$ // 非信頼OSAP専有領域のラベル
134 $IF USE_MPU_SRPW_DATA$
135$ // å…
136±æœ‰ãƒªãƒ¼ãƒ‰å°‚有ライトデータ
137 extern uint8 $FORMAT("__start_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
138 extern uint8 $FORMAT("__limit_ram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
139 $END$
140 $IF USE_MPU_SRPW_SDATA$
141$ // å…
142±æœ‰ãƒªãƒ¼ãƒ‰å°‚有ライトショートデータ
143 extern uint8 $FORMAT("__start_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
144 extern uint8 $FORMAT("__limit_sram_%s_%x_%x", OSAP.LABEL[domid], +DEFAULT_ACPTN[domid], +TACP_SHARED)$;$NL$
145 $END$
146 $IF USE_MPU_PR_TEXT$
147$ // RX領域(専有リードテキスト)
148 extern uint8 __start_text_$OSAP.LABEL[domid]$;$NL$
149 extern uint8 __limit_text_$OSAP.LABEL[domid]$;$NL$
150 $END$
151 $IF USE_MPU_PR_SDATA$
152$ // R領域(専有リードショートデータ)
153 extern uint8 __start_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
154 extern uint8 __limit_sram_$OSAP.LABEL[domid]$_$FORMAT("%x", MEMATR_ROSDATA & ~TA_MEMINI)$;$NL$
155 $END$
156 $IF USE_MPU_PRW_DATA$
157$ // RWX領域(専有リードライトデータ)
158 extern uint8 __start_ram_$OSAP.LABEL[domid]$;$NL$
159 extern uint8 __limit_ram_$OSAP.LABEL[domid]$;$NL$
160 $END$
161 $IF USE_MPU_PRW_SDATA$
162$ // RWX領域(専有リードライトショートデータ)
163 extern uint8 __start_sram_$OSAP.LABEL[domid]$;$NL$
164 extern uint8 __limit_sram_$OSAP.LABEL[domid]$;$NL$
165 $END$
166 $END$
167 $END$
168 $NL$
169 $END$$NL$
170 $NL$
171$ データセクション初期化テーブルをROMにé…
172ç½®ã™ã‚‹
173$ rosdata領域はRAMにé…
174ç½®ã•ã‚Œã‚‹ãŸã‚ï¼Œãƒ‡ãƒ¼ã‚¿ã‚»ã‚¯ã‚·ãƒ§ãƒ³åˆæœŸåŒ–テーブルをsdata化すると
175$ データセクションの初期化に失敗する
176 extern const uint32 __attribute__((section(".rodata_kernel"), aligned(4))) tnum_datasec;$NL$
177 extern const DATASECINIB __attribute__((section(".rodata_kernel"), aligned(4))) datasecinib_table[];$NL$
178 extern const uint32 __attribute__((section(".rodata_kernel"), aligned(4))) tnum_bsssec;$NL$
179 extern const BSSSECINIB __attribute__((section(".rodata_kernel"), aligned(4))) bsssecinib_table[];$NL$
180$END$
181
182$INCLUDE "arch/v850_gcc/prc_mem_common.tf"$
183
Note: See TracBrowser for help on using the repository browser.