mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 20:08:15 +08:00
Create configs/ dir; separate board configuration from processor architecture
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@126 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -69,3 +69,9 @@
|
|||||||
* Some Documentation updates
|
* Some Documentation updates
|
||||||
* Added support for the Neuros OSD / DM320
|
* Added support for the Neuros OSD / DM320
|
||||||
|
|
||||||
|
0.2.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
* Created the configs/ directory; separated board configuration
|
||||||
|
from processor architecture logic
|
||||||
|
* Started m68322
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -430,6 +430,10 @@ Other memory:
|
|||||||
* Some Documentation updates
|
* Some Documentation updates
|
||||||
* Added support for the Neuros OSD / DM320
|
* Added support for the Neuros OSD / DM320
|
||||||
|
|
||||||
|
0.2.2 2007-xx-xx Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||||
|
* Created the configs/ directory; separated board configuration
|
||||||
|
from processor architecture logic
|
||||||
|
* Started m68322
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
|
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</b></big>
|
</b></big>
|
||||||
<p><small>by</small></p>
|
<p><small>by</small></p>
|
||||||
<p>Gregory Nutt</p>
|
<p>Gregory Nutt</p>
|
||||||
<p><small>Last Update: March 20, 2007</small></p>
|
<p><small>Last Update: March 22, 2007</small></p>
|
||||||
</center>
|
</center>
|
||||||
|
|
||||||
<center><h1>Table of Contents</h1></center>
|
<center><h1>Table of Contents</h1></center>
|
||||||
@@ -26,19 +26,25 @@
|
|||||||
<li>2.1 <a href="#DirStructDocumentation">Documentation</a></li>
|
<li>2.1 <a href="#DirStructDocumentation">Documentation</a></li>
|
||||||
<l1>2.2 <a href="#DirStructArch">arch</a></li>
|
<l1>2.2 <a href="#DirStructArch">arch</a></li>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#sudirectorystructure">2.2.1 Subdirectory Structure</a></li>
|
<li><a href="#archdirectorystructure">2.2.1 Subdirectory Structure</a></li>
|
||||||
<li><a href="#summaryoffiles">2.2.2 Summary of Files</a></li>
|
<li><a href="#summaryofarchfiles">2.2.2 Summary of Files</a></li>
|
||||||
<li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li>
|
<li><a href="#supportedarchitectures">2.2.3 Supported Architectures</a></li>
|
||||||
<li><a href="#configuringnuttx">2.2.4 Configuring NuttX</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<li>2.3 <a href="#DirStructDrivers">drivers</a></li>
|
<li>2.3 <a href="#DirStructConfigs">configs/</a></li>
|
||||||
<li>2.4 <a href="#DirStructExamples">examples</a></li>
|
<ul>
|
||||||
<li>2.5 <a href="#DirStructFs">fs</a></li>
|
<li><a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a></li>
|
||||||
<li>2.6 <a href="#DirStructInclude">include</a></li>
|
<li><a href="#summaryofconfigfiles">2.3.2 Summary of Files</a></li>
|
||||||
<li>2.7 <a href="#DirStructLib">lib</a></li>
|
<li><a href="#supportedboards">2.3.3 Supported Boards</a></li>
|
||||||
<li>2.8 <a href="#DirStructMm">mm</a></li>
|
<li><a href="#configuringnuttx">2.3.4 Configuring NuttX</a></li>
|
||||||
<li>2.9 <a href="#DirStructSched">sched</a></li>
|
</ul>
|
||||||
<li>2.10 <a href="#DirStructDrivers">tools</a></li>
|
<li>2.4 <a href="#DirStructDrivers">drivers</a></li>
|
||||||
|
<li>2.5 <a href="#DirStructExamples">examples</a></li>
|
||||||
|
<li>2.6 <a href="#DirStructFs">fs</a></li>
|
||||||
|
<li>2.7 <a href="#DirStructInclude">include</a></li>
|
||||||
|
<li>2.8 <a href="#DirStructLib">lib</a></li>
|
||||||
|
<li>2.9 <a href="#DirStructMm">mm</a></li>
|
||||||
|
<li>2.10 <a href="#DirStructSched">sched</a></li>
|
||||||
|
<li>2.11 <a href="#DirStructTools">tools</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li>
|
<li>3.0 <a href="#DirectoryConfiAndBuild">Configuring and Building</a></li>
|
||||||
<li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li>
|
<li>4.0 <a href="#ArchAPIs">Architecture APIs</a></li>
|
||||||
@@ -101,13 +107,16 @@ below and discussed in the following paragraphs:</p>
|
|||||||
|-- <a href="#DirStructDocumentation">Documentation</a>
|
|-- <a href="#DirStructDocumentation">Documentation</a>
|
||||||
| `-- <i>(documentation files)</i>
|
| `-- <i>(documentation files)</i>
|
||||||
|-- <a href="#DirStructArch">arch</a>
|
|-- <a href="#DirStructArch">arch</a>
|
||||||
| |-- <i>(architecture)</i>
|
| |-- <i><arch-name></i>
|
||||||
|
| | |-- include
|
||||||
|
| | `-- src
|
||||||
|
| `-- <i><:;other-architectures></i>
|
||||||
|
|-- <a href="#DirStructConfigs">configs</a>
|
||||||
|
| |-- <i><board-name></i>
|
||||||
| | |-- Make.defs
|
| | |-- Make.defs
|
||||||
| | |-- defconfig
|
| | |-- defconfig
|
||||||
| | |-- include
|
| | `-- setenv.sh
|
||||||
| | |-- setenv.sh
|
| `-- <i><:;other-architectures></i>
|
||||||
| | `-- src
|
|
||||||
| `-- <i>(other architectures)</i>
|
|
||||||
|-- <a href="#DirStructDrivers">drivers</a>
|
|-- <a href="#DirStructDrivers">drivers</a>
|
||||||
| |-- Makefile
|
| |-- Makefile
|
||||||
| `-- <i>(driver source files)</i>
|
| `-- <i>(driver source files)</i>
|
||||||
@@ -149,68 +158,32 @@ below and discussed in the following paragraphs:</p>
|
|||||||
|
|
||||||
<h2>2.2 <a name="DirStructArch">arch</a></h2>
|
<h2>2.2 <a name="DirStructArch">arch</a></h2>
|
||||||
|
|
||||||
<h3><a name="sudirectorystructure">2.2.1 Subdirectory Structure</a></h3>
|
<h3><a name="archdirectorystructure">2.2.1 Subdirectory Structure</a></h3>
|
||||||
<p>
|
<p>
|
||||||
This directory contains several sub-directories, each containing
|
This directory contains several sub-directories, each containing
|
||||||
architecture-specific logic.
|
architecture-specific logic.
|
||||||
The task of porting NuttX to a new processor or board consists of
|
The task of porting NuttX to a new processor consists of
|
||||||
add a new sudirectory under <code>arch/</code> containing logic specific
|
add a new sudirectory under <code>arch/</code> containing logic specific
|
||||||
to the new architecuture.
|
to the new architecuture.
|
||||||
|
The complete board port in is defined by the architecture-specific code in this
|
||||||
|
directory (plus the board-specific configurations in the <code>config/</code>
|
||||||
|
subdirectory).
|
||||||
Each architecture must provide a subdirectory, <<i>arch-name</i>>
|
Each architecture must provide a subdirectory, <<i>arch-name</i>>
|
||||||
under <code>arch/</code> with the folling characteristics:
|
under <code>arch/</code> with the following characteristics:
|
||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
<<i>arch-name</i>>
|
<<i>arch-name</i>>
|
||||||
|-- Make.defs
|
|
||||||
|-- defconfig
|
|
||||||
|-- setenv.sh
|
|
||||||
|-- include
|
|-- include
|
||||||
| |-- arch.h
|
| |-- arch.h
|
||||||
| |-- irq.h
|
| |-- irq.h
|
||||||
| `-- types.h
|
| `-- types.h
|
||||||
`-- src
|
`-- src
|
||||||
|-- Makefile
|
|-- Makefile
|
||||||
`-- (architecture-specific source files)
|
`-- <i>(architecture-specific source files)</i>
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
|
|
||||||
<h3><a name="summaryoffiles">2.2.2 Summary of Files</a></h3>
|
<h3><a name="summaryofarchfiles">2.2.2 Summary of Files</a></h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
|
||||||
<code>Make.defs</code>: This makefile fragment provides architecture and
|
|
||||||
tool-specific build options. It will be included by all other
|
|
||||||
makefiles in the build (once it is installed). This make fragment
|
|
||||||
should define:
|
|
||||||
<ul>
|
|
||||||
<li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li>
|
|
||||||
<li>Tool options: CFLAGS, LDFLAGS</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
When this makefile fragment runs, it will be passed TOPDIR which
|
|
||||||
is the path to the root directory of the build. This makefile
|
|
||||||
fragment may include ${TOPDIR}/.config to perform configuration
|
|
||||||
specific settings. For example, the CFLAGS will most likely be
|
|
||||||
different if CONFIG_DEBUG=y.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<code>defconfig</code>: This is a configuration file similar to the Linux
|
|
||||||
configuration file. In contains varialble/value pairs like:
|
|
||||||
<ul>
|
|
||||||
<li><code>CONFIG_VARIABLE</code>=value</li>
|
|
||||||
</ul>
|
|
||||||
<p>
|
|
||||||
This configuration file will be used at build time:
|
|
||||||
</p>
|
|
||||||
<ol>
|
|
||||||
<li>As a makefile fragment included in other makefiles, and</li>
|
|
||||||
<li>to generate <code>include/nuttx/config.h</code> which is included by
|
|
||||||
most C files in the system.</li>
|
|
||||||
</ol>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<code>setenv.sh</code>: This is a script that you can include that will be installed at
|
|
||||||
the toplevel of the directory structure and can be sourced to set any
|
|
||||||
necessary environment variables.
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<code>include/arch.h</code>:
|
<code>include/arch.h</code>:
|
||||||
This is a hook for any architecture specific definitions that may
|
This is a hook for any architecture specific definitions that may
|
||||||
@@ -273,6 +246,12 @@ below and discussed in the following paragraphs:</p>
|
|||||||
the final link with <code>libup.a</code> and other system archives to generate the
|
the final link with <code>libup.a</code> and other system archives to generate the
|
||||||
final executable.
|
final executable.
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<i>(architecture-specific source files)</i>.
|
||||||
|
The file <code>include/nuttx/arch.h</code> identifies all of the APIs that must
|
||||||
|
be provided by the architecture specific logic. (It also includes
|
||||||
|
<code>arch/<arch-name>/arch.h</code> as described above).
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3>
|
<h3><a name="supportedarchitectures">2.2.3 Supported Architectures</a></h3>
|
||||||
@@ -284,33 +263,126 @@ below and discussed in the following paragraphs:</p>
|
|||||||
round robin scheduler) Otherwise, it is complete.
|
round robin scheduler) Otherwise, it is complete.
|
||||||
<li><code>arch/c5471</code>:
|
<li><code>arch/c5471</code>:
|
||||||
TI TMS320C5471 (also called TMS320DM180 or just C5471).
|
TI TMS320C5471 (also called TMS320DM180 or just C5471).
|
||||||
NuttX operates on the ARM7 of this dual core processor. This port
|
NuttX operates on the ARM7 of this dual core processor.
|
||||||
uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*.
|
This port is complete, verified, and included in the NuttX release 0.1.1.
|
||||||
This port is complete, verified, and included in the NuttX release.
|
|
||||||
<li><code>arch/dm320</code>:
|
<li><code>arch/dm320</code>:
|
||||||
TI TMS320DM320 (also called just DM320).
|
TI TMS320DM320 (also called just DM320).
|
||||||
NuttX operates on the ARM9EJS of this dual core processor.
|
NuttX operates on the ARM9EJS of this dual core processor.
|
||||||
This port uses the Neuros OSD with a GNU arm-elf toolchain*:
|
This port complete, verified, and included in the NuttX release 0.2.1.
|
||||||
see http://wiki.neurostechnology.com/index.php/Developer_Welcome .
|
<li><code>arch/m68322</code>
|
||||||
STATUS: This port is code complete but totally untested due to
|
A work in progress.</li>
|
||||||
hardware issues with my OSD.
|
|
||||||
<li><code>arch/pjrc-8051</code>:
|
<li><code>arch/pjrc-8051</code>:
|
||||||
8051 Microcontroller. This port uses the PJRC 87C52 development system
|
8051 Microcontroller. This port is not quite ready for prime time.</li>
|
||||||
and the SDCC toolchain. This port is not quite ready for prime time.
|
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
Other ports for the for the TI TMS320DM270 and for MIPS are in various states
|
Other ports for the for the TI TMS320DM270 and for MIPS are in various states
|
||||||
of progress
|
of progress
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3><a name="configuringnuttx">2.2.4 Configuring NuttX</a></h3>
|
<h2>2.3 <a name="DirStructConfigs">configs</a></h2>
|
||||||
|
<p>
|
||||||
|
The <code>configs/</code> subdirectory contains configuration data for each board.
|
||||||
|
These board-specific configurations plus the architecture-specific configurations in
|
||||||
|
the <code>arch/</code> subdirectory complete define a customized port of NuttX.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3><a name="configsdirectorystructure">2.3.1 Subdirectory Structure</a></h3>
|
||||||
|
<p>
|
||||||
|
The configs directory contains board specific configuration files. Each board must
|
||||||
|
provide a subdirectory <board-name> under <code>configs/</code> with the following characteristics:
|
||||||
|
</p>
|
||||||
|
<ul><pre>
|
||||||
|
<<i>board-name</i>>
|
||||||
|
|-- Make.defs
|
||||||
|
|-- defconfig
|
||||||
|
`-- setenv.sh
|
||||||
|
</pre></ul>
|
||||||
|
|
||||||
|
<h3><a name="#summaryofconfigfiles">2.3.2 Summary of Files</a></h3>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<code>Make.defs</code>: This makefile fragment provides architecture and
|
||||||
|
tool-specific build options. It will be included by all other
|
||||||
|
makefiles in the build (once it is installed). This make fragment
|
||||||
|
should define:
|
||||||
|
<ul>
|
||||||
|
<li>Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP</li>
|
||||||
|
<li>Tool options: CFLAGS, LDFLAGS</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
When this makefile fragment runs, it will be passed TOPDIR which
|
||||||
|
is the path to the root directory of the build. This makefile
|
||||||
|
fragment may include ${TOPDIR}/.config to perform configuration
|
||||||
|
specific settings. For example, the CFLAGS will most likely be
|
||||||
|
different if CONFIG_DEBUG=y.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>defconfig</code>: This is a configuration file similar to the Linux
|
||||||
|
configuration file. In contains varialble/value pairs like:
|
||||||
|
<ul>
|
||||||
|
<li><code>CONFIG_VARIABLE</code>=value</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
This configuration file will be used at build time:
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
<li>As a makefile fragment included in other makefiles, and</li>
|
||||||
|
<li>to generate <code>include/nuttx/config.h</code> which is included by
|
||||||
|
most C files in the system.</li>
|
||||||
|
</ol>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<code>setenv.sh</code>: This is a script that you can include that will be installed at
|
||||||
|
the toplevel of the directory structure and can be sourced to set any
|
||||||
|
necessary environment variables.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3><a name="#supportedboards">2.3.3 Supported Boards</a></h3>
|
||||||
|
<ul>
|
||||||
|
<li><code>configs/sim</code>:
|
||||||
|
A user-mode port of NuttX to the x86 Linux platform is available.
|
||||||
|
The purpose of this port is primarily to support OS feature developement.
|
||||||
|
This port does not support interrupts or a real timer (and hence no
|
||||||
|
round robin scheduler) Otherwise, it is complete.</li>
|
||||||
|
|
||||||
|
<li><code>configs/c5471evm</code>:
|
||||||
|
This is a port to the Spectrum Digital C5471 evaluation board. The
|
||||||
|
C5471 is a dual core processor from TI with an ARM7TDMI general purpose
|
||||||
|
processor and a c54 SDP. NuttX runs on the ARM core and is built with
|
||||||
|
with a GNU arm-elf toolchain*. This port is complete, verified, and
|
||||||
|
included in the NuttX release.</li>
|
||||||
|
|
||||||
|
<li><code>configs/ntosd-dm320</code>:
|
||||||
|
This port uses the Neuros OSD with a GNU arm-elf toolchain*.
|
||||||
|
See <a href="http://wiki.neurostechnology.com/index.php/Developer_Welcome">Neuros Wiki</a>
|
||||||
|
for futher information.
|
||||||
|
NuttX operates on the ARM9EJS of this dual core processor.
|
||||||
|
STATUS: This port is code complete, verified, and included in the
|
||||||
|
NuttX 0.2.1 release.</li>
|
||||||
|
|
||||||
|
<li><code>configs/m68322evb</code>:
|
||||||
|
This is a work in progress for the venerable m68322evb board from
|
||||||
|
Motorola.</li>
|
||||||
|
|
||||||
|
<li><code>configs/pjrc-8051</code>:
|
||||||
|
8051 Microcontroller. This port uses the PJRC 87C52 development system
|
||||||
|
and the SDCC toolchain. This port is not quite ready for prime time.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p><small><blockquote>
|
||||||
|
* A customized version of the <a href="http://www.buildroot.org">buildroot</a>
|
||||||
|
is available to build these toolchains.
|
||||||
|
</blockquote></small></p>
|
||||||
|
|
||||||
|
<h3><a name="configuringnuttx">2.3.4 Configuring NuttX</a></h3>
|
||||||
<p>
|
<p>
|
||||||
Configuring NuttX requires only copying:
|
Configuring NuttX requires only copying:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<code>arch/<<i>arch-name</i>>/Make.def</code> to <code>${TOPDIR}/Make.defs</code>,
|
<code>configs/<<i>board-name</i>>/Make.def</code> to <code>${TOPDIR}/Make.defs</code>,
|
||||||
<code>arch/<<i>arch-name</i>>/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and
|
<code>configs/<<i>board-name</i>>/setenv.sh</code> to <code>${TOPDIR}/setenv.sh</code>, and
|
||||||
<code.arch/<<i>arch-name</i>>/defconfig</code> to ${TOPDIR}/.config</code>
|
<code>configs/<<i>board-name</i>>/defconfig</code> to ${TOPDIR}/.config</code>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
There is a script that automates these steps. The following steps will
|
There is a script that automates these steps. The following steps will
|
||||||
@@ -318,22 +390,22 @@ below and discussed in the following paragraphs:</p>
|
|||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
cd tools
|
cd tools
|
||||||
./configure.sh <<i>arch-name</i>>
|
./configure.sh <<i>board-name</i>>
|
||||||
</pre></ul>
|
</pre></ul>
|
||||||
|
|
||||||
<h2>2.3 <a name="DirStructDrivers">drivers</a></h2>
|
<h2>2.4 <a name="DirStructDrivers">drivers</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This directory holds architecture-independent device drivers.
|
This directory holds architecture-independent device drivers.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.4 <a name="DirStructExamples">examples</a></h2>
|
<h2>2.5 <a name="DirStructExamples">examples</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Example and test programs to build against.
|
Example and test programs to build against.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.5 <a name="DirStructFs">fs</a></h2>
|
<h2>2.6 <a name="DirStructFs">fs</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This directory contains the NuttX filesystem.
|
This directory contains the NuttX filesystem.
|
||||||
@@ -345,7 +417,7 @@ below and discussed in the following paragraphs:</p>
|
|||||||
in a file-system-like name space.
|
in a file-system-like name space.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.6 <a name="DirStructInclude">include</a></h2>
|
<h2>2.7 <a name="DirStructInclude">include</a></h2>
|
||||||
<p>
|
<p>
|
||||||
This directory holds NuttX header files.
|
This directory holds NuttX header files.
|
||||||
Standard header files file retained in can be included in the <i>normal</i> fashion:
|
Standard header files file retained in can be included in the <i>normal</i> fashion:
|
||||||
@@ -356,26 +428,26 @@ below and discussed in the following paragraphs:</p>
|
|||||||
etc.
|
etc.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h2>2.7 <a name="DirStructLib">lib</a></h2>
|
<h2>2.8 <a name="DirStructLib">lib</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This directory holds a collection of standard libc-like functions with custom
|
This directory holds a collection of standard libc-like functions with custom
|
||||||
interfaces into Nuttx.
|
interfaces into Nuttx.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.8 <a name="DirStructMm">mm</a></h2>
|
<h2>2.9 <a name="DirStructMm">mm</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This is the NuttX memory manager.
|
This is the NuttX memory manager.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.9 <a name="DirStructSched">sched</a></h2>
|
<h2>2.10 <a name="DirStructSched">sched</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The files forming core of the NuttX RTOS reside here.
|
The files forming core of the NuttX RTOS reside here.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>2.10 <a name="DirStructDrivers">tools</a></h2>
|
<h2>2.11 <a name="DirStructTools">tools</a></h2>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
This directory holds a collection of tools and scripts to simplify
|
This directory holds a collection of tools and scripts to simplify
|
||||||
|
|||||||
@@ -54,8 +54,8 @@ all: $(BIN)
|
|||||||
tools/mkconfig:
|
tools/mkconfig:
|
||||||
$(MAKE) -C tools -f Makefile.mkconfig TOPDIR=$(TOPDIR) mkconfig
|
$(MAKE) -C tools -f Makefile.mkconfig TOPDIR=$(TOPDIR) mkconfig
|
||||||
|
|
||||||
include/nuttx/config.h: $(ARCH_DIR)/defconfig tools/mkconfig
|
include/nuttx/config.h: $(TOPDIR)/.config tools/mkconfig
|
||||||
tools/mkconfig $(ARCH_DIR) > include/nuttx/config.h
|
tools/mkconfig $(TOPDIR) > include/nuttx/config.h
|
||||||
|
|
||||||
include/arch: include/nuttx/config.h
|
include/arch: include/nuttx/config.h
|
||||||
ln -sf $(TOPDIR)/$(ARCH_DIR)/include include/arch
|
ln -sf $(TOPDIR)/$(ARCH_DIR)/include include/arch
|
||||||
|
|||||||
@@ -43,9 +43,6 @@ o Documentation
|
|||||||
|
|
||||||
o Build system
|
o Build system
|
||||||
- Something leaves garbage link 'include' in arch/*/include
|
- Something leaves garbage link 'include' in arch/*/include
|
||||||
- Separate configurations from architectures. arch/* contains
|
|
||||||
generic logic. Like arch/armnommu, arch/arm, arch/805x, etc.
|
|
||||||
config/* has like config/pjrc-8052, config/c5471, etc.
|
|
||||||
|
|
||||||
o Applications & Tests
|
o Applications & Tests
|
||||||
|
|
||||||
|
|||||||
+12
-159
@@ -18,14 +18,14 @@ arch/<arch-name>/arch.h as described below).
|
|||||||
Directory Structure
|
Directory Structure
|
||||||
^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
The arch directory contains architecture specific logic. Each architecture must
|
The arch directory contains architecture specific logic. The complete
|
||||||
provide a subdirectory <arch-name> under arch/ with the folling characteristics:
|
board port in is defined by the architecture-specific code in this
|
||||||
|
directory (plus the board-specific configurations in the config/
|
||||||
|
subdirectory). Each architecture must provide a subdirectory <arch-name>
|
||||||
|
under arch/ with the following characteristics:
|
||||||
|
|
||||||
|
|
||||||
<arch-name>
|
<arch-name>
|
||||||
|-- Make.defs
|
|
||||||
|-- defconfig
|
|
||||||
|-- setenv.sh
|
|
||||||
|-- include
|
|-- include
|
||||||
| |-- arch.h
|
| |-- arch.h
|
||||||
| |-- irq.h
|
| |-- irq.h
|
||||||
@@ -37,136 +37,6 @@ provide a subdirectory <arch-name> under arch/ with the folling characteristics:
|
|||||||
Summary of Files
|
Summary of Files
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Make.defs -- This makefile fragment provides architecture and
|
|
||||||
tool-specific build options. It will be included by all other
|
|
||||||
makefiles in the build (once it is installed). This make fragment
|
|
||||||
should define:
|
|
||||||
|
|
||||||
Tools: CC, LD, AR, NM, OBJCOPY, OBJDUMP
|
|
||||||
Tool options: CFLAGS, LDFLAGS
|
|
||||||
|
|
||||||
When this makefile fragment runs, it will be passed TOPDIR which
|
|
||||||
is the path to the root directory of the build. This makefile
|
|
||||||
fragment may include ${TOPDIR}/.config to perform configuration
|
|
||||||
specific settings. For example, the CFLAGS will most likely be
|
|
||||||
different if CONFIG_DEBUG=y.
|
|
||||||
|
|
||||||
defconfig -- This is a configuration file similar to the Linux
|
|
||||||
configuration file. In contains varialble/value pairs like:
|
|
||||||
|
|
||||||
CONFIG_VARIABLE=value
|
|
||||||
|
|
||||||
This configuration file will be used at build time:
|
|
||||||
|
|
||||||
(1) as a makefile fragment included in other makefiles, and
|
|
||||||
(2) to generate include/nuttx/config.h which is included by
|
|
||||||
most C files in the system.
|
|
||||||
|
|
||||||
The following variables are recognized by the build (you may
|
|
||||||
also include architecture-specific settings).
|
|
||||||
|
|
||||||
Architecture selection:
|
|
||||||
|
|
||||||
CONFIG_ARCH - identifies the arch subdirectory
|
|
||||||
CONFIG_ARCH_name - for use in C code
|
|
||||||
|
|
||||||
General OS setup
|
|
||||||
|
|
||||||
CONFIG_EXAMPLE - identifies the subdirectory in examples
|
|
||||||
that will be used in the build
|
|
||||||
CONFIG_DEBUG - enables built-in debug options
|
|
||||||
CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
|
||||||
CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
|
||||||
time console output
|
|
||||||
CONFIG_MM_REGIONS - If the architecture includes multiple
|
|
||||||
regions of memory to allocate from, this specifies the
|
|
||||||
number of memory regions that the memory manager must
|
|
||||||
handle and enables the API mm_addregion(start, end);
|
|
||||||
CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
|
||||||
this number of milliseconds; Round robin scheduling can
|
|
||||||
be disabled by setting this value to zero.
|
|
||||||
CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
|
||||||
scheduler to monitor system performance
|
|
||||||
CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
|
||||||
task name to save in the TCB. Useful if scheduler
|
|
||||||
instrumentation is selected. Set to zero to disable.
|
|
||||||
CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
|
||||||
Used to initialize the internal time logic.
|
|
||||||
CONFIG_JULIAN_TIME - Enables Julian time conversions
|
|
||||||
CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
|
||||||
provides /dev/console. Enables stdout, stderr, stdin.
|
|
||||||
|
|
||||||
The following can be used to disable categories of APIs supported
|
|
||||||
by the OS. If the compiler supports weak functions, then it
|
|
||||||
should not be necessary to disable functions unless you want to
|
|
||||||
restrict usage of those APIs.
|
|
||||||
|
|
||||||
There are certain dependency relationships in these features.
|
|
||||||
|
|
||||||
o mq_notify logic depends on signals to awaken tasks
|
|
||||||
waiting for queues to become full or empty.
|
|
||||||
o pthread_condtimedwait() depends on signals to wake
|
|
||||||
up waiting tasks.
|
|
||||||
|
|
||||||
CONFIG_DISABLE_CLOCK, CONFIG_DISABLE_POSIX_TIMERS, CONFIG_DISABLE_PTHREAD.
|
|
||||||
CONFIG_DISABLE_SIGNALS, CONFIG_DISABLE_MQUEUE
|
|
||||||
|
|
||||||
|
|
||||||
Misc libc settings
|
|
||||||
|
|
||||||
CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
|
||||||
little smaller if we do not support fieldwidthes
|
|
||||||
|
|
||||||
Allow for architecture optimized implementations
|
|
||||||
|
|
||||||
The architecture can provide optimized versions of the
|
|
||||||
following to improve sysem performance
|
|
||||||
|
|
||||||
CONFIG_ARCH_MEMCPY, CONFIG_ARCH_MEMCMP, CONFIG_ARCH_MEMMOVE
|
|
||||||
CONFIG_ARCH_MEMSET, CONFIG_ARCH_STRCMP, CONFIG_ARCH_STRCPY
|
|
||||||
CONFIG_ARCH_STRNCPY, CONFIG_ARCH_STRLEN, CONFIG_ARCH_BZERO
|
|
||||||
CONFIG_ARCH_KMALLOC, CONFIG_ARCH_KZMALLOC, CONFIG_ARCH_KFREE
|
|
||||||
|
|
||||||
Sizes of configurable things (0 disables)
|
|
||||||
|
|
||||||
CONFIG_MAX_TASKS - The maximum number of simultaneously
|
|
||||||
active tasks. This value must be a power of two.
|
|
||||||
CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
|
||||||
specific data that can be retained
|
|
||||||
CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
|
||||||
descriptors (one for each open)
|
|
||||||
CONFIG_NFILE_STREAMS - The maximum number of streams that
|
|
||||||
can be fopen'ed
|
|
||||||
CONFIG_NAME_MAX - The maximum size of a file name.
|
|
||||||
CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
|
||||||
on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
CONFIG_NUNGET_CHARS - Number of characters that can be
|
|
||||||
buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
|
||||||
structures. The system manages a pool of preallocated
|
|
||||||
message structures to minimize dynamic allocations
|
|
||||||
CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
|
||||||
a fixed payload size given by this settin (does not include
|
|
||||||
other message structure overhead.
|
|
||||||
CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
|
||||||
structures. The system manages a pool of preallocated
|
|
||||||
watchdog structures to minimize dynamic allocations
|
|
||||||
|
|
||||||
Stack and heap information
|
|
||||||
|
|
||||||
CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
|
||||||
operation from FLASH.
|
|
||||||
CONFIG_STACK_POINTER - The initial stack pointer
|
|
||||||
CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
|
||||||
CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
|
||||||
CONFIG_HEAP_BASE - The beginning of the heap
|
|
||||||
CONFIG_HEAP_SIZE - The size of the heap
|
|
||||||
|
|
||||||
setenv.sh -- This is a script that you can include that will be installed at
|
|
||||||
the toplevel of the directory structure and can be sourced to set any
|
|
||||||
necessary environment variables.
|
|
||||||
|
|
||||||
include/arch.h
|
include/arch.h
|
||||||
This is a hook for any architecture specific definitions that may
|
This is a hook for any architecture specific definitions that may
|
||||||
be needed by the system. It is included by include/nuttx/arch.h
|
be needed by the system. It is included by include/nuttx/arch.h
|
||||||
@@ -225,37 +95,20 @@ arch/sim
|
|||||||
arch/c5471
|
arch/c5471
|
||||||
TI TMS320C5471 (also called TMS320DM180 or just C5471).
|
TI TMS320C5471 (also called TMS320DM180 or just C5471).
|
||||||
NuttX operates on the ARM7 of this dual core processor. This port
|
NuttX operates on the ARM7 of this dual core processor. This port
|
||||||
uses the Spectrum Digital evaluation board with a GNU arm-elf toolchain*.
|
complete, verified, and included in the NuttX release 0.1.1.
|
||||||
This port is complete, verified, and included in the NuttX release.
|
|
||||||
|
|
||||||
arch/dm320
|
arch/dm320
|
||||||
TI TMS320DM320 (also called just DM320).
|
TI TMS320DM320 (also called just DM320).
|
||||||
NuttX operates on the ARM9EJS of this dual core processor.
|
NuttX operates on the ARM9EJS of this dual core processor. This port
|
||||||
This port uses the Neuros OSD with a GNU arm-elf toolchain*:
|
complete, verified, and included in the NuttX release 0.2.1.
|
||||||
see http://wiki.neurostechnology.com/index.php/Developer_Welcome .
|
|
||||||
STATUS: This port is code complete but totally untested due to
|
arch/m68322
|
||||||
hardware issues with my OSD.
|
A work in progress.
|
||||||
|
|
||||||
arch/pjrc-8051
|
arch/pjrc-8051
|
||||||
8051 Microcontroller. This port uses the PJRC 87C52 development system
|
8051 Microcontroller. This port is not quite ready for prime time.
|
||||||
and the SDCC toolchain. This port is not quite ready for prime time.
|
|
||||||
|
|
||||||
Other ports for the for the TI TMS320DM270 and for MIPS are in various states
|
Other ports for the for the TI TMS320DM270 and for MIPS are in various states
|
||||||
of progress
|
of progress
|
||||||
|
|
||||||
Configuring NuttX
|
|
||||||
^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
Configuring NuttX requires only copying
|
|
||||||
|
|
||||||
arch/<arch-name>/Make.def to ${TOPDIR}/Make.defs
|
|
||||||
arch/<arch-name>/setenv.sh to ${TOPDIR}/setenv.sh
|
|
||||||
arch/<arch-name>/defconfig to ${TOPDIR}/.config
|
|
||||||
|
|
||||||
There is a script that automates these steps. The following steps will
|
|
||||||
accomplish the same configuration:
|
|
||||||
|
|
||||||
cd tools
|
|
||||||
./configure.sh <arch-name>
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,71 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# Make.defs
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
include ${TOPDIR}/.config
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
ARCHOPTIMIZATION = -g
|
|
||||||
else
|
|
||||||
ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \
|
|
||||||
-fomit-frame-pointer
|
|
||||||
endif
|
|
||||||
|
|
||||||
ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float -fno-builtin
|
|
||||||
ARCHPICFLAGS = -fpic
|
|
||||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
|
||||||
ARCHDEFINES =
|
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
|
||||||
ARCHSCRIPT = -T$(TOPDIR)/arch/$(CONFIG_ARCH)/ld.script
|
|
||||||
|
|
||||||
CROSSDEV = arm-elf-
|
|
||||||
CC = $(CROSSDEV)gcc
|
|
||||||
LD = $(CROSSDEV)ld
|
|
||||||
AR = $(CROSSDEV)ar rcs
|
|
||||||
NM = $(CROSSDEV)nm
|
|
||||||
OBJCOPY = $(CROSSDEV)objcopy
|
|
||||||
OBJDUMP = $(CROSSDEV)objdump
|
|
||||||
|
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
|
||||||
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
|
||||||
|
|
||||||
OBJEXT = .o
|
|
||||||
LIBEXT = .a
|
|
||||||
EXEEXT =
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
LDFLAGS += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,251 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# defconfig
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
#
|
|
||||||
# architecture selection
|
|
||||||
#
|
|
||||||
# CONFIG_ARCH - identifies the arch subdirectory
|
|
||||||
# CONFIG_ARCH_name - for use in C code
|
|
||||||
# CONFIG_ROM_VECTORS - unique to c5471
|
|
||||||
# CONFIG_DRAM_END - the size of installed DRAM.
|
|
||||||
# Unique to c5471
|
|
||||||
# CONFIG_C5471_LEDS - Use LEDs to show state. Unique to c5471.
|
|
||||||
# CONFIG_C5471_STACKDUMP - Do stack dumps after assertions
|
|
||||||
#
|
|
||||||
CONFIG_ARCH=c5471
|
|
||||||
CONFIG_ARCH_C5471=y
|
|
||||||
CONFIG_ROM_VECTORS=n
|
|
||||||
CONFIG_DRAM_END=0x11000000
|
|
||||||
CONFIG_C5471_LEDS=y
|
|
||||||
CONFIG_C5471_STACKDUMP=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# C5471 specific device driver settings
|
|
||||||
#
|
|
||||||
# CONFIG_SERIAL_IRDA_CONSOLE - selects the IRDA UART for the
|
|
||||||
# console ant ttys0 (default is the modem UART).
|
|
||||||
# CONFIG_UART_*_HWFLOWCONTROL - enables hardware flow control
|
|
||||||
# CONFIG_UART_*_RXBUFSIZE - Characters are buffered as received.
|
|
||||||
# This specific the size of the receive buffer
|
|
||||||
# CONFIG_UART_*_TXBUFSIZE - Characters are buffered before
|
|
||||||
# being sent. This specific the size of the transmit buffer
|
|
||||||
# CONFIG_UART_*_BAUD - The configure BAUD of the UART. Must be
|
|
||||||
# CONFIG_UART_*_BITS - The number of bits. Must be either 7 or 8.
|
|
||||||
# CONFIG_UART_*_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
|
||||||
# CONFIG_UART_*_2STOP - Two stop bits
|
|
||||||
#
|
|
||||||
CONFIG_SERIAL_IRDA_CONSOLE=n
|
|
||||||
CONFIG_UART_IRDA_HWFLOWCONTROL=n
|
|
||||||
CONFIG_UART_MODEM_HWFLOWCONTROL=n
|
|
||||||
CONFIG_UART_IRDA_RXBUFSIZE=256
|
|
||||||
CONFIG_UART_MODEM_RXBUFSIZE=256
|
|
||||||
CONFIG_UART_IRDA_TXBUFSIZE=256
|
|
||||||
CONFIG_UART_MODEM_TXBUFSIZE=256
|
|
||||||
CONFIG_UART_IRDA_BAUD=115200
|
|
||||||
CONFIG_UART_MODEM_BAUD=115200
|
|
||||||
CONFIG_UART_IRDA_BITS=8
|
|
||||||
CONFIG_UART_MODEM_BITS=8
|
|
||||||
CONFIG_UART_IRDA_PARITY=0
|
|
||||||
CONFIG_UART_MODEM_PARITY=0
|
|
||||||
CONFIG_UART_IRDA_2STOP=0
|
|
||||||
CONFIG_UART_MODEM_2STOP=0
|
|
||||||
|
|
||||||
#
|
|
||||||
# General OS setup
|
|
||||||
#
|
|
||||||
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
|
||||||
# that will be used in the build
|
|
||||||
# CONFIG_DEBUG - enables built-in debug options
|
|
||||||
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
|
||||||
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
|
||||||
# regions of memory to allocate from, this specifies the
|
|
||||||
# number of memory regions that the memory manager must
|
|
||||||
# handle and enables the API mm_addregion(start, end);
|
|
||||||
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
|
||||||
# time console output
|
|
||||||
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
|
||||||
# this number of milliseconds; Round robin scheduling can
|
|
||||||
# be disabled by setting this value to zero.
|
|
||||||
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
|
||||||
# scheduler to monitor system performance
|
|
||||||
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
|
||||||
# task name to save in the TCB. Useful if scheduler
|
|
||||||
# instrumentation is selected. Set to zero to disable.
|
|
||||||
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
|
||||||
# Used to initialize the internal time logic.
|
|
||||||
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
|
||||||
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
|
||||||
# provides /dev/console. Enables stdout, stderr, stdin.
|
|
||||||
#
|
|
||||||
CONFIG_EXAMPLE=ostest
|
|
||||||
CONFIG_DEBUG=n
|
|
||||||
CONFIG_DEBUG_VERBOSE=n
|
|
||||||
CONFIG_MM_REGIONS=1
|
|
||||||
CONFIG_ARCH_LOWPUTC=y
|
|
||||||
CONFIG_RR_INTERVAL=200
|
|
||||||
CONFIG_SCHED_INSTRUMENTATION=n
|
|
||||||
CONFIG_TASK_NAME_SIZE=0
|
|
||||||
CONFIG_START_YEAR=2007
|
|
||||||
CONFIG_START_MONTH=2
|
|
||||||
CONFIG_START_DAY=13
|
|
||||||
CONFIG_JULIAN_TIME=n
|
|
||||||
CONFIG_DEV_CONSOLE=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following can be used to disable categories of
|
|
||||||
# APIs supported by the OS. If the compiler supports
|
|
||||||
# weak functions, then it should not be necessary to
|
|
||||||
# disable functions unless you want to restrict usage
|
|
||||||
# of those APIs.
|
|
||||||
#
|
|
||||||
# There are certain dependency relationships in these
|
|
||||||
# features.
|
|
||||||
#
|
|
||||||
# o mq_notify logic depends on signals to awaken tasks
|
|
||||||
# waiting for queues to become full or empty.
|
|
||||||
# o pthread_condtimedwait() depends on signals to wake
|
|
||||||
# up waiting tasks.
|
|
||||||
#
|
|
||||||
CONFIG_DISABLE_CLOCK=n
|
|
||||||
CONFIG_DISABLE_POSIX_TIMERS=n
|
|
||||||
CONFIG_DISABLE_PTHREAD=n
|
|
||||||
CONFIG_DISABLE_SIGNALS=n
|
|
||||||
CONFIG_DISABLE_MQUEUE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Misc libc settings
|
|
||||||
#
|
|
||||||
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
|
||||||
# little smaller if we do not support fieldwidthes
|
|
||||||
#
|
|
||||||
CONFIG_NOPRINTF_FIELDWIDTH=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow for architecture optimized implementations
|
|
||||||
#
|
|
||||||
# The architecture can provide optimized versions of the
|
|
||||||
# following to improve sysem performance
|
|
||||||
#
|
|
||||||
CONFIG_ARCH_MEMCPY=n
|
|
||||||
CONFIG_ARCH_MEMCMP=n
|
|
||||||
CONFIG_ARCH_MEMMOVE=n
|
|
||||||
CONFIG_ARCH_MEMSET=n
|
|
||||||
CONFIG_ARCH_STRCMP=n
|
|
||||||
CONFIG_ARCH_STRCPY=n
|
|
||||||
CONFIG_ARCH_STRNCPY=n
|
|
||||||
CONFIG_ARCH_STRLEN=n
|
|
||||||
CONFIG_ARCH_BZERO=n
|
|
||||||
CONFIG_ARCH_KMALLOC=n
|
|
||||||
CONFIG_ARCH_KZMALLOC=n
|
|
||||||
CONFIG_ARCH_KFREE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# General build options
|
|
||||||
#
|
|
||||||
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
|
||||||
# BSPs from www.ridgerun.com
|
|
||||||
#
|
|
||||||
CONFIG_RRLOAD_BINARY=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sizes of configurable things (0 disables)
|
|
||||||
#
|
|
||||||
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
|
||||||
# active tasks. This value must be a power of two.
|
|
||||||
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
|
||||||
# of parameters that a task may receive (i.e., maxmum value
|
|
||||||
# of 'argc')
|
|
||||||
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
|
||||||
# specific data that can be retained
|
|
||||||
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
|
||||||
# descriptors (one for each open)
|
|
||||||
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
|
||||||
# can be fopen'ed
|
|
||||||
# CONFIG_NAME_MAX - The maximum size of a file name.
|
|
||||||
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
|
||||||
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
|
||||||
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# message structures to minimize dynamic allocations
|
|
||||||
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
|
||||||
# a fixed payload size given by this settin (does not include
|
|
||||||
# other message structure overhead.
|
|
||||||
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
|
||||||
# can be passed to a watchdog handler
|
|
||||||
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# watchdog structures to minimize dynamic allocations
|
|
||||||
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
|
||||||
# timer structures. The system manages a pool of preallocated
|
|
||||||
# timer structures to minimize dynamic allocations. Set to
|
|
||||||
# zero for all dynamic allocations.
|
|
||||||
#
|
|
||||||
CONFIG_MAX_TASKS=64
|
|
||||||
CONFIG_MAX_TASK_ARGS=4
|
|
||||||
CONFIG_NPTHREAD_KEYS=4
|
|
||||||
CONFIG_NFILE_DESCRIPTORS=32
|
|
||||||
CONFIG_NFILE_STREAMS=16
|
|
||||||
CONFIG_NAME_MAX=32
|
|
||||||
CONFIG_STDIO_BUFFER_SIZE=1024
|
|
||||||
CONFIG_NUNGET_CHARS=2
|
|
||||||
CONFIG_PREALLOC_MQ_MSGS=32
|
|
||||||
CONFIG_MQ_MAXMSGSIZE=32
|
|
||||||
CONFIG_MAX_WDOGPARMS=4
|
|
||||||
CONFIG_PREALLOC_WDOGS=32
|
|
||||||
CONFIG_PREALLOC_TIMERS=8
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stack and heap information
|
|
||||||
#
|
|
||||||
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
|
||||||
# operation from FLASH.
|
|
||||||
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
|
||||||
# all stack operations outside of the nuttx model.
|
|
||||||
# CONFIG_STACK_POINTER - The initial stack pointer (arm7tdmi only)
|
|
||||||
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
|
||||||
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
|
||||||
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
|
||||||
# CONFIG_HEAP_BASE - The beginning of the heap
|
|
||||||
# CONFIG_HEAP_SIZE - The size of the heap
|
|
||||||
#
|
|
||||||
CONFIG_BOOT_FROM_FLASH=n
|
|
||||||
CONFIG_CUSTOM_STACK=n
|
|
||||||
CONFIG_STACK_POINTER=
|
|
||||||
CONFIG_PROC_STACK_SIZE=4096
|
|
||||||
CONFIG_PTHREAD_STACK_MIN=256
|
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=4096
|
|
||||||
CONFIG_HEAP_BASE=
|
|
||||||
CONFIG_HEAP_SIZE=
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
/************************************************************
|
|
||||||
* ld.script
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
* used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
************************************************************/
|
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
|
||||||
ENTRY(_stext)
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
/* Interrupt vector trampoline and command line parameters
|
|
||||||
* are provided in IRAM by the rrload bootloader. Vectors will be
|
|
||||||
* copied into _svectors from _vflashstart.
|
|
||||||
*/
|
|
||||||
|
|
||||||
. = 0xffc00000;
|
|
||||||
_svectors = ABSOLUTE(.);
|
|
||||||
|
|
||||||
/* These are locations in IRAM where the rrload bootloader passes
|
|
||||||
* information to the running program
|
|
||||||
*/
|
|
||||||
|
|
||||||
. = 0xffc00020;
|
|
||||||
__KernCommandLineMagicStr = .; /* magic pattern string == "kcmdline-->" */
|
|
||||||
. = 0xffc0002C; /* advance to .+strlen("kcmdline-->")+1 */
|
|
||||||
__KernCommandLineOverride = .; /* location of kernel command line string */
|
|
||||||
|
|
||||||
. = 0xffc00100;
|
|
||||||
__EtherMACMagicStr = .; /* magic pattern string == "etherMAC-->" */
|
|
||||||
. = 0xffc0010C; /* advance to .+strlen("etherMAC-->")+1 */
|
|
||||||
__EtherMAC = .;
|
|
||||||
|
|
||||||
|
|
||||||
/* The OS entry point is here */
|
|
||||||
|
|
||||||
. = 0x10300000;
|
|
||||||
.text : {
|
|
||||||
_stext = ABSOLUTE(.);
|
|
||||||
*(.text)
|
|
||||||
*(.fixup)
|
|
||||||
*(.gnu.warning)
|
|
||||||
*(.rodata)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.got) /* Global offset table */
|
|
||||||
_etext = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.); /* See below */
|
|
||||||
. = ALIGN(4096);
|
|
||||||
|
|
||||||
.data : {
|
|
||||||
_sdata = ABSOLUTE(.);
|
|
||||||
*(.data)
|
|
||||||
CONSTRUCTORS
|
|
||||||
_edata = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bss : { /* BSS */
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.bss)
|
|
||||||
*(COMMON)
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
/* Stabs debugging sections. */
|
|
||||||
.stab 0 : { *(.stab) }
|
|
||||||
.stabstr 0 : { *(.stabstr) }
|
|
||||||
.stab.excl 0 : { *(.stab.excl) }
|
|
||||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
|
||||||
.stab.index 0 : { *(.stab.index) }
|
|
||||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
|
||||||
.comment 0 : { *(.comment) }
|
|
||||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
|
||||||
.debug_info 0 : { *(.debug_info) }
|
|
||||||
.debug_line 0 : { *(.debug_line) }
|
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# setenv.sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(basename $0)" = "setenv" ] ; then
|
|
||||||
echo "You must source this script, not run it!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
|
|
||||||
|
|
||||||
WD=`pwd`
|
|
||||||
export BUILDROOT_BIN=${WD}/../buildroot/build_arm_nofpu/staging_dir/bin
|
|
||||||
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
|
||||||
|
|
||||||
echo "PATH : ${PATH}"
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# Make.defs
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
include ${TOPDIR}/.config
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
ARCHOPTIMIZATION = -g
|
|
||||||
else
|
|
||||||
ARCHOPTIMIZATION = -Os -fno-strict-aliasing -fno-strength-reduce \
|
|
||||||
-fomit-frame-pointer
|
|
||||||
endif
|
|
||||||
|
|
||||||
ARCHCPUFLAGS = -mapcs-32 -mcpu=arm7tdmi -msoft-float -fno-builtin
|
|
||||||
ARCHPICFLAGS = -fpic
|
|
||||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
|
||||||
ARCHDEFINES =
|
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
|
||||||
ARCHSCRIPT = -T$(TOPDIR)/arch/$(CONFIG_ARCH)/ld.script
|
|
||||||
|
|
||||||
CROSSDEV = arm-elf-
|
|
||||||
CC = $(CROSSDEV)gcc
|
|
||||||
LD = $(CROSSDEV)ld
|
|
||||||
AR = $(CROSSDEV)ar rcs
|
|
||||||
NM = $(CROSSDEV)nm
|
|
||||||
OBJCOPY = $(CROSSDEV)objcopy
|
|
||||||
OBJDUMP = $(CROSSDEV)objdump
|
|
||||||
|
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
|
||||||
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
|
||||||
|
|
||||||
OBJEXT = .o
|
|
||||||
LIBEXT = .a
|
|
||||||
EXEEXT =
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
LDFLAGS += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# defconfig
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
#
|
|
||||||
# architecture selection
|
|
||||||
#
|
|
||||||
# CONFIG_ARCH - identifies the arch subdirectory
|
|
||||||
# CONFIG_ARCH_name - for use in C code
|
|
||||||
# CONFIG_ROM_VECTORS - unique to dm320
|
|
||||||
# CONFIG_DRAM_SIZE - Describes the installed DRAM.
|
|
||||||
# CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
|
|
||||||
#
|
|
||||||
CONFIG_ARCH=dm320
|
|
||||||
CONFIG_ARCH_DM320=y
|
|
||||||
CONFIG_ROM_VECTORS=n
|
|
||||||
CONFIG_DRAM_SIZE=0x01000000
|
|
||||||
CONFIG_DRAM_NUTTXENTRY=0x01008000
|
|
||||||
CONFIG_ARCH_STACKDUMP=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# DM320 specific device driver settings
|
|
||||||
#
|
|
||||||
# CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
|
|
||||||
# console and ttys0 (default is the UART0).
|
|
||||||
# CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
|
|
||||||
# This specific the size of the receive buffer
|
|
||||||
# CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
|
|
||||||
# being sent. This specific the size of the transmit buffer
|
|
||||||
# CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
|
|
||||||
# CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
|
|
||||||
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
|
|
||||||
# CONFIG_UARTn_2STOP - Two stop bits
|
|
||||||
#
|
|
||||||
CONFIG_UART0_SERIAL_CONSOLE=y
|
|
||||||
CONFIG_UART1_SERIAL_CONSOLE=n
|
|
||||||
CONFIG_UART0_TXBUFSIZE=256
|
|
||||||
CONFIG_UART1_TXBUFSIZE=256
|
|
||||||
CONFIG_UART0_RXBUFSIZE=256
|
|
||||||
CONFIG_UART1_RXBUFSIZE=256
|
|
||||||
CONFIG_UART0_BAUD=115200
|
|
||||||
CONFIG_UART1_BAUD=115200
|
|
||||||
CONFIG_UART0_BITS=8
|
|
||||||
CONFIG_UART1_BITS=8
|
|
||||||
CONFIG_UART0_PARITY=0
|
|
||||||
CONFIG_UART1_PARITY=0
|
|
||||||
CONFIG_UART0_2STOP=0
|
|
||||||
CONFIG_UART1_2STOP=0
|
|
||||||
|
|
||||||
#
|
|
||||||
# General OS setup
|
|
||||||
#
|
|
||||||
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
|
||||||
# that will be used in the build
|
|
||||||
# CONFIG_DEBUG - enables built-in debug options
|
|
||||||
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
|
||||||
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
|
||||||
# regions of memory to allocate from, this specifies the
|
|
||||||
# number of memory regions that the memory manager must
|
|
||||||
# handle and enables the API mm_addregion(start, end);
|
|
||||||
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
|
||||||
# time console output
|
|
||||||
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
|
||||||
# this number of milliseconds; Round robin scheduling can
|
|
||||||
# be disabled by setting this value to zero.
|
|
||||||
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
|
||||||
# scheduler to monitor system performance
|
|
||||||
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
|
||||||
# task name to save in the TCB. Useful if scheduler
|
|
||||||
# instrumentation is selected. Set to zero to disable.
|
|
||||||
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
|
||||||
# Used to initialize the internal time logic.
|
|
||||||
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
|
||||||
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
|
||||||
# provides /dev/console. Enables stdout, stderr, stdin.
|
|
||||||
#
|
|
||||||
CONFIG_EXAMPLE=ostest
|
|
||||||
CONFIG_DEBUG=n
|
|
||||||
CONFIG_DEBUG_VERBOSE=n
|
|
||||||
CONFIG_MM_REGIONS=1
|
|
||||||
CONFIG_ARCH_LOWPUTC=y
|
|
||||||
CONFIG_RR_INTERVAL=200
|
|
||||||
CONFIG_SCHED_INSTRUMENTATION=n
|
|
||||||
CONFIG_TASK_NAME_SIZE=0
|
|
||||||
CONFIG_START_YEAR=2007
|
|
||||||
CONFIG_START_MONTH=2
|
|
||||||
CONFIG_START_DAY=13
|
|
||||||
CONFIG_JULIAN_TIME=n
|
|
||||||
CONFIG_DEV_CONSOLE=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following can be used to disable categories of
|
|
||||||
# APIs supported by the OS. If the compiler supports
|
|
||||||
# weak functions, then it should not be necessary to
|
|
||||||
# disable functions unless you want to restrict usage
|
|
||||||
# of those APIs.
|
|
||||||
#
|
|
||||||
# There are certain dependency relationships in these
|
|
||||||
# features.
|
|
||||||
#
|
|
||||||
# o mq_notify logic depends on signals to awaken tasks
|
|
||||||
# waiting for queues to become full or empty.
|
|
||||||
# o pthread_condtimedwait() depends on signals to wake
|
|
||||||
# up waiting tasks.
|
|
||||||
#
|
|
||||||
CONFIG_DISABLE_CLOCK=n
|
|
||||||
CONFIG_DISABLE_POSIX_TIMERS=n
|
|
||||||
CONFIG_DISABLE_PTHREAD=n
|
|
||||||
CONFIG_DISABLE_SIGNALS=n
|
|
||||||
CONFIG_DISABLE_MQUEUE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Misc libc settings
|
|
||||||
#
|
|
||||||
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
|
||||||
# little smaller if we do not support fieldwidthes
|
|
||||||
#
|
|
||||||
CONFIG_NOPRINTF_FIELDWIDTH=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow for architecture optimized implementations
|
|
||||||
#
|
|
||||||
# The architecture can provide optimized versions of the
|
|
||||||
# following to improve sysem performance
|
|
||||||
#
|
|
||||||
CONFIG_ARCH_MEMCPY=n
|
|
||||||
CONFIG_ARCH_MEMCMP=n
|
|
||||||
CONFIG_ARCH_MEMMOVE=n
|
|
||||||
CONFIG_ARCH_MEMSET=n
|
|
||||||
CONFIG_ARCH_STRCMP=n
|
|
||||||
CONFIG_ARCH_STRCPY=n
|
|
||||||
CONFIG_ARCH_STRNCPY=n
|
|
||||||
CONFIG_ARCH_STRLEN=n
|
|
||||||
CONFIG_ARCH_BZERO=n
|
|
||||||
CONFIG_ARCH_KMALLOC=n
|
|
||||||
CONFIG_ARCH_KZMALLOC=n
|
|
||||||
CONFIG_ARCH_KFREE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# General build options
|
|
||||||
#
|
|
||||||
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
|
||||||
# BSPs from www.ridgerun.com
|
|
||||||
#
|
|
||||||
CONFIG_RRLOAD_BINARY=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sizes of configurable things (0 disables)
|
|
||||||
#
|
|
||||||
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
|
||||||
# active tasks. This value must be a power of two.
|
|
||||||
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
|
||||||
# of parameters that a task may receive (i.e., maxmum value
|
|
||||||
# of 'argc')
|
|
||||||
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
|
||||||
# specific data that can be retained
|
|
||||||
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
|
||||||
# descriptors (one for each open)
|
|
||||||
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
|
||||||
# can be fopen'ed
|
|
||||||
# CONFIG_NAME_MAX - The maximum size of a file name.
|
|
||||||
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
|
||||||
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
|
||||||
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# message structures to minimize dynamic allocations
|
|
||||||
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
|
||||||
# a fixed payload size given by this settin (does not include
|
|
||||||
# other message structure overhead.
|
|
||||||
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
|
||||||
# can be passed to a watchdog handler
|
|
||||||
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# watchdog structures to minimize dynamic allocations
|
|
||||||
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
|
||||||
# timer structures. The system manages a pool of preallocated
|
|
||||||
# timer structures to minimize dynamic allocations. Set to
|
|
||||||
# zero for all dynamic allocations.
|
|
||||||
#
|
|
||||||
CONFIG_MAX_TASKS=64
|
|
||||||
CONFIG_MAX_TASK_ARGS=4
|
|
||||||
CONFIG_NPTHREAD_KEYS=4
|
|
||||||
CONFIG_NFILE_DESCRIPTORS=32
|
|
||||||
CONFIG_NFILE_STREAMS=16
|
|
||||||
CONFIG_NAME_MAX=32
|
|
||||||
CONFIG_STDIO_BUFFER_SIZE=1024
|
|
||||||
CONFIG_NUNGET_CHARS=2
|
|
||||||
CONFIG_PREALLOC_MQ_MSGS=32
|
|
||||||
CONFIG_MQ_MAXMSGSIZE=32
|
|
||||||
CONFIG_MAX_WDOGPARMS=4
|
|
||||||
CONFIG_PREALLOC_WDOGS=32
|
|
||||||
CONFIG_PREALLOC_TIMERS=8
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stack and heap information
|
|
||||||
#
|
|
||||||
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
|
||||||
# operation from FLASH.
|
|
||||||
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
|
||||||
# all stack operations outside of the nuttx model.
|
|
||||||
# CONFIG_STACK_POINTER - The initial stack pointer (arm7tdmi only)
|
|
||||||
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
|
||||||
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
|
||||||
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
|
||||||
# CONFIG_HEAP_BASE - The beginning of the heap
|
|
||||||
# CONFIG_HEAP_SIZE - The size of the heap
|
|
||||||
#
|
|
||||||
CONFIG_BOOT_FROM_FLASH=n
|
|
||||||
CONFIG_CUSTOM_STACK=n
|
|
||||||
CONFIG_STACK_POINTER=
|
|
||||||
CONFIG_PROC_STACK_SIZE=4096
|
|
||||||
CONFIG_PTHREAD_STACK_MIN=256
|
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=4096
|
|
||||||
CONFIG_HEAP_BASE=
|
|
||||||
CONFIG_HEAP_SIZE=
|
|
||||||
@@ -1,84 +0,0 @@
|
|||||||
/************************************************************
|
|
||||||
* ld.script
|
|
||||||
*
|
|
||||||
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions
|
|
||||||
* are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in
|
|
||||||
* the documentation and/or other materials provided with the
|
|
||||||
* distribution.
|
|
||||||
* 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
* used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
************************************************************/
|
|
||||||
|
|
||||||
OUTPUT_ARCH(arm)
|
|
||||||
ENTRY(_stext)
|
|
||||||
SECTIONS
|
|
||||||
{
|
|
||||||
/* The OS entry point is here */
|
|
||||||
|
|
||||||
. = 0x00008000;
|
|
||||||
.text : {
|
|
||||||
_stext = ABSOLUTE(.);
|
|
||||||
*(.text)
|
|
||||||
*(.fixup)
|
|
||||||
*(.gnu.warning)
|
|
||||||
*(.rodata)
|
|
||||||
*(.glue_7)
|
|
||||||
*(.glue_7t)
|
|
||||||
*(.got) /* Global offset table */
|
|
||||||
_etext = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
|
|
||||||
_eronly = ABSOLUTE(.); /* See below */
|
|
||||||
. = ALIGN(4096);
|
|
||||||
|
|
||||||
.data : {
|
|
||||||
_sdata = ABSOLUTE(.);
|
|
||||||
*(.data)
|
|
||||||
CONSTRUCTORS
|
|
||||||
_edata = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bss : { /* BSS */
|
|
||||||
_sbss = ABSOLUTE(.);
|
|
||||||
*(.bss)
|
|
||||||
*(COMMON)
|
|
||||||
_ebss = ABSOLUTE(.);
|
|
||||||
}
|
|
||||||
/* Stabs debugging sections. */
|
|
||||||
.stab 0 : { *(.stab) }
|
|
||||||
.stabstr 0 : { *(.stabstr) }
|
|
||||||
.stab.excl 0 : { *(.stab.excl) }
|
|
||||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
|
||||||
.stab.index 0 : { *(.stab.index) }
|
|
||||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
|
||||||
.comment 0 : { *(.comment) }
|
|
||||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
|
||||||
.debug_info 0 : { *(.debug_info) }
|
|
||||||
.debug_line 0 : { *(.debug_line) }
|
|
||||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
|
||||||
.debug_aranges 0 : { *(.debug_aranges) }
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# setenv.sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(basename $0)" = "setenv" ] ; then
|
|
||||||
echo "You must source this script, not run it!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
|
|
||||||
|
|
||||||
WD=`pwd`
|
|
||||||
export BUILDROOT_BIN=${WD}/../buildroot/build_arm_nofpu/staging_dir/bin
|
|
||||||
export PATH=${BUILDROOT_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
|
||||||
|
|
||||||
echo "PATH : ${PATH}"
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# Make.defs
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
include ${TOPDIR}/.config
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
ARCHOPTIMIZATION = --debug
|
|
||||||
else
|
|
||||||
ARCHOPTIMIZATION =
|
|
||||||
endif
|
|
||||||
|
|
||||||
ARCHCPUFLAGS = -mmcs51 --stack-auto --model-large --int-long-reent --float-reent
|
|
||||||
ARCHPICFLAGS =
|
|
||||||
ARCHWARNINGS =
|
|
||||||
ARCHDEFINES =
|
|
||||||
ARCHINCLUDES = -I. -I$(TOPDIR)/include
|
|
||||||
|
|
||||||
CROSSDEV =
|
|
||||||
CC = sdcc
|
|
||||||
CPP = sdcpp
|
|
||||||
LD = aslink
|
|
||||||
AS = asx8051
|
|
||||||
AR = sdcclib -a
|
|
||||||
|
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
|
||||||
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES)
|
|
||||||
|
|
||||||
ASMEXT = .asm
|
|
||||||
OBJEXT = .rel
|
|
||||||
LIBEXT = .lib
|
|
||||||
EXEEXT = .hex
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
pjrc-8051 README
|
|
||||||
^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
This port uses the PJRC 87C52 development system and the SDCC toolchain.
|
|
||||||
|
|
||||||
The PJRC 87C52 development system can be obtained from http://www.pjrc.com/.
|
|
||||||
|
|
||||||
The SDCC toolchain is available from http://sdcc.sourceforge.net/. All
|
|
||||||
testing has been performed using verison 2.6.0 of the SDDC toolchain.
|
|
||||||
|
|
||||||
Building the SDCC toolchain
|
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
The SDCC toolchain is built with the standard configure/make/make install
|
|
||||||
sequence. However, some special actions are required to generate libraries
|
|
||||||
compatible with this build. First start with the usual steps
|
|
||||||
|
|
||||||
download
|
|
||||||
unpack
|
|
||||||
cd sdcc
|
|
||||||
./configure
|
|
||||||
make
|
|
||||||
|
|
||||||
But before installing, we need to apply a patch to the SDCC 2.6.0 source.
|
|
||||||
WARNING: This patch is specific to the particular combination of CFLAGS
|
|
||||||
that are used in the compilation. If you change Make.defs, then you will
|
|
||||||
likely have to change the patch as well.
|
|
||||||
|
|
||||||
Apply sdcc-2.6.0.patch
|
|
||||||
cd sdcc/device/lib
|
|
||||||
make model-mcs51-stack-auto
|
|
||||||
|
|
||||||
Then
|
|
||||||
|
|
||||||
cd sdcc
|
|
||||||
make install
|
|
||||||
|
|
||||||
@@ -1,244 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# defconfig
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
#
|
|
||||||
# Architecture selection
|
|
||||||
#
|
|
||||||
# CONFIG_ARCH - identifies the arch subdirectory
|
|
||||||
# CONFIG_ARCH_8051 - Set if processor is 8051 family
|
|
||||||
# CONFIG_ARCH_8052 = Set if processor is 8052 family
|
|
||||||
#
|
|
||||||
CONFIG_ARCH=pjrc-8051
|
|
||||||
CONFIG_ARCH_8051=n
|
|
||||||
CONFIG_ARCH_8052=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Architecture-specific settings. These may mean nothing to
|
|
||||||
# other architectures.
|
|
||||||
#
|
|
||||||
# CONFIG-ARCH_PJRC - Set if using the PJRC 87C52 board
|
|
||||||
# CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to 8051.
|
|
||||||
# CONFIG_8052_TIMER2 - Use timer2 for the 100Hz system timer.
|
|
||||||
# (default is timer0 at 112.5Hz).
|
|
||||||
#
|
|
||||||
# These features are only supported when CONFIG_ARCH_BRINGUP
|
|
||||||
# is set:
|
|
||||||
#
|
|
||||||
# CONFIG_ARCH_BRINGUP - Enables some bringup features
|
|
||||||
# CONFIG_FRAME_DUMP - Enable stack/frame dumping logic
|
|
||||||
# CONFIG_FRAME_DUMP_SHORT - Terse frame dump output
|
|
||||||
# CONFIG_SUPPRESS_INTERRUPTS - Do not enable interrupts
|
|
||||||
# CONFIG_SWITCH_FRAME_DUMP - Dump frames from normal switches
|
|
||||||
# CONFIG_INTERRUPT_FRAME_DUMP - Dump frames from interrupt switches
|
|
||||||
# CONFIG_LED_DEBUG - Enable debug output from LED logic
|
|
||||||
#
|
|
||||||
CONFIG_ARCH_PJRC=y
|
|
||||||
CONFIG_ARCH_LEDS=y
|
|
||||||
CONFIG_8052_TIMER2=y
|
|
||||||
|
|
||||||
CONFIG_ARCH_BRINGUP=y
|
|
||||||
CONFIG_FRAME_DUMP=n
|
|
||||||
CONFIG_FRAME_DUMP_SHORT=n
|
|
||||||
CONFIG_SUPPRESS_INTERRUPTS=y
|
|
||||||
CONFIG_SWITCH_FRAME_DUMP=n
|
|
||||||
CONFIG_INTERRUPT_FRAME_DUMP=n
|
|
||||||
CONFIG_LED_DEBUG=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# General OS setup
|
|
||||||
#
|
|
||||||
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
|
||||||
# that will be used in the build
|
|
||||||
# CONFIG_DEBUG - enables built-in debug options
|
|
||||||
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
|
||||||
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
|
||||||
# regions of memory to allocate from, this specifies the
|
|
||||||
# number of memory regions that the memory manager must
|
|
||||||
# handle and enables the API mm_addregion(start, end);
|
|
||||||
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
|
||||||
# time console output
|
|
||||||
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
|
||||||
# this number of milliseconds; Round robin scheduling can
|
|
||||||
# be disabled by setting this value to zero.
|
|
||||||
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
|
||||||
# scheduler to monitor system performance
|
|
||||||
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
|
||||||
# task name to save in the TCB. Useful if scheduler
|
|
||||||
# instrumentation is selected. Set to zero to disable.
|
|
||||||
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
|
||||||
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
|
||||||
# Used to initialize the internal time logic.
|
|
||||||
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
|
||||||
# provides /dev/console. Enables stdout, stderr, stdin.
|
|
||||||
#
|
|
||||||
CONFIG_EXAMPLE=ostest
|
|
||||||
CONFIG_DEBUG=n
|
|
||||||
CONFIG_DEBUG_VERBOSE=n
|
|
||||||
CONFIG_MM_REGIONS=2
|
|
||||||
CONFIG_ARCH_LOWPUTC=y
|
|
||||||
CONFIG_RR_INTERVAL=0
|
|
||||||
CONFIG_SCHED_INSTRUMENTATION=n
|
|
||||||
CONFIG_TASK_NAME_SIZE=0
|
|
||||||
CONFIG_START_YEAR=2007
|
|
||||||
CONFIG_START_MONTH=2
|
|
||||||
CONFIG_START_DAY=21
|
|
||||||
CONFIG_JULIAN_TIME=n
|
|
||||||
CONFIG_DEV_CONSOLE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following can be used to disable categories of
|
|
||||||
# APIs supported by the OS. If the compiler supports
|
|
||||||
# weak functions, then it should not be necessary to
|
|
||||||
# disable functions unless you want to restrict usage
|
|
||||||
# of those APIs.
|
|
||||||
#
|
|
||||||
# There are certain dependency relationships in these
|
|
||||||
# features.
|
|
||||||
#
|
|
||||||
# o mq_notify logic depends on signals to awaken tasks
|
|
||||||
# waiting for queues to become full or empty.
|
|
||||||
# o pthread_condtimedwait() depends on signals to wake
|
|
||||||
# up waiting tasks.
|
|
||||||
#
|
|
||||||
CONFIG_DISABLE_CLOCK=y
|
|
||||||
CONFIG_DISABLE_POSIX_TIMERS=y
|
|
||||||
CONFIG_DISABLE_PTHREAD=y
|
|
||||||
CONFIG_DISABLE_SIGNALS=y
|
|
||||||
CONFIG_DISABLE_MQUEUE=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Misc libc settings
|
|
||||||
#
|
|
||||||
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
|
||||||
# little smaller if we do not support fieldwidthes
|
|
||||||
#
|
|
||||||
CONFIG_NOPRINTF_FIELDWIDTH=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow for architecture optimized implementations
|
|
||||||
#
|
|
||||||
# The architecture can provide optimized versions of the
|
|
||||||
# following to improve sysem performance
|
|
||||||
#
|
|
||||||
CONFIG_ARCH_MEMCPY=n
|
|
||||||
CONFIG_ARCH_MEMCMP=n
|
|
||||||
CONFIG_ARCH_MEMMOVE=n
|
|
||||||
CONFIG_ARCH_MEMSET=n
|
|
||||||
CONFIG_ARCH_STRCMP=n
|
|
||||||
CONFIG_ARCH_STRCPY=n
|
|
||||||
CONFIG_ARCH_STRNCPY=n
|
|
||||||
CONFIG_ARCH_STRLEN=n
|
|
||||||
CONFIG_ARCH_BZERO=n
|
|
||||||
CONFIG_ARCH_KMALLOC=n
|
|
||||||
CONFIG_ARCH_KZMALLOC=n
|
|
||||||
CONFIG_ARCH_KFREE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# General build options
|
|
||||||
#
|
|
||||||
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
|
||||||
# BSPs from www.ridgerun.com
|
|
||||||
#
|
|
||||||
CONFIG_RRLOAD_BINARY=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sizes of configurable things (0 disables)
|
|
||||||
#
|
|
||||||
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
|
||||||
# actived tasks. This value must be a power of two.
|
|
||||||
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
|
||||||
# of parameters that a task may receive (i.e., maxmum value
|
|
||||||
# of 'argc')
|
|
||||||
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
|
||||||
# specific data that can be retained
|
|
||||||
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
|
||||||
# descriptors (one for each open)
|
|
||||||
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
|
||||||
# can be fopen'ed
|
|
||||||
# CONFIG_NAME_MAX - The maximum size of a file name.
|
|
||||||
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
|
||||||
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
|
||||||
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# message structures to minimize dynamic allocations
|
|
||||||
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
|
||||||
# a fixed payload size given by this settin (does not include
|
|
||||||
# other message structure overhead.
|
|
||||||
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
|
||||||
# can be passed to a watchdog handler
|
|
||||||
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# watchdog structures to minimize dynamic allocations
|
|
||||||
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
|
||||||
# timer structures. The system manages a pool of preallocated
|
|
||||||
# timer structures to minimize dynamic allocations. Set to
|
|
||||||
# zero for all dynamic allocations.
|
|
||||||
#
|
|
||||||
CONFIG_MAX_TASKS=8
|
|
||||||
CONFIG_MAX_TASK_ARGS=4
|
|
||||||
CONFIG_NPTHREAD_KEYS=0
|
|
||||||
CONFIG_NFILE_DESCRIPTORS=0
|
|
||||||
CONFIG_NFILE_STREAMS=0
|
|
||||||
CONFIG_NAME_MAX=32
|
|
||||||
CONFIG_STDIO_BUFFER_SIZE=0
|
|
||||||
CONFIG_NUNGET_CHARS=0
|
|
||||||
CONFIG_PREALLOC_MQ_MSGS=0
|
|
||||||
CONFIG_MQ_MAXMSGSIZE=0
|
|
||||||
CONFIG_MAX_WDOGPARMS=2
|
|
||||||
CONFIG_PREALLOC_WDOGS=4
|
|
||||||
CONFIG_PREALLOC_TIMERS=0
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stack and heap information
|
|
||||||
#
|
|
||||||
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
|
||||||
# operation from FLASH.
|
|
||||||
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
|
||||||
# all stack operations outside of the nuttx model.
|
|
||||||
# CONFIG_STACK_POINTER - The initial stack pointer
|
|
||||||
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
|
||||||
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
|
||||||
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
|
||||||
# CONFIG_HEAP_BASE - The beginning of the heap
|
|
||||||
# CONFIG_HEAP_SIZE - The size of the heap
|
|
||||||
#
|
|
||||||
CONFIG_BOOT_FROM_FLASH=n
|
|
||||||
CONFIG_CUSTOM_STACK=y
|
|
||||||
CONFIG_PROC_STACK_SIZE=
|
|
||||||
CONFIG_PTHREAD_STACK_MIN=
|
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=
|
|
||||||
CONFIG_HEAP_BASE=
|
|
||||||
CONFIG_HEAP_SIZE=
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
diff -u sdcc/device/lib/Makefile.orig sdcc/device/lib/Makefile
|
|
||||||
--- sdcc/device/lib/Makefile.orig 2007-03-06 09:55:01.000000000 -0600
|
|
||||||
+++ sdcc/device/lib/Makefile 2007-03-06 09:58:32.000000000 -0600
|
|
||||||
@@ -242,7 +242,7 @@
|
|
||||||
model-mcs51-stack-auto:
|
|
||||||
if [ "`grep mcs51 $(top_builddir)ports.build`" = mcs51 ]; then \
|
|
||||||
for model in $(MODELS); do \
|
|
||||||
- $(MAKE) MODELFLAGS="--model-$$model --stack-auto" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
||||||
+ $(MAKE) MODELFLAGS="--model-$$model --stack-auto --int-long-reent --float-reent" PORT=$$model PORTDIR=$(BUILDDIR)/$$model-stack-auto PORTINCDIR=$(INCDIR)/mcs51 objects; \
|
|
||||||
done \
|
|
||||||
fi
|
|
||||||
|
|
||||||
diff -u sdcc/device/include/stdarg.h.orig sdcc/device/include/stdarg.h
|
|
||||||
--- sdcc/device/include/stdarg.h.orig 2007-03-11 13:21:15.000000000 -0600
|
|
||||||
+++ sdcc/device/include/stdarg.h 2007-03-11 13:26:59.000000000 -0600
|
|
||||||
@@ -25,9 +25,9 @@
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
-typedef unsigned char __data * va_list ;
|
|
||||||
-#define va_arg(marker,type) *((type __data * )(marker -= sizeof(type)))
|
|
||||||
-#define va_start(marker,first) { marker = (va_list) ((char __data * )&first); }
|
|
||||||
+typedef unsigned char * va_list ;
|
|
||||||
+#define va_arg(marker,type) *((type * )(marker -= sizeof(type)))
|
|
||||||
+#define va_start(marker,first) { marker = (va_list) ((char * )&first); }
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# setenv.sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(basename $0)" = "setenv" ] ; then
|
|
||||||
echo "You must source this script, not run it!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
|
|
||||||
|
|
||||||
export SDCC_BIN=/usr/local/bin
|
|
||||||
export PATH=${SDCC_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
|
||||||
|
|
||||||
echo "PATH : ${PATH}"
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# Make.defs
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
include ${TOPDIR}/.config
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
ARCHOPTIMIZATION = -g
|
|
||||||
else
|
|
||||||
ARCHOPTIMIZATION = -O2
|
|
||||||
endif
|
|
||||||
|
|
||||||
ARCHCPUFLAGS = -fno-builtin
|
|
||||||
ARCHPICFLAGS = -fpic
|
|
||||||
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
|
|
||||||
ARCHDEFINES =
|
|
||||||
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
|
|
||||||
ARCHSCRIPT =
|
|
||||||
|
|
||||||
CROSSDEV =
|
|
||||||
CC = $(CROSSDEV)gcc
|
|
||||||
LD = $(CROSSDEV)ld
|
|
||||||
AR = $(CROSSDEV)ar rcs
|
|
||||||
NM = $(CROSSDEV)nm
|
|
||||||
OBJCOPY = $(CROSSDEV)objcopy
|
|
||||||
OBJDUMP = $(CROSSDEV)objdump
|
|
||||||
|
|
||||||
CFLAGS = $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
|
|
||||||
$(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
|
|
||||||
|
|
||||||
OBJEXT = .o
|
|
||||||
LIBEXT = .a
|
|
||||||
EXEEXT =
|
|
||||||
|
|
||||||
ifeq ("${CONFIG_DEBUG}","y")
|
|
||||||
LDFLAGS += -g
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,210 +0,0 @@
|
|||||||
############################################################
|
|
||||||
# defconfig
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
############################################################
|
|
||||||
#
|
|
||||||
# architecture selection
|
|
||||||
#
|
|
||||||
# CONFIG_ARCH - identifies the arch subdirectory
|
|
||||||
# CONFIG_ARCH_name - for use in C code
|
|
||||||
#
|
|
||||||
CONFIG_ARCH=sim
|
|
||||||
CONFIG_ARCH_SIM=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# General OS setup
|
|
||||||
#
|
|
||||||
# CONFIG_EXAMPLE - identifies the subdirectory in examples
|
|
||||||
# that will be used in the build
|
|
||||||
# CONFIG_DEBUG - enables built-in debug options
|
|
||||||
# CONFIG_DEBUG_VERBOSE - enables verbose debug output
|
|
||||||
# CONFIG_MM_REGIONS - If the architecture includes multiple
|
|
||||||
# regions of memory to allocate from, this specifies the
|
|
||||||
# number of memory regions that the memory manager must
|
|
||||||
# handle and enables the API mm_addregion(start, end);
|
|
||||||
# CONFIG_HAVE_LOWPUTC - architecture supports low-level, boot
|
|
||||||
# time console output
|
|
||||||
# CONFIG_RR_INTERVAL - The round robin timeslice will be set
|
|
||||||
# this number of milliseconds; Round robin scheduling can
|
|
||||||
# be disabled by setting this value to zero.
|
|
||||||
# CONFIG_SCHED_INSTRUMENTATION - enables instrumentation in
|
|
||||||
# scheduler to monitor system performance
|
|
||||||
# CONFIG_TASK_NAME_SIZE - Spcifies that maximum size of a
|
|
||||||
# task name to save in the TCB. Useful if scheduler
|
|
||||||
# instrumentation is selected. Set to zero to disable.
|
|
||||||
# CONFIG_JULIAN_TIME - Enables Julian time conversions
|
|
||||||
# CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
|
|
||||||
# Used to initialize the internal time logic.
|
|
||||||
# CONFIG_DEV_CONSOLE - Set if architecture-specific logic
|
|
||||||
# provides /dev/console. Enables stdout, stderr, stdin.
|
|
||||||
#
|
|
||||||
CONFIG_EXAMPLE=ostest
|
|
||||||
CONFIG_DEBUG=y
|
|
||||||
CONFIG_DEBUG_VERBOSE=y
|
|
||||||
CONFIG_MM_REGIONS=1
|
|
||||||
CONFIG_ARCH_LOWPUTC=y
|
|
||||||
CONFIG_RR_INTERVAL=0
|
|
||||||
CONFIG_SCHED_INSTRUMENTATION=n
|
|
||||||
CONFIG_TASK_NAME_SIZE=32
|
|
||||||
CONFIG_START_YEAR=2007
|
|
||||||
CONFIG_START_MONTH=2
|
|
||||||
CONFIG_START_DAY=27
|
|
||||||
CONFIG_JULIAN_TIME=n
|
|
||||||
CONFIG_DEV_CONSOLE=y
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following can be used to disable categories of
|
|
||||||
# APIs supported by the OS. If the compiler supports
|
|
||||||
# weak functions, then it should not be necessary to
|
|
||||||
# disable functions unless you want to restrict usage
|
|
||||||
# of those APIs.
|
|
||||||
#
|
|
||||||
# There are certain dependency relationships in these
|
|
||||||
# features.
|
|
||||||
#
|
|
||||||
# o mq_notify logic depends on signals to awaken tasks
|
|
||||||
# waiting for queues to become full or empty.
|
|
||||||
# o pthread_condtimedwait() depends on signals to wake
|
|
||||||
# up waiting tasks.
|
|
||||||
#
|
|
||||||
CONFIG_DISABLE_CLOCK=n
|
|
||||||
CONFIG_DISABLE_POSIX_TIMERS=n
|
|
||||||
CONFIG_DISABLE_PTHREAD=n
|
|
||||||
CONFIG_DISABLE_SIGNALS=n
|
|
||||||
CONFIG_DISABLE_MQUEUE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Misc libc settings
|
|
||||||
#
|
|
||||||
# CONFIG_NOPRINTF_FIELDWIDTH - sprintf-related logic is a
|
|
||||||
# little smaller if we do not support fieldwidthes
|
|
||||||
#
|
|
||||||
CONFIG_NOPRINTF_FIELDWIDTH=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Allow for architecture optimized implementations
|
|
||||||
#
|
|
||||||
# The architecture can provide optimized versions of the
|
|
||||||
# following to improve sysem performance
|
|
||||||
#
|
|
||||||
CONFIG_ARCH_MEMCPY=n
|
|
||||||
CONFIG_ARCH_MEMCMP=n
|
|
||||||
CONFIG_ARCH_MEMMOVE=n
|
|
||||||
CONFIG_ARCH_MEMSET=n
|
|
||||||
CONFIG_ARCH_STRCMP=n
|
|
||||||
CONFIG_ARCH_STRCPY=n
|
|
||||||
CONFIG_ARCH_STRNCPY=n
|
|
||||||
CONFIG_ARCH_STRLEN=n
|
|
||||||
CONFIG_ARCH_BZERO=n
|
|
||||||
CONFIG_ARCH_KMALLOC=n
|
|
||||||
CONFIG_ARCH_KZMALLOC=n
|
|
||||||
CONFIG_ARCH_KFREE=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# General build options
|
|
||||||
#
|
|
||||||
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
|
|
||||||
# BSPs from www.ridgerun.com
|
|
||||||
#
|
|
||||||
CONFIG_RRLOAD_BINARY=n
|
|
||||||
|
|
||||||
#
|
|
||||||
# Sizes of configurable things (0 disables)
|
|
||||||
#
|
|
||||||
# CONFIG_MAX_TASKS - The maximum number of simultaneously
|
|
||||||
# active tasks. This value must be a power of two.
|
|
||||||
# CONFIG_MAX_TASK_ARGS - This controls the maximum number of
|
|
||||||
# of parameters that a task may receive (i.e., maxmum value
|
|
||||||
# of 'argc')
|
|
||||||
# CONFIG_NPTHREAD_KEYS - The number of items of thread-
|
|
||||||
# specific data that can be retained
|
|
||||||
# CONFIG_NFILE_DESCRIPTORS - The maximum number of file
|
|
||||||
# descriptors (one for each open)
|
|
||||||
# CONFIG_NFILE_STREAMS - The maximum number of streams that
|
|
||||||
# can be fopen'ed
|
|
||||||
# CONFIG_NAME_MAX - The maximum size of a file name.
|
|
||||||
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
|
|
||||||
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_NUNGET_CHARS - Number of characters that can be
|
|
||||||
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
|
|
||||||
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# message structures to minimize dynamic allocations
|
|
||||||
# CONFIG_MQ_MAXMSGSIZE - Message structures are allocated with
|
|
||||||
# a fixed payload size given by this settin (does not include
|
|
||||||
# other message structure overhead.
|
|
||||||
# CONFIG_MAX_WDOGPARMS - Maximum number of parameters that
|
|
||||||
# can be passed to a watchdog handler
|
|
||||||
# CONFIG_PREALLOC_WDOGS - The number of pre-allocated watchdog
|
|
||||||
# structures. The system manages a pool of preallocated
|
|
||||||
# watchdog structures to minimize dynamic allocations
|
|
||||||
# CONFIG_PREALLOC_TIMERS - The number of pre-allocated POSIX
|
|
||||||
# timer structures. The system manages a pool of preallocated
|
|
||||||
# timer structures to minimize dynamic allocations. Set to
|
|
||||||
# zero for all dynamic allocations.
|
|
||||||
#
|
|
||||||
CONFIG_MAX_TASKS=64
|
|
||||||
CONFIG_MAX_TASK_ARGS=4
|
|
||||||
CONFIG_NPTHREAD_KEYS=4
|
|
||||||
CONFIG_NFILE_DESCRIPTORS=32
|
|
||||||
CONFIG_NFILE_STREAMS=16
|
|
||||||
CONFIG_NAME_MAX=32
|
|
||||||
CONFIG_STDIO_BUFFER_SIZE=1024
|
|
||||||
CONFIG_NUNGET_CHARS=2
|
|
||||||
CONFIG_PREALLOC_MQ_MSGS=32
|
|
||||||
CONFIG_MQ_MAXMSGSIZE=32
|
|
||||||
CONFIG_MAX_WDOGPARMS=4
|
|
||||||
CONFIG_PREALLOC_WDOGS=32
|
|
||||||
CONFIG_PREALLOC_TIMERS=8
|
|
||||||
|
|
||||||
#
|
|
||||||
# Stack and heap information
|
|
||||||
#
|
|
||||||
# CONFIG_BOOT_FROM_FLASH - Some configurations support XIP
|
|
||||||
# operation from FLASH.
|
|
||||||
# CONFIG_CUSTOM_STACK - The up_ implementation will handle
|
|
||||||
# all stack operations outside of the nuttx model.
|
|
||||||
# CONFIG_STACK_POINTER - The initial stack pointer
|
|
||||||
# CONFIG_PROC_STACK_SIZE - The size of the initial stack
|
|
||||||
# CONFIG_PTHREAD_STACK_MIN - Minimum pthread stack size
|
|
||||||
# CONFIG_PTHREAD_STACK_DEFAULT - Default pthread stack size
|
|
||||||
# CONFIG_HEAP_BASE - The beginning of the heap
|
|
||||||
# CONFIG_HEAP_SIZE - The size of the heap
|
|
||||||
#
|
|
||||||
CONFIG_BOOT_FROM_FLASH=n
|
|
||||||
CONFIG_CUSTOM_STACK=n
|
|
||||||
CONFIG_PROC_STACK_SIZE=0x00001000
|
|
||||||
CONFIG_PTHREAD_STACK_MIN=256
|
|
||||||
CONFIG_PTHREAD_STACK_DEFAULT=8192
|
|
||||||
CONFIG_HEAP_BASE=
|
|
||||||
CONFIG_HEAP_SIZE=
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
# setenv.sh
|
|
||||||
#
|
|
||||||
# Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
|
||||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions
|
|
||||||
# are met:
|
|
||||||
#
|
|
||||||
# 1. Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# 2. Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in
|
|
||||||
# the documentation and/or other materials provided with the
|
|
||||||
# distribution.
|
|
||||||
# 3. Neither the name Gregory Nutt nor the names of its contributors may be
|
|
||||||
# used to endorse or promote products derived from this software
|
|
||||||
# without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
||||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
||||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
# POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if [ "$(basename $0)" = "setenv" ] ; then
|
|
||||||
echo "You must source this script, not run it!" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z ${PATH_ORIG} ]; then export PATH_ORIG=${PATH}; fi
|
|
||||||
|
|
||||||
#export NUTTX_BIN=
|
|
||||||
#export PATH=${NUTTX_BIN}:/sbin:/usr/sbin:${PATH_ORIG}
|
|
||||||
|
|
||||||
echo "PATH : ${PATH}"
|
|
||||||
+18
-18
@@ -33,46 +33,46 @@
|
|||||||
#
|
#
|
||||||
#set -x
|
#set -x
|
||||||
|
|
||||||
ARCH=$1
|
BOARD=$1
|
||||||
WD=`pwd`
|
WD=`pwd`
|
||||||
TOPDIR=${WD}/..
|
TOPDIR=${WD}/..
|
||||||
|
|
||||||
function show_usage ()
|
function show_usage ()
|
||||||
{
|
{
|
||||||
echo "${0} <arch>"
|
echo "${0} <board-name>"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "${ARCH}X" = "X" ]; then
|
if [ "${BOARD}X" = "X" ]; then
|
||||||
echo "Missing argument"
|
echo "Missing argument"
|
||||||
show_usage
|
show_usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ARCHDIR=${TOPDIR}/arch/${ARCH}
|
BOARDDIR=${TOPDIR}/configs/${BOARD}
|
||||||
if [ ! -d ${ARCHDIR} ]; then
|
if [ ! -d ${BOARDDIR} ]; then
|
||||||
echo "Directory ${ARCHDIR} does not exist"
|
echo "Directory ${BOARDDIR} does not exist"
|
||||||
show_usage
|
show_usage
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -r ${ARCHDIR}/Make.defs ]; then
|
if [ ! -r ${BOARDDIR}/Make.defs ]; then
|
||||||
echo "File ${ARCHDIR}/Make.defs does not exist"
|
echo "File ${BOARDDIR}/Make.defs does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -r ${ARCHDIR}/setenv.sh ]; then
|
if [ ! -r ${BOARDDIR}/setenv.sh ]; then
|
||||||
echo "File ${ARCHDIR}/setenv.sh does not exist"
|
echo "File ${BOARDDIR}/setenv.sh does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -r ${ARCHDIR}/defconfig ]; then
|
if [ ! -r ${BOARDDIR}/defconfig ]; then
|
||||||
echo "File ${ARCHDIR}/defconfig does not exist"
|
echo "File ${BOARDDIR}/defconfig does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp -f ${ARCHDIR}/Make.defs ${TOPDIR}/. || \
|
cp -f ${BOARDDIR}/Make.defs ${TOPDIR}/. || \
|
||||||
{ echo "Failed to copy ${ARCHDIR}/Make.defs" ; exit 1 ; }
|
{ echo "Failed to copy ${BOARDDIR}/Make.defs" ; exit 1 ; }
|
||||||
cp -f ${ARCHDIR}/setenv.sh ${TOPDIR}/. || \
|
cp -f ${BOARDDIR}/setenv.sh ${TOPDIR}/. || \
|
||||||
{ echo "Failed to copy ${ARCHDIR}/setenv.sh" ; exit 1 ; }
|
{ echo "Failed to copy ${BOARDDIR}/setenv.sh" ; exit 1 ; }
|
||||||
cp -f ${ARCHDIR}/defconfig ${TOPDIR}/.config || \
|
cp -f ${BOARDDIR}/defconfig ${TOPDIR}/.config || \
|
||||||
{ echo "Failed to copy ${ARCHDIR}/defconfig" ; exit 1 ; }
|
{ echo "Failed to copy ${BOARDDIR}/defconfig" ; exit 1 ; }
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -41,7 +41,7 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#define DEFCONFIG "defconfig"
|
#define DEFCONFIG ".config"
|
||||||
#define LINESIZE 256
|
#define LINESIZE 256
|
||||||
|
|
||||||
static char line[LINESIZE+1];
|
static char line[LINESIZE+1];
|
||||||
@@ -156,7 +156,7 @@ static void parse_file(FILE *stream)
|
|||||||
|
|
||||||
static void show_usage(const char *progname)
|
static void show_usage(const char *progname)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "USAGE: %s <abs path to defconfig>\n", progname);
|
fprintf(stderr, "USAGE: %s <abs path to .config>\n", progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user