Chapter 8. Upgrading eCosPro and Components

eCosPro and its components may be upgraded individually as required and as updates become available.

8.1. Upgrading eCosPro

When upgrading eCosPro, the new version is installed alongside the old version which is not automatically uninstalled. Instead a new eCosPro profile is simply added to your host system allowing you to choose between different versions of eCosPro. This is similar to having multiple installations of eCosPro for different architectures or platforms. On completion of an upgrade you will see an additional menu folder, such as those shown in Chapter 5, After installation, with menu items specific to the upgrade release just as each multiple eCosPro installation is specific to an architecture or platform. To upgrade eCosPro, simply run the setup.exe install launcher or install.sh script as normal and follow the normal installation instructions provided in Chapter 3, Installing and Chapter 4, Installation Walk-through. To remove the older version of eCosPro, follow the instructions provided in Chapter 10, Uninstalling.

8.2. Upgrading eCosPro Configurations to newer eCosPro releases

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 8.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:

  1. load your eCos configuration under the old eCosPro profile
  2. Export the configuration settings which will save the eCos configuration to a minimal eCos configuration save file
  3. 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]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.

  4. 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]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.

[Warning]Warning

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.

8.3. Upgrading eCosPro Host Tools, GNU Tools or Eclipse

When upgrading the eCosPro Host Tools, GNU Tools or Eclipse, the newer versions of these tools will be placed alongside the older version of the tools. Earlier installers for eCosPro Host Tools (those distributed in versions prior to 4.X of the eCosPro Developer's Kits) replaced the older tools with the newer tools.

[Note]Note

When updating the tools to the same location, you must make sure you are not running the graphical Configuration Tool configuration tool or any of the other host tools as the update may fail with unexpected results.

8.4. Upgrading Eclipse

eCosCentric Eclipse upgrades currently do not replace the older version of Eclipse but install an additional version that are run alongside previous installations. To install the newer version of Eclipse you must run the appropriate installer for your operating system and ensure you have to hand your user ID and password for the eCosPro Developer's Kit Portal when you downloaded eCosPro. This installer may be run either individually or automatically as part of a new eCosPro installation.

When a new version of Eclipse is installed, the older version of Eclipse will remain and pre-existing Desktop menus and shortcuts created by old installations of eCosPro will be untouched and still refer to the older versions of Eclipse. Only new installations of eCosPro will create new Desktop menus and shortcuts to the new version of Eclipse.

Older version of Eclipse may be uninstalled as documented in Chapter 10, Uninstalling.