My final rotation began on May 17, 2000.  I was assigned to work on the TMS320C55x DSP emulation team.  The objective of this rotation was to learn in detail about the emulation process, and to assist with tasks that the team needed accomplished over the summer.  For the first half of my rotation I worked with Rational Purify and Rational PureCoverage.  Respectively, these two tools are designed to expose memory leaks in code and provide statistics on how well a given test suite utilizes given source files of code.
            There were numerous problems encountered in working with these tools, many of which were detailed architecture-specific issues.  These problems were worked through with the help of my team members, especially Paul Kolonay and Mark Buser.  Encountering these problems was actually a very educational experience, as it enabled me to work with others, utilizing our problem solving skills together to work towards finding a solution.  After the aforementioned issues had been worked through, I proceeded to learn and utilize the two tools as needed.  There were no problems exposed in the emulation code by Rational Purify, but code coverage improvements were needed in the test suite, and Rational PureCoverage exposed the areas where improvements were needed.  I made modifications to the test suite and wrote additional tests (using the programming language Perl) to improve code coverage to an acceptable level.
         After this task was accomplished, I was given the task of writing/modifying the emulation code to enable a functionality known as profiling in the TMS320C55x Code Composer Studio product.  This functionality enables the reading of the clock registers of the DSP so that a user can determine how many clock cycles a specific portion of code takes to run by setting profile points in his code.  This required me to extensively understand a sizeable portion of the emulation code, written in C, and to write code in the necessary areas of the emulation library so that the functionality would work properly.  I accomplished this task successfully, and it was an educational experience for me in doing so.  I learned a great deal about how code development is done in a work environment, especially how the code which a person writes is not standalone, but rather must be understood by his fellow team members to enable future work to be done more efficiently.  This is an educational experience which many students are unable to receive in college, as in many instances code development is done individually and not for componets of a larger project.  I am fortunate to have had such an educational experience.