Diagnostics Management Eclipse based IDE

来源:互联网 发布:javascript hmacsha1 编辑:程序博客网 时间:2024/06/06 01:35

Introduction

Objective

This article is about to document the design decision in my DMIDE development experience.

Background

My previous work in Wind River System was to  develop an Eclipse based IDE to perform the following tasks:
    1. Build a downloadable agent which could,
        a) be installed manually into an embedded OS, including generic Linux(kernel 2.6.14 - 3.0), Wind River Linux, VxWorks, and OSE.
        b) monitor all jump/call commands in CPU of certain application/kernel module, then collect logs about function in/out, function/block level coverage, and apply hot patch, without stub code in the objective(unlike coverity/gcov).
        c) communicate with IDE or other client through TCP/IP to get commands, upload log, and etc.
    2. Build Sensorpoint/Patchpoint which is used to tell the agent what module we want to monitor, or replace with.
    3. install Sp/Pp compilation unit to certain board through TCP/IP.


Main Challenge

Like Wind River Workbench (Product Notes), DMIDE needs to manage a massive bunch of tool chains. To make it worse, DMIDE itself is an independent product, not sold with Wind River Platform like Workbench. If a Workbench sold with VxWorks needs to take care ofN toolchains, then DMIDE should takeM*N into consideration,Mrepresents the number of platforms.


Design Decisions in 5.1 release

Project Creation Wizard

DMIDE create a Project Hierarchy which separates "Build Agent" from "Build Sp/Pp".

Project --> Diagnostics Project --> Diagnostics Agent Project
                                                       --> Diagnostics Sp/Pp Project

New Project Wizard should collecting the following decisions in the process:
    1. Target Operating System. Workbench's installation has already made the choice of Target OS statically. DMIDE would ask user to input the installtion directory of the platform and calculate the platform selection set by install.properties file and host.
    2. Build Type. Choice between Diagnostics Agent Project and Diagnostics Sp/Pp ProjectNote, some platforms do not support "Agent Build" functionality.
    3. Project. The name and location of that project.

Further more, like most workbench project, after the selection of"Target Operating System" and "Build Type", Wizard can append other pages for further configuration. This topic can be further discussed in Build Properties section. Here is a basic workflow of the project creation wizard on task of "create a diagnostics agent project for Wind River Linux 4.3 Platform". The final "Project Setup" page can be separated into pages when dealing with more information for other tasks.

Build Properties ( Property Page)

After the creation stage through wizard, the resulted Diagnostics Project should have a reasonable property set suitable for specific Build Action and Platform.
The original Wind River Diagnostics Property page should be replaced by Build Properties page.

Properties for Diagnostics Agent Project

A VxWorks Example:


Properties for Diagnostics Sp/Pp Project


This is a imitation for Workbench Project 'Build Properties' page. 
    1. The first 'Build Spec' tab specifies the 'Active build spec' representing the toolchian selection.
    2. 'Tool' tab further specifies 'Tool Flags' for Sensorpoint Compiler, Patchpoint Compiler.
    3. 'Path', ‘Defines', 'Variables' indicates other parameters which are part of the final command.


Build Actions

After the separation, the two new kinds of Diagnostics Project will have their own Build Actions. Ideally, Build Action for Diagnostics Project should extend existing 'Build Project' and 'Clean Project' by adding new builder into our extension.


原创粉丝点击