Cypress Perform

Home > Cypress Developer Community > Blog Posts > PSoC Sensei Blog > Fixing Bugs in a Component


Fixing Bugs in a Component
Jan 28, 2011
By Bradley Budlong

It turns out that even the PSoC Sensei makes mistakes.  A customer was using the Transmit UART component and tried to build it for the PSoC 3 ES3 silicon.  They found that it generated compiler errors.  Shame on me for not testing the component with both ES2 and ES3.  The fix was easy to implement and I've created a new version of the component with this fix.  I’ll discuss in this post the process that is used to create a component version.

PSoC Creator has versioning built into the tool.  This allows me to release the fix for those customers that are in a place in their product development that they are able to integrate fixes.  It also allows customers that are currently using the existing version to continue to use that version, just in case my fix breaks something else.  The original version was version 1.0.  That is designated by naming the component with “_v1_0” at the end.  The new version is version 1.10.  The 1 is referred to as the major version and the 10 is referred to as the minor version.  Cypress has the policy that only the minor version number is updated for fixes and the major version is updated for breaking changes such as changing existing API signatures, adding pins, and the like.  This change was just a bug fix and won’t the break the operation for any current users of the component, so I just updated the minor version.  Also note that I changed from a minor version of 0 to 10.  Creator doesn’t handle single digit minor versions well, so versions 1 to 9 should be skipped.  Also be incrementing by 10 I’ve left space for future patches that could be made between versions.

The creation of the new version is handled mostly by Creator.  Here are the steps:

  • Select the existing component in the Component tab
  • Copy the component
  • Select the project
  • Paste the component
  • This creates a new copy of the component
  • Rename the component as desired
Creator automatically updates the names within the component files automatically.  For example the Verilog module name is updated for you without requiring any manual changes.  Now the functional changes can be made on this new version.

From the user perspective the availability of the new component will not change the existing usage of the component.  The library has both versions available for use.   Any new instance placed from the catalog will be the latest, but existing instances are left as they are.  Since there are now two versions the catalog shows the version number of the latest version.

To update the existing instances the Component Update Tool should be launched from the menu Project->Update Components.  This will provide the opportunity to select the version for each component instance that has multiple versions available.  UARTTx_1 is the instance of interest in this example.  Note that the Component Update Tool allows both upgrading and reverting to an older version if issues are found.

It also includes a link to the datasheet for the selected “Available Version”.  The datasheet has a section that describes the changes made.

I’ve updated the library and made it available here: PSoC Sensei Library 01/27/2011.

We’ve added a new capability to our Cypress blogs.  You can now comment on any blog post.  You’ll need to select the individual post (not the Full list of posts) and you’ll see all comments along with a dialog to allow you to add your own comments.  Now we can have a wider conversation about PSoC and component development.

 

See full blog


Comments:
There are no comments. Be the first to add one.
You must be logged in to leave a comment. Login / Register
Like this item? Spread the news:  
Post this story on Digg.com Digg this   Share this on Facebook.com Facebook   Post this story on Digg.com LinkedIN   Add to Twitter Twitter  
ALL CONTENT AND MATERIALS ON THIS SITE ARE PROVIDED "AS IS". CYPRESS SEMICONDUCTOR AND ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THESE MATERIALS FOR ANY PURPOSE AND DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THESE MATERIALS, INCLUDING BUT NOT LIMITED TO, ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT OF ANY THIRD PARTY INTELLECTUAL PROPERTY RIGHT. NO LICENSE, EITHER EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, IS GRANTED BY CYPRESS SEMICONDUCTOR. USE OF THE INFORMATION ON THIS SITE MAY REQUIRE A LICENSE FROM A THIRD PARTY, OR A LICENSE FROM CYPRESS SEMICONDUCTOR.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms and Conditions of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms and Conditions of this site. Cypress Semiconductor and its suppliers reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.