Last update: August 9, 2002


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Last update: August 9, 2002

  1. 1. CodeTest Last update: August 9, 2002 Embedded Software Verification Tools By Advanced Microsystems Corporation
  2. 2. CodeTest - Introduction <ul><li>Tool for embedded developers and test engineers </li></ul><ul><li>Can run on </li></ul><ul><ul><li>Target processor </li></ul></ul><ul><ul><li>Simulator </li></ul></ul><ul><ul><li>Native environment (Host environment) </li></ul></ul>
  3. 3. CodeTest – Introduction [2] <ul><li>Can be used in three configurations: </li></ul><ul><ul><li>Hardware in circuit (HWIC) </li></ul></ul><ul><ul><ul><li>Minimal instrumentation </li></ul></ul></ul><ul><ul><ul><li>Execution trace data captured by special external hardware </li></ul></ul></ul><ul><ul><li>Software in circuit (SWIC) </li></ul></ul><ul><ul><ul><li>Uses target resources for collecting trace data </li></ul></ul></ul><ul><ul><ul><li>Can be used in a simulator or target platform </li></ul></ul></ul><ul><ul><li>Native </li></ul></ul><ul><ul><ul><li>Used to collect trace data in host environments </li></ul></ul></ul>
  4. 4. CodeTest – Supported Platforms <ul><li>RTOSes supported </li></ul><ul><ul><li>VxWorks (v5.3.1, v5.4) </li></ul></ul><ul><ul><li>VxWorks AE (v1.1) </li></ul></ul><ul><ul><li>pSOS (v2.2, v2.5) </li></ul></ul><ul><ul><li>OSE (v4.0-v4.4) </li></ul></ul><ul><ul><li>ChorusOS (v4.0, v4.01) </li></ul></ul><ul><ul><li>OS20 (v1.8) </li></ul></ul><ul><ul><li>QNX (v2.11) </li></ul></ul>
  5. 5. CodeTest – Supported Platforms [2] <ul><li>Host Environments supported: </li></ul><ul><ul><li>Windows NT4.0/2000 </li></ul></ul><ul><ul><li>Linux (Redhat 6.1 or higher) </li></ul></ul><ul><ul><li>Solaris 2.6, 2.7, 2.8 </li></ul></ul>
  6. 6. CodeTest – Tasks <ul><li>CodeTest can: </li></ul><ul><ul><li>Trace code execution </li></ul></ul><ul><ul><li>Measure the performance of: </li></ul></ul><ul><ul><ul><li>Functions </li></ul></ul></ul><ul><ul><ul><li>Function call pairs </li></ul></ul></ul><ul><ul><ul><li>Between any two user-designated events </li></ul></ul></ul><ul><ul><li>Measure memory allocation and deallocation </li></ul></ul><ul><ul><li>Measure code coverage </li></ul></ul>
  7. 7. CodeTest – Components <ul><li>CodeTest software suite consists of: </li></ul><ul><ul><li>Instrumenter </li></ul></ul><ul><ul><li>Manager GUI </li></ul></ul><ul><ul><li>Trace Tool </li></ul></ul><ul><ul><li>Performance Tool </li></ul></ul><ul><ul><li>Memory Tool </li></ul></ul><ul><ul><li>Coverage Tool </li></ul></ul><ul><ul><li>Scripting interface API </li></ul></ul><ul><li>Also contains a specialized hardware probe for real-time analysis of target platform </li></ul>
  8. 8. CodeTest – Manager GUI <ul><li>Configure Data sources </li></ul><ul><ul><li>Target platforms on the network </li></ul></ul><ul><ul><li>Other host nodes </li></ul></ul><ul><ul><li>Trace data stored in files </li></ul></ul><ul><ul><li>Specialized hardware probe on the network </li></ul></ul><ul><li>Workspace pane </li></ul><ul><ul><li>Displays and manages different views </li></ul></ul><ul><ul><li>Interface to the other tools </li></ul></ul>
  9. 9. CodeTest – HW Probe <ul><li>Special 64-bit write-only memory device </li></ul><ul><li>Monitors target bus </li></ul><ul><li>Contains: </li></ul><ul><ul><li>RS232 Serial connector </li></ul></ul><ul><ul><li>Ethernet port </li></ul></ul><ul><ul><li>USB port </li></ul></ul><ul><ul><li>Variety of hardware </li></ul></ul><ul><ul><li>connectors for different buses </li></ul></ul><ul><li>Configured by the manager GUI </li></ul><ul><li>Can be used as the data source for </li></ul><ul><li>trace data </li></ul>
  10. 10. CodeTest – Coverage Tool <ul><li>Provides information about the tested coverage of instrumented application </li></ul><ul><li>Summary Coverage data reported at following levels: </li></ul><ul><ul><li>Entire project </li></ul></ul><ul><ul><li>Per function </li></ul></ul><ul><ul><li>Per file </li></ul></ul><ul><li>Provides: </li></ul><ul><ul><li>Statement coverage </li></ul></ul><ul><ul><li>Decision coverage </li></ul></ul><ul><ul><li>Modified Condition-Decision coverage </li></ul></ul>
  11. 11. CodeTest – Memory Tool <ul><li>Used to track application’s dynamic memory allocation and deallocation </li></ul><ul><li>Provides information on: </li></ul><ul><ul><li>Each function’s memory usage </li></ul></ul><ul><ul><li>Source program memory usage </li></ul></ul><ul><ul><li>Number of times individual memory allocation and deallocation statements are executed </li></ul></ul><ul><ul><li>Type of allocation call (malloc/realloc) </li></ul></ul><ul><ul><li>Memory allocation block sizes (Avg., Min. and Max.) </li></ul></ul><ul><ul><li>Memory allocation failures </li></ul></ul>
  12. 12. CodeTest – Performance Tool <ul><li>Used to obtain timing and count information on instrumented functions and tasks </li></ul><ul><li>Provides four performance views: </li></ul><ul><ul><li>Task data view – Amount of time spent in RTOS tasks and ISRs </li></ul></ul><ul><ul><li>Call pair data view – Each calling function and number of times it called a specific function </li></ul></ul><ul><ul><li>Function performance data view – Timing and invocation information for each function </li></ul></ul><ul><ul><li>A/B Timer data view – Timing information for upto 8 user configurable event pairs </li></ul></ul>
  13. 13. CodeTest – A/B Timers <ul><li>Can be used to measure performance between any two events </li></ul><ul><li>Could be used for: </li></ul><ul><ul><li>Loop analysis </li></ul></ul><ul><ul><li>Execution path analysis </li></ul></ul><ul><ul><li>RTOS overhead or third party tools overhead analysis </li></ul></ul><ul><ul><li>Path dependent performance analysis </li></ul></ul>
  14. 14. CodeTest – A/B Timers Example – Loop analysis
  15. 15. CodeTest – A/B Timers Example – Path based analysis
  16. 16. CodeTest – A/B Timers Example – Third party analysis
  17. 17. CodeTest – Trace Tool <ul><li>Create trace measurements based on wide variety of trigger events, including C statement types. </li></ul><ul><li>Can be used to: </li></ul><ul><ul><li>Trigger trace capture on specific events </li></ul></ul><ul><ul><li>Trace within a specific context (Task, function call chain or both) </li></ul></ul><ul><ul><li>Control the amount of trace captured (Call stack depth, Trace buffer limit) </li></ul></ul>