diff options
Diffstat (limited to 'nuttx/README.txt')
-rw-r--r-- | nuttx/README.txt | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/nuttx/README.txt b/nuttx/README.txt index dc3c9fb67..c00f086a1 100644 --- a/nuttx/README.txt +++ b/nuttx/README.txt @@ -10,6 +10,8 @@ README o Configuring NuttX - Instantiating "Canned" Configurations - NuttX Configuration Tool + - Incompatibilities with Older Configurations + - Converting Older Configurations to use the Configuration Tool - NuttX Configuration Tool under DOS o Toolchains - Cross-Development Toolchains @@ -292,6 +294,114 @@ NuttX Configuration Tool install 'mconf', make certain that your PATH variable includes a path to that installation directory. + The basic configuration order is "bottom-up": + + - Select the build environment, + - Select the processor, + - Select the board, + - Select the supported peripherals + - Configure the device drivers, + - Configure the application options on top of this. + + This is pretty straight forward for creating new configurations + but may be less intuitive for modifying existing configurations. + +Incompatibilities with Older Configurations +------------------------------------------- + + ***** WARNING ***** + + The old legacy, manual configurations and the new kconfig-frontends + configurations are not 100% compatible. Old legacy configurations + can *not* be used with the kconfig-frontends tool: If you run + 'make menuconfig' with a legacy configuration the resulting + configuration will probably not be functional. + + Q: How can I tell if a configuration is a new kconfig-frontends + configuration or an older, manual configuration? + + A: a) New kcondfig-frontends configurations will have this setting + 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, + kconfig-frontends toolchain. + + A: 1) Look at the appconfig file: Each application path there + 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> + + 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 ---------------------------------- |