Two pass build for on-demand paging now works

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@2896 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2010-08-29 14:27:58 +00:00
parent 8c36daf6a2
commit f7b1fbb045
9 changed files with 157 additions and 36 deletions
+39 -5
View File
@@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec">
<i>NuttX RTOS Porting Guide</i>
</font></big></h1>
<p>Last Updated: August 27, 2010</p>
<p>Last Updated: August 29, 2010</p>
</td>
</tr>
</table>
@@ -2178,6 +2178,7 @@ extern void up_ledoff(int led);
The start address of DRAM (virtual)</li>
</ul>
<h2>Build Options</h2>
<p>
General build options:
</p>
@@ -2206,9 +2207,9 @@ extern void up_ledoff(int led);
have been defined in the configurations <code>Make.defs</code> file.
</li>
</ul>
<h2>General OS setup</h2>
<p>
Building application code:
</p>
<ul>
<li>
<p>
@@ -2261,6 +2262,38 @@ build
It can be used, for example, to include makefile fragments (e.g., <code>.config</code> or <code>Make.defs</code>) or to set up include file paths.
</p>
</li>
</ul>
<p>
Two-pass Build Options.
If the 2 pass build option is selected, then these options configure the make system build a extra link object.
This link object is assumed to be an incremental (relative) link object, but could be a static library (archive)
(some modification to this Makefile would be required if CONFIG_PASS1_OBJECT is an archive).
Pass 1 1ncremental (relative) link objects should be put into the processor-specific source directory
where other link objects will be created - ff the pass1 obect is an archive, it could go anywhere.
</p>
<ul>
<li>
<code>CONFIG_BUILD_2PASS</code>:
Enables the two pass build options.
</li>
</ul>
<p>
When the two pass build option is enabled, the following also apply:
</p>
<ul>
<li>
<code>CONFIG_PASS1_OBJECT</code>: The name of the first pass object.
</li>
<li><code>CONFIG_PASS1_BUILDIR</code>:
The path, relative to the top NuttX build directory to directory that contains the Makefile to build the first pass object.
The Makefile must support the following targets:
<ul>
<li>The special target <code>arch/$(CONFIG_ARCH)/src/$(CONFIG_PASS1_OBJECT)</code>, and</li>
<li>The usual depend, clean, and distclean targets.</li>
</ul>
</ul>
<h2>General OS setup</h2>
<li>
<code>CONFIG_DEBUG</code>: enables built-in debug options
</li>
@@ -2434,7 +2467,8 @@ build
</ul>
<p>
If CONFIG_PAGING is selected, then the following also apply:
If CONFIG_PAGING is selected, then you will probabaly need <code>CONFIG_BUILD_2PASS</code> to correctly position
the code and the following configuration options also apply:
</p>
<ul>
<li>