What are the challenges with embedded software porting?
Completing an embedded software porting project successfully demands experience of a wide variety of hardware, run-time software and development tools. It requires adequate analysis, planning, testing and implementation of effective code that also balances time, cost and effort with system function and reliability.
No two porting projects are the same. Porting could involve different hardware, a different operating system, different development tools, or a combination of all three.
Differences in the target and source environments, a wide range of efficiency vectors and constraints, variability in embedded-processor architectures and the overall project objective will determine the complexity of the process and the degree to which software can be rewritten or simply recompiled.
Several strategies are available for porting your code, from recompiling your portable source code with a compiler for your target environment, to translating the non-portable software, whether low- or high-level code. Or the requirement may be to rewrite legacy code in a different, typically higher-level, language to improve portability and maintainability.
We have significant experience encompassing such porting variations and can advise on the most appropriate strategy for your requirement.
Critically, this means understanding at the outset the technical requirements and commercial drivers behind the decision to port:
- Reuse existing, tried and tested ‘legacy’ software?
- Part of an upgrade such as migration to a different operating system to reduce system costs?
- Maturing applications, changing processor, operating system or system board to support a new capability in maturing applications?
In all instances – migrating software to new a platform demands the expertise to keep the project moving forward to an on-time and satisfactory completion.
How do you approach the testing phase?
Testing is a critical component in ensuring quality and performance of our deliverables.
Our approach to testing will be shaped by the project at hand. We operate robust, systematic test procedures, making full and appropriate use of scripts and automation, conducted concurrent to porting to validate functionality and performance within the target system.
Importantly, this encompasses both source and target system, before and after the port, for comparison and to analyse performance and behaviour in the new environment.
We will continue to defer to the parameters for success as identified at the outset in respect of the results that meet the requirements and acceptable ranges for function and quality.