At embitel, we have extensive experience in embedded software posting to various flavors controller architectures and platforms. We offer complete software stack porting and last mile services for software porting requirements.
A porting project has one for combination of following objective:
To begin with any porting project, we would normally require all the available documentation and source code. For example:
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.
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.
We do a feasibility study to ensure porting objective and features of existing system.
The feasibility phase includes following decision point:
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 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.
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
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.
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 is,
We perform standard Quality assurance practices to ensure quality of deliverables.
Our Testing Strategy Includes: