Support for the older, manual configurations has been completely removed from the NuttX build system
This commit is contained in:
parent
596bdc73df
commit
4cbdbc875e
11
ChangeLog
11
ChangeLog
@ -6923,3 +6923,14 @@
|
|||||||
* configs/rgmp/x86/cxxtest: Configuration converted to use the
|
* configs/rgmp/x86/cxxtest: Configuration converted to use the
|
||||||
kconfig-frontends tools. This completes the conversion of all
|
kconfig-frontends tools. This completes the conversion of all
|
||||||
configurations to the newer format (2014-3-6)
|
configurations to the newer format (2014-3-6)
|
||||||
|
* Removed the CONFIG_NUTTX_NEWCONFIG setting from every defconfig
|
||||||
|
file (2014-3-6).
|
||||||
|
* The legacy, manual configuration is no longer supported by the
|
||||||
|
NuttX build system. Only the newer configurations generated by
|
||||||
|
the kconfig-frontends tools will generate viable NuttX
|
||||||
|
configurations. All board configurations in the NuttX source tree
|
||||||
|
have bee converted to use the newer configuration, but if you have
|
||||||
|
some older style configurations for you board, you will need to
|
||||||
|
convert those configurations to use the kconfig-frontends tools.
|
||||||
|
See http://www.nuttx.org/doku.php?id=wiki:howtos:convertconfig for
|
||||||
|
some guidelines (2014-3-6).
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<tr align="center" bgcolor="#e4e4e4">
|
<tr align="center" bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
<h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1>
|
<h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1>
|
||||||
<p>Last Updated: February 20, 2014</p>
|
<p>Last Updated: March 6, 2014</p>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@ -3863,32 +3863,6 @@ CONFIG_SCHED_WAITPID=y
|
|||||||
Of course, even with <code>CONFIG_SCHED_WAITPID=y</code> defined, specific applications can still be forced to run asynchronously by adding the ampersand (&) after the NSH command.
|
Of course, even with <code>CONFIG_SCHED_WAITPID=y</code> defined, specific applications can still be forced to run asynchronously by adding the ampersand (&) after the NSH command.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>4.3.3 Application Configuration File</h3>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>The appconfig File</b>.
|
|
||||||
A special configuration file is used to configure which applications are to be included in the build.
|
|
||||||
The source for this file is saved at <code>configs/<board>/<configuration>/appconfig</code>.
|
|
||||||
The existence of the <code>appconfig</code> file in the board configuration directory is sufficient to enable building of applications.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
The <code>appconfig</code> file is copied into the <code>apps/</code> directory as <code>.config</code> when NuttX is configured.
|
|
||||||
<code>.config</code> is included by the top-level <code>apps/Makefile</code>.
|
|
||||||
As a minimum, this configuration file must define files to add to the <code>CONFIGURED_APPS</code> list like:
|
|
||||||
</p>
|
|
||||||
<ul><pre>
|
|
||||||
CONFIGURED_APPS += examples/hello
|
|
||||||
</pre></ul>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<b>Changes in the Works</b>.
|
|
||||||
There are changes in the works that will obsolete the <code>appconfig</code> file.
|
|
||||||
These changes will implement an automated configuration system for NuttX.
|
|
||||||
One consequence of this new configuration system is that the <code>appconfig</code> file will become obsolete and will be replaced by a new mechanism for selecting applications.
|
|
||||||
This new mechanism is not yet available, but is dicussed here: <a href="http://tech.groups.yahoo.com/group/nuttx/message/1604">http://tech.groups.yahoo.com/group/nuttx/message/1604</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<table width ="100%">
|
<table width ="100%">
|
||||||
<tr bgcolor="#e4e4e4">
|
<tr bgcolor="#e4e4e4">
|
||||||
<td>
|
<td>
|
||||||
@ -4142,8 +4116,6 @@ mount -t vfat /dev/ram1 /tmp
|
|||||||
<li><a href="#cmdtest"><code>[</code></a></li>
|
<li><a href="#cmdtest"><code>[</code></a></li>
|
||||||
<li><a href="#custoncmds">Adding NSH commands</a></li>
|
<li><a href="#custoncmds">Adding NSH commands</a></li>
|
||||||
<li><a href="#cmdaddroute"><code>addroute</code></a></li>
|
<li><a href="#cmdaddroute"><code>addroute</code></a></li>
|
||||||
<li><a href="#custapps"><code>appconfig</code></a></li>
|
|
||||||
<li><a href="#custapps">Application configuration file (<code>appconfig</code>)</a></li>
|
|
||||||
<li><a href="#custapps">Autogenerated header files</a></li>
|
<li><a href="#custapps">Autogenerated header files</a></li>
|
||||||
<li><a href="#cmdoverview">Background commands</a></li>
|
<li><a href="#cmdoverview">Background commands</a></li>
|
||||||
<li><a href="#cmdoverview">Background command priority</a></li>
|
<li><a href="#cmdoverview">Background command priority</a></li>
|
||||||
@ -4196,10 +4168,10 @@ mount -t vfat /dev/ram1 /tmp
|
|||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NESTDEPTH</code></a></li>
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NESTDEPTH</code></a></li>
|
||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NETMASK</code></a></li>
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NETMASK</code></a></li>
|
||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NOMAC</code></a></li>
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_NOMAC</code></a></li>
|
||||||
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_READLINE</code></a></li>
|
||||||
</ul></td>
|
</ul></td>
|
||||||
<td width="33%" valign="top">
|
<td width="33%" valign="top">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_READLINE</code></a></li>
|
|
||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSDEVNO</code></a></li>
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSDEVNO</code></a></li>
|
||||||
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSETC</code></a></li>
|
<li><a href="#nshconfiguration"><code>CONFIG_NSH_ROMFSETC</code></a></li>
|
||||||
<li><a href="#custinit"><code>CONFIG_NSH_ROMFSETC</code></a></li>
|
<li><a href="#custinit"><code>CONFIG_NSH_ROMFSETC</code></a></li>
|
||||||
|
@ -645,20 +645,14 @@
|
|||||||
|-- <i><config1-dir></i>
|
|-- <i><config1-dir></i>
|
||||||
| |-- Make.defs
|
| |-- Make.defs
|
||||||
| |-- defconfig
|
| |-- defconfig
|
||||||
| |-- appconfig<sup>1</sup>
|
|
||||||
| `-- setenv.sh
|
| `-- setenv.sh
|
||||||
|-- <i><config2-dir></i>
|
|-- <i><config2-dir></i>
|
||||||
| |-- Make.defs
|
| |-- Make.defs
|
||||||
| |-- defconfig
|
| |-- defconfig
|
||||||
| |-- appconfig<sup>1</sup>
|
|
||||||
| `-- setenv.sh
|
| `-- setenv.sh
|
||||||
| ...
|
| ...
|
||||||
`-- <i>(other board-specific configuration sub-directories)</i>/
|
`-- <i>(other board-specific configuration sub-directories)</i>/
|
||||||
</pre>
|
</pre></ul>
|
||||||
<p><small>
|
|
||||||
<sup>1</sup>Optional
|
|
||||||
</small></p>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3><a name="summaryofconfigfiles">2.4.2 Summary of Files</a></h3>
|
<h3><a name="summaryofconfigfiles">2.4.2 Summary of Files</a></h3>
|
||||||
<h4><a name="boardlogic">2.4.2.1 Board Specific Logic</a></h4>
|
<h4><a name="boardlogic">2.4.2.1 Board Specific Logic</a></h4>
|
||||||
@ -744,13 +738,6 @@
|
|||||||
most C files in the system.</li>
|
most C files in the system.</li>
|
||||||
</ol></p>
|
</ol></p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<p>
|
|
||||||
<code>appconfig</code>: This is another configuration file that is specific to the
|
|
||||||
application. This file is copied into the application build directory
|
|
||||||
when NuttX is configured. See <code>../apps/README.txt</code> for further details.
|
|
||||||
</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<p>
|
<p>
|
||||||
<code>setenv.sh</code>: This is a script that you can include that will be installed at
|
<code>setenv.sh</code>: This is a script that you can include that will be installed at
|
||||||
@ -1461,15 +1448,6 @@ netutils/
|
|||||||
<li>Copy <code>configs/</code><i><board-name></i><code>/[</code><i><config-dir></i><code>/]defconfig</code> to <code>${TOPDIR}/.config</code></li>
|
<li>Copy <code>configs/</code><i><board-name></i><code>/[</code><i><config-dir></i><code>/]defconfig</code> to <code>${TOPDIR}/.config</code></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
|
||||||
And if <code>configs/</code><i><board-name></i><code>/[</code><i><config-dir></i><code>/appconfig</code> exists in the board configuration directory:
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<li>Copy <code>configs/</code><i><board-name></i><code>/[</code><i><config-dir></i><code>/appconfig</code> to <app-dir><code>/.config</code></li>
|
|
||||||
<li><code>echo "APPS_LOC=\"<app-dir>\"" >> "${TOPDIR}/.config"</code></li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</p>
|
|
||||||
<p>
|
<p>
|
||||||
Where <i><board-name></i> is the name of one of the sub-directories of the
|
Where <i><board-name></i> is the name of one of the sub-directories of the
|
||||||
NuttX <a href="#DirStructConfigs"><code>configs/</code></a> directory.
|
NuttX <a href="#DirStructConfigs"><code>configs/</code></a> directory.
|
||||||
@ -1500,8 +1478,7 @@ netutils/
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
If <code>configs/</code><i><board-name></i><code>/[</code><i><config-dir></i>]<code>/appconfig</code>
|
If your application directory is not in the standard loction (<code>../apps</code> or <code>../apps-<version></code>),
|
||||||
exists and your application directory is not in the standard loction (<config>../apps</config>),
|
|
||||||
then you should also specify the location of the application directory on the command line like:
|
then you should also specify the location of the application directory on the command line like:
|
||||||
</p>
|
</p>
|
||||||
<ul><pre>
|
<ul><pre>
|
||||||
|
7
Kconfig
7
Kconfig
@ -9,13 +9,6 @@ config APPSDIR
|
|||||||
string
|
string
|
||||||
option env="APPSDIR"
|
option env="APPSDIR"
|
||||||
|
|
||||||
# This is a temporary kludge to let the build system know that we are using the new
|
|
||||||
# configuration system
|
|
||||||
|
|
||||||
config NUTTX_NEWCONFIG
|
|
||||||
bool
|
|
||||||
default y
|
|
||||||
|
|
||||||
menu "Build Setup"
|
menu "Build Setup"
|
||||||
|
|
||||||
config EXPERIMENTAL
|
config EXPERIMENTAL
|
||||||
|
@ -802,10 +802,7 @@ endif
|
|||||||
# apps_clean: Perform the clean operation only in the user application
|
# apps_clean: Perform the clean operation only in the user application
|
||||||
# directory
|
# directory
|
||||||
# apps_distclean: Perform the distclean operation only in the user application
|
# apps_distclean: Perform the distclean operation only in the user application
|
||||||
# directory. Note that the apps/.config file (inf any) is
|
# directory.
|
||||||
# preserved so that this is not a "full" distclean but more of a
|
|
||||||
# configuration "reset." (There will not be an apps/.config
|
|
||||||
# file if the configuration was generated via make menuconfig).
|
|
||||||
|
|
||||||
apps_clean:
|
apps_clean:
|
||||||
ifneq ($(APPDIR),)
|
ifneq ($(APPDIR),)
|
||||||
@ -814,15 +811,5 @@ endif
|
|||||||
|
|
||||||
apps_distclean:
|
apps_distclean:
|
||||||
ifneq ($(APPDIR),)
|
ifneq ($(APPDIR),)
|
||||||
$(Q) if [ -r "$(TOPDIR)/$(APPDIR)/.config" ]; then \
|
|
||||||
cp "$(TOPDIR)/$(APPDIR)/.config" _SAVED_APPS_config || \
|
|
||||||
{ echo "Copy of $(APPDIR)/.config failed" ; exit 1 ; } \
|
|
||||||
else \
|
|
||||||
rm -f _SAVED_APPS_config; \
|
|
||||||
fi
|
|
||||||
$(Q) $(MAKE) -C "$(TOPDIR)/$(APPDIR)" TOPDIR="$(TOPDIR)" distclean
|
$(Q) $(MAKE) -C "$(TOPDIR)/$(APPDIR)" TOPDIR="$(TOPDIR)" distclean
|
||||||
$(Q) if [ -r _SAVED_APPS_config ]; then \
|
|
||||||
mv _SAVED_APPS_config "$(TOPDIR)/$(APPDIR)/.config" || \
|
|
||||||
{ echo "Copy of _SAVED_APPS_config failed" ; exit 1 ; } \
|
|
||||||
fi
|
|
||||||
endif
|
endif
|
||||||
|
@ -799,10 +799,7 @@ endif
|
|||||||
# apps_clean: Perform the clean operation only in the user application
|
# apps_clean: Perform the clean operation only in the user application
|
||||||
# directory
|
# directory
|
||||||
# apps_distclean: Perform the distclean operation only in the user application
|
# apps_distclean: Perform the distclean operation only in the user application
|
||||||
# directory. Note that the apps\.config file (inf any) is
|
# directory.
|
||||||
# preserved so that this is not a "full" distclean but more of a
|
|
||||||
# configuration "reset." (There will not be an apps\.config
|
|
||||||
# file if the configuration was generated via make menuconfig).
|
|
||||||
|
|
||||||
apps_clean:
|
apps_clean:
|
||||||
ifneq ($(APPDIR),)
|
ifneq ($(APPDIR),)
|
||||||
@ -811,8 +808,5 @@ endif
|
|||||||
|
|
||||||
apps_distclean:
|
apps_distclean:
|
||||||
ifneq ($(APPDIR),)
|
ifneq ($(APPDIR),)
|
||||||
$(call DELFILE, _SAVED_APPS_config
|
|
||||||
$(Q) if exist "$(APPDIR)\.config" ( cp "$(APPDIR)\.config" _SAVED_APPS_config )
|
|
||||||
$(Q) $(MAKE) -C "$(APPDIR)" TOPDIR="$(TOPDIR)" distclean
|
$(Q) $(MAKE) -C "$(APPDIR)" TOPDIR="$(TOPDIR)" distclean
|
||||||
$(Q) if exist _SAVED_APPS_config ( mv _SAVED_APPS_config "$(APPDIR)\.config" )
|
|
||||||
endif
|
endif
|
||||||
|
100
README.txt
100
README.txt
@ -12,7 +12,6 @@ README
|
|||||||
- Instantiating "Canned" Configurations
|
- Instantiating "Canned" Configurations
|
||||||
- NuttX Configuration Tool
|
- NuttX Configuration Tool
|
||||||
- Incompatibilities with Older Configurations
|
- Incompatibilities with Older Configurations
|
||||||
- Converting Older Configurations to use the Configuration Tool
|
|
||||||
- NuttX Configuration Tool under DOS
|
- NuttX Configuration Tool under DOS
|
||||||
o Toolchains
|
o Toolchains
|
||||||
- Cross-Development Toolchains
|
- Cross-Development Toolchains
|
||||||
@ -254,14 +253,6 @@ additional file to the directory the NuttX application package (APPSDIR)):
|
|||||||
included in the build and what is not. This file is also used
|
included in the build and what is not. This file is also used
|
||||||
to generate a C configuration header at include/nuttx/config.h.
|
to generate a C configuration header at include/nuttx/config.h.
|
||||||
|
|
||||||
Copy configs/<board-name>/<config-dir>/appconfig to ${APPSDIR}/.config
|
|
||||||
|
|
||||||
The appconfig file describes the applications that need to be
|
|
||||||
built in the appliction directory (APPSDIR). Not all configurations
|
|
||||||
have an appconfig file. This file is deprecated and will not be
|
|
||||||
used with new defconfig files produced with the kconfig-mconf
|
|
||||||
configuration tool.
|
|
||||||
|
|
||||||
General information about configuring NuttX can be found in:
|
General information about configuring NuttX can be found in:
|
||||||
|
|
||||||
${TOPDIR}/configs/README.txt
|
${TOPDIR}/configs/README.txt
|
||||||
@ -379,98 +370,25 @@ Incompatibilities with Older Configurations
|
|||||||
|
|
||||||
***** WARNING *****
|
***** WARNING *****
|
||||||
|
|
||||||
The old legacy, manual configurations and the new kconfig-frontends
|
The current NuttX build system supports *only* the new configuration
|
||||||
configurations are not 100% compatible. Old legacy configurations
|
files generated using the kconfig-frontends tools. The older, legacy,
|
||||||
can *not* be used with the kconfig-frontends tool: If you run
|
manual configurations and the new kconfig-frontends configurations are
|
||||||
'make menuconfig' with a legacy configuration the resulting
|
not compatible. Old legacy configurations can *not* be used with the kconfig-frontends tool and, hence, cannot be used with recent releases
|
||||||
|
of NuttX:
|
||||||
|
|
||||||
|
If you run 'make menuconfig' with a legacy configuration the resulting
|
||||||
configuration will probably not be functional.
|
configuration will probably not be functional.
|
||||||
|
|
||||||
Q: How can I tell if a configuration is a new kconfig-frontends
|
Q: How can I tell if a configuration is a new kconfig-frontends
|
||||||
configuration or an older, manual configuration?
|
configuration or an older, manual configuration?
|
||||||
|
|
||||||
A: a) New kcondfig-frontends configurations will have this setting
|
A: Only old, manual configurations will have an appconfig file
|
||||||
within the defconfig/.config file":
|
|
||||||
|
|
||||||
CONFIG_NUTTX_NEWCONFIG=y
|
|
||||||
|
|
||||||
b) Only old, manual configurations will have an appconfig file
|
|
||||||
|
|
||||||
Converting Older Configurations to use the Configuration Tool
|
|
||||||
-------------------------------------------------------------
|
|
||||||
|
|
||||||
Q: How can I convert a older, manual configuration into a new,
|
Q: How can I convert a older, manual configuration into a new,
|
||||||
kconfig-frontends toolchain.
|
kconfig-frontends toolchain.
|
||||||
|
|
||||||
A: 1) Look at the appconfig file: Each application path there
|
A: Refer to http://www.nuttx.org/doku.php?id=wiki:howtos:convertconfig
|
||||||
will now have to have an enabling setting. For example,
|
|
||||||
if the old appconfig file had:
|
|
||||||
|
|
||||||
CONFIGURED_APPS = examples/ostest
|
|
||||||
|
|
||||||
Then the new configuration will need:
|
|
||||||
|
|
||||||
CONFIG_EXAMPLES_OSTEST=y
|
|
||||||
|
|
||||||
The appconfig file can then be deleted because it will not
|
|
||||||
be needed after the conversion.
|
|
||||||
|
|
||||||
2) Build the cmpconfig utility at tools:
|
|
||||||
|
|
||||||
cd tools
|
|
||||||
make -f Makefile.host cmpconfig
|
|
||||||
|
|
||||||
3) Perform these steps repeatedly until you are convinced that
|
|
||||||
the configurations are the same:
|
|
||||||
|
|
||||||
a) Repeat the following until you have account for all of the differences:
|
|
||||||
|
|
||||||
cp configs/<board>/<condfiguration>/defconfig .config
|
|
||||||
make menuconfig (Just exit and save the new .config file)
|
|
||||||
tools/cmpconfig configs/<board>/<condfiguration>/defconfig .config | grep file1
|
|
||||||
|
|
||||||
The final grep will show settings in the old defconfig file that
|
|
||||||
do not appear in the new .config file (or have a different value
|
|
||||||
in the new .config file). In the new configuration, you will
|
|
||||||
probably have to enable certain groups of features. Such
|
|
||||||
hierarachical enabling options were not part of the older
|
|
||||||
configuration.
|
|
||||||
|
|
||||||
b) Then make sure these all make sense:
|
|
||||||
|
|
||||||
tools/cmpconfig configs/<board>/<condfiguration>/defconfig .config | grep file2
|
|
||||||
|
|
||||||
The final grep will show settings in the new .config file that
|
|
||||||
do not appear in the older defconfig file (or have a different value
|
|
||||||
in the new .config file). Here you should see only the new
|
|
||||||
hierarachical enabling options (such as CONFIG_SPI or CONFIG_MMCSD)
|
|
||||||
plus some other internal configuration settings (like CONFIG_ARCH_HAVE_UART0).
|
|
||||||
You will have to convince yourself that these new settings all make sense.
|
|
||||||
|
|
||||||
4) Finally, update the configuration:
|
|
||||||
|
|
||||||
cp .config configs/<board>/<condfiguration>/defconfig
|
|
||||||
rm configs/<board>/<condfiguration>/appconfig
|
|
||||||
|
|
||||||
NOTE: You should comment out the line containing the CONFIG_APPS_DIR
|
|
||||||
in the new defconfig file. Why? Because the application directory
|
|
||||||
may reside at a different location when the configuration is installed
|
|
||||||
at some later time.
|
|
||||||
|
|
||||||
# CONFIG_APPS_DIR="../apps"
|
|
||||||
|
|
||||||
5) The updated configuration can then be instantiated in the normal
|
|
||||||
fashion:
|
|
||||||
|
|
||||||
cd tools
|
|
||||||
./configure.sh <board>/<condfiguration>
|
|
||||||
|
|
||||||
(or configure.bat for the case of the Windows native build).
|
|
||||||
|
|
||||||
NOTE: If CONFIG_APPS_DIR is not defined in the defconfig file,
|
|
||||||
the configure.sh script will find and add the new, correct path to
|
|
||||||
the application directory (CONFIG_APPS_DIR) when it copies the
|
|
||||||
defconfig file to the .config file. This is the setting that was
|
|
||||||
commented out in step 4.
|
|
||||||
|
|
||||||
NuttX Configuration Tool under DOS
|
NuttX Configuration Tool under DOS
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
@ -60,17 +60,13 @@ following characteristics:
|
|||||||
|-- <config1-dir>
|
|-- <config1-dir>
|
||||||
| |-- Make.defs
|
| |-- Make.defs
|
||||||
| |-- defconfig
|
| |-- defconfig
|
||||||
| |-- appconfig*
|
|
||||||
| `-- setenv.sh
|
| `-- setenv.sh
|
||||||
|-- <config2-dir>
|
|-- <config2-dir>
|
||||||
| |-- Make.defs
|
| |-- Make.defs
|
||||||
| |-- defconfig
|
| |-- defconfig
|
||||||
| |-- appconfig*
|
|
||||||
| `-- setenv.sh
|
| `-- setenv.sh
|
||||||
...
|
...
|
||||||
|
|
||||||
*optional
|
|
||||||
|
|
||||||
Summary of Files
|
Summary of Files
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -132,10 +128,6 @@ defconfig -- This is a configuration file similar to the Linux
|
|||||||
(2) to generate include/nuttx/config.h which is included by
|
(2) to generate include/nuttx/config.h which is included by
|
||||||
most C files in the system.
|
most C files in the system.
|
||||||
|
|
||||||
appconfig -- This is another configuration file that is specific to the
|
|
||||||
application. This file is copied into the application build directory
|
|
||||||
when NuttX is configured. See ../apps/README.txt for further details.
|
|
||||||
|
|
||||||
setenv.sh -- This is a script that you can include that will be installed at
|
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
|
the toplevel of the directory structure and can be sourced to set any
|
||||||
necessary environment variables. You will most likely have to customize the
|
necessary environment variables. You will most likely have to customize the
|
||||||
@ -622,12 +614,6 @@ Configuring NuttX requires only copying
|
|||||||
configs/<board-name>/<config-dir>/setenv.sh to ${TOPDIR}/setenv.sh
|
configs/<board-name>/<config-dir>/setenv.sh to ${TOPDIR}/setenv.sh
|
||||||
configs/<board-name>/<config-dir>/defconfig to ${TOPDIR}/.config
|
configs/<board-name>/<config-dir>/defconfig to ${TOPDIR}/.config
|
||||||
|
|
||||||
And if configs/<board-name>/<config-dir>/appconfig exists in the board
|
|
||||||
configuration directory:
|
|
||||||
|
|
||||||
Copy configs/<board-name>/<config-dir>/appconfig to <app-dir>/.config
|
|
||||||
echo "APPS_LOC=\"<app-dir>\"" >> "${TOPDIR}/.config"
|
|
||||||
|
|
||||||
tools/configure.sh
|
tools/configure.sh
|
||||||
There is a script that automates these steps. The following steps will
|
There is a script that automates these steps. The following steps will
|
||||||
accomplish the same configuration:
|
accomplish the same configuration:
|
||||||
@ -643,10 +629,9 @@ tools/configure.sh
|
|||||||
|
|
||||||
See tools/README.txt for more information about these scripts.
|
See tools/README.txt for more information about these scripts.
|
||||||
|
|
||||||
And if configs/<board-name>/<config-dir>/appconfig exists and your
|
And if your application directory is not in the standard loction (../apps
|
||||||
application directory is not in the standard loction (../apps), then
|
or ../apps-<version>), then you should also specify the location of the
|
||||||
you should also specify the location of the application directory on the
|
application directory on the command line like:
|
||||||
command line like:
|
|
||||||
|
|
||||||
cd tools
|
cd tools
|
||||||
./configure.sh -a <app-dir> <board-name>/<config-dir>
|
./configure.sh -a <app-dir> <board-name>/<config-dir>
|
||||||
|
@ -1053,11 +1053,11 @@ Where <subdir> is one of the following:
|
|||||||
USB serial example at apps/examples/usbterm by changing the
|
USB serial example at apps/examples/usbterm by changing the
|
||||||
following:
|
following:
|
||||||
|
|
||||||
-CONFIGURED_APPS += examples/usbserial
|
-CONFIG_EXAMPLES_USBSERIAL=y
|
||||||
+CONFIGURED_APPS += examples/usbterm
|
+CONFIG_EXAMPLES_USBSERIAL=n
|
||||||
|
|
||||||
In either the original appconfig file (before configuring)
|
-CONFIG_EXAMPLES_USBTERM=n
|
||||||
or in the final apps/.config file (after configuring).
|
+CONFIG_EXAMPLES_USBTERM=y
|
||||||
|
|
||||||
usbmsc:
|
usbmsc:
|
||||||
-------
|
-------
|
||||||
|
@ -933,18 +933,16 @@ Where <subdir> is one of the following:
|
|||||||
CONFIG_CAN_REGDEBUG
|
CONFIG_CAN_REGDEBUG
|
||||||
|
|
||||||
6. This example can support an FTP client. In order to build in FTP client
|
6. This example can support an FTP client. In order to build in FTP client
|
||||||
support simply uncomment the following lines in the appconfig file (before
|
support simply reconfigure NuttX, adding:
|
||||||
configuring) or in the apps/.config file (after configuring):
|
|
||||||
|
|
||||||
#CONFIGURED_APPS += netutils/ftpc
|
CONFIG_NETUTILS_FTPC=y
|
||||||
#CONFIGURED_APPS += examples/ftpc
|
CONFIG_EXAMPLES_FTPC=y
|
||||||
|
|
||||||
7. This example can support an FTP server. In order to build in FTP server
|
7. This example can support an FTP server. In order to build in FTP server
|
||||||
support simply uncomment the following lines in the appconfig file (before
|
support simply add the following lines in the NuttX configuration file:
|
||||||
configuring) or in the apps/.config file (after configuring):
|
|
||||||
|
|
||||||
#CONFIGURED_APPS += netutils/ftpd
|
CONFIG_NETUTILS_FTPD=y
|
||||||
#CONFIGURED_APPS += examples/ftpd
|
CONFIG_EXAMPLES_FTPD=y
|
||||||
|
|
||||||
And enable poll() support in the NuttX configuration file:
|
And enable poll() support in the NuttX configuration file:
|
||||||
|
|
||||||
@ -968,32 +966,31 @@ Where <subdir> is one of the following:
|
|||||||
|
|
||||||
9. Adding LCD and graphics support:
|
9. Adding LCD and graphics support:
|
||||||
|
|
||||||
appconfig (apps/.config): Enable the application configurations that you
|
Enable the application configurations that you want to use. As examples:
|
||||||
want to use. Asexamples:
|
|
||||||
|
|
||||||
CONFIGURED_APPS += examples/nx : Pick one or more
|
CONFIG_EXAMPLES_NX=y : Pick one or more
|
||||||
CONFIGURED_APPS += examples/nxhello :
|
CONFIG_EXAMPLES_NXHELLO=y :
|
||||||
CONFIGURED_APPS += examples/nximage :
|
CONFIG_EXAMPLES_NXIMAGE=y :
|
||||||
CONFIGURED_APPS += examples/nxlines :
|
CONFIG_EXAMPLES_NXLINES=y :
|
||||||
|
|
||||||
defconfig (nuttx/.config):
|
defconfig (nuttx/.config):
|
||||||
|
|
||||||
CONFIG_STM32_FSMC=y : FSMC support is required for the LCD
|
CONFIG_STM32_FSMC=y : FSMC support is required for the LCD
|
||||||
CONFIG_NX=y : Enable graphics suppport
|
CONFIG_NX=y : Enable graphics suppport
|
||||||
CONFIG_MM_REGIONS=2 : When FSMC is enabled, so is the on-board SRAM memory region
|
CONFIG_MM_REGIONS=2 : When FSMC is enabled, so is the on-board SRAM memory region
|
||||||
|
|
||||||
10. USB OTG FS Device or Host Support
|
10. USB OTG FS Device or Host Support
|
||||||
|
|
||||||
CONFIG_USBDEV - Enable USB device support, OR
|
CONFIG_USBDEV : Enable USB device support, OR
|
||||||
CONFIG_USBHOST - Enable USB host support (but not both)
|
CONFIG_USBHOST : Enable USB host support (but not both)
|
||||||
|
|
||||||
CONFIG_STM32_OTGFS - Enable the STM32 USB OTG FS block
|
CONFIG_STM32_OTGFS : Enable the STM32 USB OTG FS block
|
||||||
CONFIG_STM32_SYSCFG - Needed for all USB OTF FS support
|
CONFIG_STM32_SYSCFG : Needed for all USB OTF FS support
|
||||||
|
|
||||||
CONFIG_SCHED_WORKQUEUE - Worker thread support is required for the mass
|
CONFIG_SCHED_WORKQUEUE : Worker thread support is required for the mass
|
||||||
storage class (both host and device).
|
storage class (both host and device).
|
||||||
CONFIG_NSH_ARCHINIT - Architecture specific USB initialization
|
CONFIG_NSH_ARCHINIT : Architecture specific USB initialization
|
||||||
is needed
|
is needed
|
||||||
|
|
||||||
11. This configuration requires that jumper JP22 be set to enable RS-232 operation.
|
11. This configuration requires that jumper JP22 be set to enable RS-232 operation.
|
||||||
|
|
||||||
|
@ -691,8 +691,8 @@ Where <subdir> is one of the following:
|
|||||||
System Type -> PIC32MX Peripheral Support:
|
System Type -> PIC32MX Peripheral Support:
|
||||||
CONFIG_PIC32MX_USBDEV=y : Enable PIC32 USB device support
|
CONFIG_PIC32MX_USBDEV=y : Enable PIC32 USB device support
|
||||||
|
|
||||||
examples/usbterm - This option can be enabled by uncommenting
|
examples/usbterm - This option can be enabled by adding the following
|
||||||
the following line in the appconfig file:
|
to the NuttX configuration file:
|
||||||
|
|
||||||
Application Configuration->Examples:
|
Application Configuration->Examples:
|
||||||
CONFIG_EXAMPLES_USBTERM=y : Selects /apps/examples/usbterm
|
CONFIG_EXAMPLES_USBTERM=y : Selects /apps/examples/usbterm
|
||||||
@ -704,7 +704,7 @@ Where <subdir> is one of the following:
|
|||||||
CONFIG_CDCACM=y : or the CDC/ACM serial driver (not both)
|
CONFIG_CDCACM=y : or the CDC/ACM serial driver (not both)
|
||||||
|
|
||||||
system/cdcacm - The system/cdcacm program can be included as an
|
system/cdcacm - The system/cdcacm program can be included as an
|
||||||
function by uncommenting the following line in the appconfig file:
|
function by dding the following to the NuttX configuration file:
|
||||||
|
|
||||||
Application Configuration->Examples:
|
Application Configuration->Examples:
|
||||||
CONFIG_SYSTEM_CDCACM=y : Select apps/system/cdcacm
|
CONFIG_SYSTEM_CDCACM=y : Select apps/system/cdcacm
|
||||||
@ -714,9 +714,10 @@ Where <subdir> is one of the following:
|
|||||||
Drivers->USB Device Driver Support
|
Drivers->USB Device Driver Support
|
||||||
CONFIG_CDCACM=y : Enable the CDCACM device
|
CONFIG_CDCACM=y : Enable the CDCACM device
|
||||||
|
|
||||||
system/usbmsc - There are some hooks in the appconfig file
|
system/usbmsc - To enable the USB mass storage class (MSC)device,
|
||||||
to enable the USB mass storage class (MSC)device. However, this device
|
you would need to add the following to the NuttX configuration file.
|
||||||
cannot work until support for the SD card is also incorporated.
|
However, this device cannot work until support for the SD card is
|
||||||
|
also incorporated.
|
||||||
|
|
||||||
Drivers->USB Device Driver Support
|
Drivers->USB Device Driver Support
|
||||||
CONFIG_USBMSC=y : Enables the USB MSC class
|
CONFIG_USBMSC=y : Enables the USB MSC class
|
||||||
|
@ -87,11 +87,9 @@ static char *g_verstring = "0.0"; /* Version String */
|
|||||||
|
|
||||||
static char *g_srcdefconfig = NULL; /* Source defconfig file */
|
static char *g_srcdefconfig = NULL; /* Source defconfig file */
|
||||||
static char *g_srcmakedefs = NULL; /* Source Make.defs file */
|
static char *g_srcmakedefs = NULL; /* Source Make.defs file */
|
||||||
static char *g_srcappconfig = NULL ; /* Source appconfig file (optional) */
|
|
||||||
static char *g_srcsetenvsh = NULL; /* Source setenv.sh file (optional) */
|
static char *g_srcsetenvsh = NULL; /* Source setenv.sh file (optional) */
|
||||||
static char *g_srcsetenvbat = NULL; /* Source setenv.bat file (optional) */
|
static char *g_srcsetenvbat = NULL; /* Source setenv.bat file (optional) */
|
||||||
|
|
||||||
static bool g_newconfig = false; /* True: New style configuration */
|
|
||||||
static bool g_winnative = false; /* True: Windows native configuration */
|
static bool g_winnative = false; /* True: Windows native configuration */
|
||||||
static bool g_needapppath = true; /* Need to add app path to the .config file */
|
static bool g_needapppath = true; /* Need to add app path to the .config file */
|
||||||
|
|
||||||
@ -603,15 +601,6 @@ static void check_configuration(void)
|
|||||||
{
|
{
|
||||||
struct variable_s *var;
|
struct variable_s *var;
|
||||||
|
|
||||||
/* Check if this the new style configuration based on kconfig-fontends */
|
|
||||||
|
|
||||||
var = find_variable("CONFIG_NUTTX_NEWCONFIG", g_configvars);
|
|
||||||
if (var && var->val && strcmp("y", var->val) == 0)
|
|
||||||
{
|
|
||||||
debug("check_configuration: New style configuration\n");
|
|
||||||
g_newconfig = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check if this is a Windows native configuration */
|
/* Check if this is a Windows native configuration */
|
||||||
|
|
||||||
var = find_variable("CONFIG_WINDOWS_NATIVE", g_configvars);
|
var = find_variable("CONFIG_WINDOWS_NATIVE", g_configvars);
|
||||||
@ -669,23 +658,6 @@ static void check_configuration(void)
|
|||||||
g_srcsetenvsh = strdup(g_buffer);
|
g_srcsetenvsh = strdup(g_buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Old style configurations MUST provide an appconfig file */
|
|
||||||
|
|
||||||
if (!g_newconfig)
|
|
||||||
{
|
|
||||||
snprintf(g_buffer, BUFFER_SIZE, "%s%cappconfig", g_configpath, g_delim);
|
|
||||||
debug("check_configuration: Checking %s\n", g_buffer);
|
|
||||||
if (!verify_file(g_buffer))
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR: Configuration corrupted in %s\n", g_configpath);
|
|
||||||
fprintf(stderr, " Required appconfig file not found.\n");
|
|
||||||
enumerate_configs();
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_srcappconfig = strdup(g_buffer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void copy_file(const char *srcpath, const char *destpath, mode_t mode)
|
static void copy_file(const char *srcpath, const char *destpath, mode_t mode)
|
||||||
@ -803,15 +775,6 @@ static void configure(void)
|
|||||||
copy_file(g_srcsetenvbat, g_buffer, 0644);
|
copy_file(g_srcsetenvbat, g_buffer, 0644);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the appconfig file to ../apps/.config if have one and need one */
|
|
||||||
|
|
||||||
if (g_srcappconfig)
|
|
||||||
{
|
|
||||||
snprintf(g_buffer, BUFFER_SIZE, "%s%c.config", g_apppath, g_delim);
|
|
||||||
debug("configure: Copying from %s to %s\n", g_srcappconfig, g_buffer);
|
|
||||||
copy_file(g_srcappconfig, g_buffer, 0644);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If we did not use the CONFIG_APPS_DIR that was in the defconfig config file,
|
/* If we did not use the CONFIG_APPS_DIR that was in the defconfig config file,
|
||||||
* then append the correct application information to the tail of the .config
|
* then append the correct application information to the tail of the .config
|
||||||
* file
|
* file
|
||||||
|
@ -133,15 +133,12 @@ if [ ! -r "${src_config}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract values needed from the defconfig file. We need:
|
# Extract values needed from the defconfig file. We need:
|
||||||
# (1) The CONFIG_NUTTX_NEWCONFIG setting to know if this is a "new" style
|
# (1) The CONFIG_WINDOWS_NATIVE setting to know it this is target for a
|
||||||
# configuration,
|
|
||||||
# (2) The CONFIG_WINDOWS_NATIVE setting to know it this is target for a
|
|
||||||
# native Windows (meaning that we want setenv.bat vs setenv.sh and we need
|
# native Windows (meaning that we want setenv.bat vs setenv.sh and we need
|
||||||
# to use backslashes in the CONFIG_APPS_DIR setting).
|
# to use backslashes in the CONFIG_APPS_DIR setting).
|
||||||
# (3) The CONFIG_APPS_DIR setting to see if there is a configured location for the
|
# (2) The CONFIG_APPS_DIR setting to see if there is a configured location for the
|
||||||
# application directory. This can be overridden from the command line.
|
# application directory. This can be overridden from the command line.
|
||||||
|
|
||||||
newconfig=`grep CONFIG_NUTTX_NEWCONFIG= "${src_config}" | cut -d'=' -f2`
|
|
||||||
winnative=`grep CONFIG_WINDOWS_NATIVE= "${src_config}" | cut -d'=' -f2`
|
winnative=`grep CONFIG_WINDOWS_NATIVE= "${src_config}" | cut -d'=' -f2`
|
||||||
|
|
||||||
defappdir=y
|
defappdir=y
|
||||||
@ -218,16 +215,3 @@ if [ "X${defappdir}" = "Xy" ]; then
|
|||||||
echo "CONFIG_APPS_DIR=\"$posappdir\"" >> "${dest_config}"
|
echo "CONFIG_APPS_DIR=\"$posappdir\"" >> "${dest_config}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy appconfig file. The appconfig file will be copied to ${appdir}/.config
|
|
||||||
# if both (1) ${appdir} is defined and (2) we are not using the new configuration
|
|
||||||
# (which does not require a .config file in the appsdir.
|
|
||||||
|
|
||||||
if [ ! -z "${appdir}" -a "X${newconfig}" != "Xy" ]; then
|
|
||||||
if [ ! -r "${configpath}/appconfig" ]; then
|
|
||||||
echo "NOTE: No readable appconfig file found in ${configpath}"
|
|
||||||
else
|
|
||||||
install -m 644 "${configpath}/appconfig" "${TOPDIR}/${posappdir}/.config" || \
|
|
||||||
{ echo "Failed to copy ${configpath}/appconfig" ; exit 10 ; }
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
Loading…
Reference in New Issue
Block a user