source: atk2-sc3-1.4.0-ntisr/arch/ccrh/ldscript.tf@ 172

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

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

  • Property svn:executable set to *
File size: 8.2 KB
Line 
1$
2$ TOPPERS ATK2
3$ Toyohashi Open Platform for Embedded Real-Time Systems
4$ Automotive Kernel Version 2
5$
6$ Copyright (C) 2014-2015 by Center for Embedded Computing Systems
7$ Graduate School of Information Science, Nagoya Univ., JAPAN
8$
9$ 上記著作権者
10は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
11$ ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
12$ 変・再é…
13å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
14$ (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15$ 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16$ スコード中に含まれていること.
17$ (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18$ 用できる形で再é…
19å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
20å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
21$ 者
22マニュアルなど)に,上記の著作権表示,この利用条件および下記
23$ の無保証規定を掲載すること.
24$ (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
25$ 用できない形で再é…
26å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
27$ と.
28$ (a) 再é…
29å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
30マニュアルなど)に,上記の著
31$ 作権表示,この利用条件および下記の無保証規定を掲載すること.
32$ (b) 再é…
33å¸ƒã®å½¢æ…
34‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
35$ 報告すること.
36$ (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37$ 害からも,上記著作権者
38およびTOPPERSプロジェクトをå…
39è²¬ã™ã‚‹ã“と.
40$ また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
41$ 由に基づく請求からも,上記著作権者
42およびTOPPERSプロジェクトを
43$ å…
44è²¬ã™ã‚‹ã“と.
45$
46$ AUTOSAR(AUTomotive Open System ARchitecture)は,AUTOSAR仕様に基づ
47$ いたソフトウェアを商用目的で利用する者
48に対して,AUTOSARパートナーに
49$ なることを求めている.
50$
51$ 本ソフトウェアは,無保証で提供されているものである.上記著作権者
52お
53$ よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
54$ に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
55$ アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
56$ の責任を負わない.
57$
58$ $Id: ldscript.tf 189 2015-06-26 01:54:57Z t_ishikawa $
59$
60
61$ =====================================================================
62$ リンカスクリプト(ldscript.py)の生成
63$ =====================================================================
64
65$
66$ 生成するファイルの指定
67$
68$FILE "ldscript.py"$
69# This file is generated by ccrh/ldscript.tf$NL$
70$NL$
71import os.path$NL$
72import os$NL$
73import shutil$NL$
74os.chdir(os.path.dirname(project.Path))$NL$
75proj_rel_dir = "../"$NL$
76common.Source(proj_rel_dir + "def.py")$NL$
77src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)$NL$
78# call common file$NL$
79common.Source(src_abs_path + "/arch/ccrh/common.py")$NL$
80$NL$
81
82$
83$ 変数の初期化
84$
85$reset_lma = 0$
86
87$provide_gp = 0$
88$data_flg = 0$
89
90$reg_initdata = REG.REGNAME[STANDARD_ROM]$
91$ROMtoRAMsection = "ROMtoRAMsection"$
92$AlignSection = "AlignSection"$
93
94# initialize variables$NL$
95$FOREACH regid REG.ORDER_LIST$
96 $REG.REGNAME[regid]$ = []$NL$
97$END$
98$ROMtoRAMsection$ = []$NL$
99$AlignSection$ = []$NL$
100$NL$
101
102$
103$ リンク指定の生成
104$
105# preprocess for OsMemorySection$NL$
106$ ターゲット依存のセクション記述の生成
107$IF ISFUNCTION("GENERATE_SECTION_FIRST")$
108 $GENERATE_SECTION_FIRST()$
109$END$
110
111$FOREACH moid MO_ORDER$
112 $IF MO.LINKER[moid]$
113$ // セクションの開始記述の生成
114 $IF (MO.SEFLAG[moid] & 0x01) != 0$
115$ // セクションをé…
116ç½®ã™ã‚‹ãƒªãƒ¼ã‚¸ãƒ§ãƒ³ã®å–å¾—
117 $reg = REG.REGNAME[MO.MEMREG[moid]]$
118 $IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
119 $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
120 $END$
121 $AlignSection$.append("$MO.SECTION[moid]$")$NL$
122 $END$
123
124$ // リンクするファイル記述の生成
125 $section_dscr = SECTION_DESCRIPTION(MO.SECTION[moid])$
126 $IF MO.TYPE[moid] == TOPPERS_ATTSEC$
127 $IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
128 $reg$.append("$MO.SECTION[moid]$.R")$NL$
129 $reg_initdata$.append("$MO.SECTION[moid]$")$NL$
130 $ROMtoRAMsection$.append($FORMAT("\'%1%=%1%.R\'", MO.SECTION[moid])$)$NL$
131 $ELSE$
132 $reg$.append("$MO.SECTION[moid]$")$NL$
133 $END$
134 $ELSE$
135$ // ユーザスタック領域
136 $reg$.append("$MO.SECTION[moid]$")$NL$
137 $END$
138
139$ // アライン記述の生成
140 $IF (MO.SEFLAG[moid] & 0x20) != 0$
141 $IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
142 $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
143 $END$
144 $AlignSection$.append("$MO.SECTION[moid]$")$NL$
145 $END$
146
147$ // メモリリージョン末でアラインさせるためのダミーセクションの生成
148 $IF (MO.SEFLAG[moid] & 0x80) != 0$
149 $IF !OMIT_IDATA && !EQ(MO.ILABEL[moid], "")$
150 $AlignSection$.append("$MO.SECTION[moid]$.R")$NL$
151 $END$
152 $AlignSection$.append("$MO.SECTION[moid]$")$NL$
153 $END$
154
155 $preid = moid$
156 $END$
157$END$
158$NL$
159
160# preprocess for OsLinkSection$NL$
161$FOREACH lsid RANGE(1, numls)$
162 $REG.REGNAME[LNKSEC.MEMREG[lsid]]$.append("$LNKSEC.SECTION[lsid]$")$NL$
163$END$
164$NL$
165
166sections = ""$NL$
167$FOREACH regid REG.ORDER_LIST$
168 if sections != "":$NL$
169 $TAB$sections += ","$NL$
170 sections += ",".join($REG.REGNAME[regid]$)$NL$
171 sections += $FORMAT("\"/%x\"", +REG.BASE[regid])$$NL$
172$END$
173
174$NL$
175wd_abs_path = os.path.abspath('..')$NL$
176project.Change(wd_abs_path + r'\atk2-sc3.mtpj')$NL$
177project.Close(True)$NL$
178inputstr = ReadFile('../atk2-sc3.mtpj')$NL$
179print sections$NL$
180# build.Link.SectionStartAddress = sections$NL$
181inputstr = NewSetItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
182inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
183print $ROMtoRAMsection$$NL$
184# build.Link.SectionROMtoRAM = $ROMtoRAMsection$$NL$
185inputstr = NewSetItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
186inputstr = ChangeItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
187print sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
188# build.Link.SectionAlignment = sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
189inputstr = NewSetItemXml(inputstr, 'LinkOptionAlignedSection-0',
190 "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
191inputstr = ChangeItemXml(inputstr, 'LinkOptionAlignedSection-0',
192 "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
193WriteFile('../atk2-sc3.mtpj', inputstr)$NL$
194$NL$
195inputstr = ReadFile('../cfg_pass4/cfg_pass4.mtsp')$NL$
196print sections$NL$
197# build.Link.SectionStartAddress = sections$NL$
198inputstr = NewSetItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
199inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', sections)$NL$
200print $ROMtoRAMsection$$NL$
201# build.Link.SectionROMtoRAM = $ROMtoRAMsection$$NL$
202inputstr = NewSetItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
203inputstr = ChangeItemXml(inputstr, 'LinkOptionRom-0', "\n".join($ROMtoRAMsection$))$NL$
204print sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
205# build.Link.SectionAlignment = sorted(set($AlignSection$), key=$AlignSection$.index)$NL$
206inputstr = NewSetItemXml(inputstr, 'LinkOptionAlignedSection-0',
207 "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
208inputstr = ChangeItemXml(inputstr, 'LinkOptionAlignedSection-0',
209 "\n".join(sorted(set($AlignSection$), key=$AlignSection$.index)))$NL$
210WriteFile('../cfg_pass4/cfg_pass4.mtsp', inputstr)$NL$
211$NL$
212wd_abs_path = os.path.abspath('..')$NL$
213project.Open(wd_abs_path + r'\atk2-sc3.mtpj')$NL$
214project.Change(wd_abs_path + r'\cfg\cfg.mtsp')$NL$
215$NL$
216
Note: See TracBrowser for help on using the repository browser.