Sei sulla pagina 1di 3

Porting Embedded Software

At embitel, we have extensive experience in porting embedded software to various flavors


controller architectures and platforms. We offer complete software stack porting and last mile
services for software porting requirements.

Objectives of porting A porting project has one for combination of following objective:

Migration of software stack to a different processor architecture


Migration of software stack to a different operating system
Migration of software to a different technology platform

Requirements for porting:


To begin with any porting project, we would normally require all the available documentation
and source code.

For example:

Original design document, interface documents, test specifications


Details of tool chain used for source system
Details of tool chain of target system if already identified

In case the current system under port does not have sufficient documentation, we would start
the porting activity with preparation of code flow diagram, interface diagram and hardware and
software integration documents. 3P framework for porting We follow 3P strategy (three
phases) with distinct objective at every phase:

1. Feasibility analysis phase

2. Implementation phase

3. Testing and validation phase


The objective in feasibility analysis phase is to bring out all dependencies and detailed
statement of work. This phase also helps in verifying suitability of target system for software
stack under port. The objective in Implementation phase is to progress as per outlines tasks in
statement of work. The involved detailed design study, source code walk through, tracing
portable and not portable code, looking for performance optimization issues, HW and SW
integration requirement, communication channel requirements, and operating system and
hardware abstraction layers and re-writing of non-portable code. The Testing and validation
phase starts in parallel to porting phase and ends after the porting phase. During this period,
the test strategy is decided. All test plans, test data, test code are written in this phase. The
basic objective of testing are to ensure that software functionality of the system is not after
porting to new target system and also to ensure performance requirements.

Feasibility analysis phase:

We do a feasibility study to ensure porting objective and features of existing system.

The feasibility phase includes following decision point:

Understanding the source system This includes studying the original design
documentation or user documentation to know about the s/w functionality and
behavior in details. If the supporting documents are not available, knowledge transfer
from customer is expected.
Deciding Target Development Tools Deciding upon the suitable target development
tools can be a critical step for simplifying the task of porting. These are finalized with
mutual discussions with customer.
Deciding About Porting Strategies Porting strategy includes identification of portable
and non-portable code. Non-portable architectural differences include moving among 8-
, 16-, and 32-bit architectures; support for different controllers and peripherals etc
Testing strategy Before starting the port, we determine what test cases and procedures
are in place or need to be developed. Possibility to apply the test vectors and measure
the results on both the source and the destination systems for comparison are also
ensured.

Implementation phase:

The implementation strategy varies based on the porting objective. The strategy followed here
is “A step at a time” that is to get the basic main framework of the software stack, with bare
minimum functionalities, on the target platform, at the earliest. A typical work-flow for
migration to new processor architecture i
Get the OS up and running on the target hardware.
Port the Hardware and operating system abstraction layer
Port all required component driver, protocol stacks etc
Port the application software module by module
After a functional port is ready, optimize the software modules
Do a system validation against predefined system vectors
Complete the process by updating relevant documentation

Testing and Validation phase:

We perform standard Quality assurance practices to ensure quality of deliverables.

Our testing strategy include:

Automated testing - Code coverage, memory leak detection, performance profiling and
UML tracing
Unit testing – Module level testing to validate individual units of code
Functional testing – Validation against functional requirements
System testing - Verification of total software system for all of its functional, quality
attribute and operational requirements

FOR MORE INFORMATION ABOUT EMBEDDED SERVICES, PLEASE VISIT US AT


http://www.embitel.com/Embedded_Software_Services_De.55.0.html OR MAIL US AT:
sales@embitel.com

Potrebbero piacerti anche