As you will see in this section, upgrading eCosPro Configurations to newer eCosPro releases is a manual process that cannot be automated. While there are no hard and fast rules that can be followed, this section provides general advice and information on what steps should be followed and what can be expected when you move an eCosPro configuration between different releases of eCosPro.
For existing eCosPro configuration projects that need to move to a newer version of eCosPro, the most effective method to achieve this is to export the configuration information from the earlier version of eCosPro and import this configuration information into the updated version. This may be achieved using the Export and Import functions of the graphical Configuration Tool or at the command line using the ecosconfig command. For example, from the command line:
Figure 7-1. ecosconfig export and import
test@ubuntu:~$ export ECOS_REPOSITORY=/opt/ecospro/ecos-old-version/packages test@ubuntu:~$ ecosconfig --config=/path/to/old/ecos.ecc export config.ecm test@ubuntu:~$ export ECOS_REPOSITORY=/opt/ecospro/ecos-new-version/packages test@ubuntu:~$ touch /path/to/new/ecos.ecc test@ubuntu:~$ ecosconfig --config=/path/to/new/ecos.ecc import config.ecm
If you are using the graphical Configuration Tool, you are advised to:
load your eCos configuration under the old eCosPro profile
Export the configuration settings which will save the eCos configuration to a minimal eCos configuration save file
switch to the new eCosPro profile by exiting the graphical Configuration Tool and starting the graphical Configuration Tool again through the Desktop menu appropriate to the newer eCosPro release
Note: Future versions of the graphical Configuration Tool may allow you to switch eCosPro profiles from within the Tools submenu without having to restart the Configuration Tool.
Import the configuration settings from the minimal eCos configuration file created by the previous Export
If you have modified the sources within the old eCos repository, you will also need to migrate your changes into the respective updated packages prior to attempting to upgrade the eCos configuration. Similarly, if you have added new packages or sources into the old eCos repository, you will need to copy over these additional packages and files, updating the ecos.db in the new eCos repository as necessary prior to attempting to upgrade the eCos configuration.
The import operation for both tools will produce benign warnings where packages have been updated, switching the packages to the newer version. However, where packages or configuration options have been removed or renamed, the import process will fail. In such instances, developers are advised to look for similar options or replacement packages in the newer version and adjust the import file accordingly by editing it with a standard text editor until the import operation succeeds. Once the minimal configuration file has been imported into a new eCos configuration, developers need to consider what the implications are, if any, of configurations settings that did not move across cleanly to the new version of eCosPro to their eCosPro application(s) and make further refinements if necessary.
A typical case where configurations settings will be missing between eCosPro releases is where the eCosPro releases are targetted at different hardware architectures. For example, if an existing product uses eCosPro on a PowerPC architecture and a newer version of the product uses the ARM Cortex-M4 architecture, all of the PowerPC architectural and platform configuration information will both be not applicable and likely missing from the eCosPro ARM release. However, generic non-architecture specific configuration points such as TCP/IP packages, scheduler, memory pools, etc. will transfer easily between the two eCosPro releases.
Note: Switching between eCosPro profiles that contain different eCos repositories or versions is effectively the same operation as upgrading or downgrading to a newer or older release of eCosPro respectively. eCos configuration files (with .ecc extensions) are therefore not directly transferrable between eCosPro profiles. eCos configurations within one profile must be exported and subsequently imported into other profiles using the operations described above.
Developers are strongly advised not to update eCos configurations by using the previous eCos release's .ecc file directly. Doing so could not only result in conflicts and problems especially if there are any changed option names, but if either the graphical Configuration Tool or the ecosconfig command are allowed to resolve configuration conflicts you would likely end up with an eCos configuration that is beyond practical use. This is due to the strongly possibility they may make a number of inappropriate inferences to resolve new conflicts that are based off configuration settings inferred by the earlier version of eCosPro.