mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
112 lines
5.0 KiB
HTML
112 lines
5.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!-- This is an automatically generated file. Do not edit.
|
|
This file is part of RGBDS.
|
|
|
|
Copyright (c) 2017-2018, Antonio Nino Diaz and RGBDS contributors.
|
|
|
|
SPDX-License-Identifier: MIT
|
|
-->
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta charset="utf-8"/>
|
|
<link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
|
|
<link rel="stylesheet" href="rgbds.css" type="text/css" media="all"/>
|
|
<title>RGBLINK(5)</title>
|
|
</head>
|
|
<body>
|
|
<table class="head">
|
|
<tr>
|
|
<td class="head-ltitle">RGBLINK(5)</td>
|
|
<td class="head-vol">File Formats Manual</td>
|
|
<td class="head-rtitle">RGBLINK(5)</td>
|
|
</tr>
|
|
</table>
|
|
<div class="manual-text">
|
|
<section class="Sh">
|
|
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
|
|
<code class="Nm">rgblink</code> —
|
|
<span class="Nd">linker script file format</span>
|
|
</section>
|
|
<section class="Sh">
|
|
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
|
|
The linker script is an external file that allows the user to specify the order
|
|
of sections at link time and in a centralized manner.
|
|
<p class="Pp">A linker script consists on a series of banks followed by a list
|
|
of sections and, optionally, commands. They can be lowercase or uppercase,
|
|
it is ignored. Any line can contain a comment starting with
|
|
‘<code class="Li">;</code>’ that ends at the end of the
|
|
line:</p>
|
|
<div class="Bd Pp Bd-indent">
|
|
<pre>
|
|
ROMX $F ; This is a comment
|
|
"Functions to read array"
|
|
ALIGN 8
|
|
"Array aligned to 256 bytes"
|
|
|
|
WRAMX 2
|
|
"Some variables"
|
|
</pre>
|
|
</div>
|
|
<p class="Pp">Numbers can be in decimal or hexadecimal format (the prefix is
|
|
‘<code class="Li">$</code>’). It is an error if any section
|
|
name or command is found before setting a bank.</p>
|
|
<p class="Pp">Files can be included by using the <code class="Ic">INCLUDE</code>
|
|
keyword, followed by a string with the path of the file that has to be
|
|
included.</p>
|
|
<p class="Pp">The possible bank types are: <code class="Cm">ROM0</code>,
|
|
<code class="Cm">ROMX</code>, <code class="Cm">VRAM</code>,
|
|
<code class="Cm">SRAM</code>, <code class="Cm">WRAM0</code>,
|
|
<code class="Cm">WRAMX</code>, <code class="Cm">OAM</code> and
|
|
<code class="Cm">HRAM</code>. Unless there is a single bank, which can occur
|
|
with types <code class="Cm">ROMX</code>, <code class="Cm">VRAM</code>,
|
|
<code class="Cm">SRAM</code> and <code class="Cm">WRAMX</code>, it is needed
|
|
to specify a bank number after the type.</p>
|
|
<p class="Pp">When a new bank statement is found, sections found after it will
|
|
be placed right from the beginning of that bank. If the linker script
|
|
switches to a different bank and then comes back to a previous one, it will
|
|
continue from the last address that was used.</p>
|
|
<p class="Pp">The only two commands are <code class="Ic">ORG</code> and
|
|
<code class="Ic">ALIGN</code>:</p>
|
|
<ul class="Bl-bullet">
|
|
<li><a class="permalink" href="#ORG"><code class="Ic" id="ORG">ORG</code></a>
|
|
sets the address in which new sections will be placed. It can not be lower
|
|
than the current address.</li>
|
|
<li><a class="permalink" href="#ALIGN"><code class="Ic" id="ALIGN">ALIGN</code></a>
|
|
will increase the address until it is aligned to the specified boundary
|
|
(it tries to set to 0 the number of bits specified after the command:
|
|
‘<code class="Li">ALIGN 8</code>’ will align to $100).</li>
|
|
</ul>
|
|
<p class="Pp"><b class="Sy">Note:</b> The bank, alignment, address and type of
|
|
sections can be specified both in the source code and in the linker script.
|
|
For a section to be able to be placed with the linker script, the bank,
|
|
address and alignment must be left unassigned in the source code or be
|
|
compatible with what is specified in the linker script. For example,
|
|
‘<code class="Li">ALIGN[8]</code>’ in the source code is
|
|
compatible with ‘<code class="Li">ORG $F00</code>’ in the
|
|
linker script.</p>
|
|
</section>
|
|
<section class="Sh">
|
|
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
|
|
ALSO</a></h1>
|
|
<a class="Xr" href="rgbasm.1.html">rgbasm(1)</a>, <a class="Xr" href="rgblink.1.html">rgblink(1)</a>,
|
|
<a class="Xr" href="rgbfix.1.html">rgbfix(1)</a>, <a class="Xr" href="rgbds.5.html">rgbds(5)</a>,
|
|
<a class="Xr" href="rgbds.7.html">rgbds(7)</a>
|
|
</section>
|
|
<section class="Sh">
|
|
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
|
|
<code class="Nm">rgblink</code> was originally written by Carsten
|
|
Sørensen as part of the ASMotor package, and was later packaged in
|
|
RGBDS by Justin Lloyd. It is now maintained by a number of contributors at
|
|
<a class="Lk" href="https://github.com/rednex/rgbds">https://github.com/rednex/rgbds</a>.
|
|
</section>
|
|
</div>
|
|
<table class="foot">
|
|
<tr>
|
|
<td class="foot-date">November 26, 2019</td>
|
|
<td class="foot-os">General</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|