PSoC Creator


Cypress provides PSoC Designer (for PSoC 1’s) and PSoC Creator (for PSoC 3 and 5’s). PSoC 5 uses the Cortex M3 ARM architecture, and uses a free GCC compiler. As of writing, PSoC Creator 2 has just been released which has more pre-made modules and integration into 3rd party IDE’s (as of Feb 2013, only Keil, but Cypress plans on extending this in the next year).


One annoying thing about PSoC Creator is that it takes plenty of time to install/uninstall (5-10mins+, even on a fast computer). Each new version of PSoC Creator is a fresh install (e.g. PSoC Creator 2.1 and PSoC Creator 2.2), so you normally would want to uninstall the older versions.


When debugging with the IDE, watched variables (shown at the bottom of the screen) can take some time to update themselves once you have paused the program. It all depends on how many you are watching, but keep in mind that it might take a few seconds before the variables update to their correct values. Don’t just continue the program quickly thinking that their must be a bug in your code.

File Types

Knowing what each file can do is helpful when working out what to include in a SCM program (such a Mercurial or Git). Files which can be regenerated are not included in the SCM, as in my opinion they just clutter up change logs.

All Platforms

File File Format Description Include in SCM?
ProjectName.cycdx text-xml This file is for register mapping. Contains names/addresses, field names/positions, and values for these field for all components used in the project. Yes
ProjectName.cydwr binary ? Yes
ProjectName.cyfit binary ?  
ProjectName.cyprj text-xml The main project file! This contains a reference and path to all the files used in the project. This also stores build settings for both the project and the individual settings. Yes
ProjectName.cyprj.UserName text-xml Contains user information related to the project. Includes lists of all the files in the project, including dependencies for any object files. Also holds debugger information such as what variables you were watching and where you had placed breakpoints. No
ProjectName.cyrpt binary A report file. No
ProjectName.cyversion text-xml This is a very small file which stores the project version. Yes
ProjectName-000.cywrk text-xml Default workspace auto-generated when project is made, and contains the project itself. Yes
ProjectName-000.cywrk.Username text-xml Remembers which nodes have been expanded in the Project Explorer window. No
ProjectName.rpt text-xml This file is a mixture of plain text and xml. It is a report file from the hardware creation process (similar to an FPGA report file). There useful for debugging hardware compilation errors. Yes
ProjectName.svd text-xml Contains peripheral information. Yes
ProjectName_timing.html text-html Generated during hardware synthesis, and contains useful information regarding the timing of the routed digital signals (e.g. setup, hold off time). No

PSoC 3 Specific

File File Format Description Include in SCM?
ProjectName_PSoC3lib.uvopt text-xml Holds file extension, target and debug information Yes
ProjectName_PSoC3lib.uvproj text-xml uVision project file. Contains project file names and paths, build settings, Yes

File Changes

PSoC Creator can handle outside changes files that it has open and ones loaded with the current project really well. This usually happens if you are using an external code editor or updating files using versioning software. PSoC Creator warns that the files have be changed and gives you the option to reload them.

Working Out How Much Hardware You Are Using

As part of the compile process, a very nice table showing the utilisation of the different hardware inside the PSoC. This is called the Technology mapping summary. It is located in the ProjectName.rpt file in the PSoC project solution folder (.cydsn).

As shown in the image below, the table shows you useful things like how many of the following you are using: UDB Macrocells and Datapath Cells, analog and digital clock dividers, DMA channels, interrupts and pins.

psoc-creator-verilog-report-file-technology-mapping-summary-hardware-utilisation The PSoC Creator "Technology Mapping Table" in the .rpt file, showing a breakdown of the hardware utilisation.


The Find/Replace algorithm resets it’s search position when any text is manipulated. This gets annoying when using “Find Next” or “Replace Next” to selectively replace only certain matches , as you end up going back through previously found matches everytime you make a text edit.

Files in the project explorer are real (i.e. they represent real files somewhere, and if you rename them, the file gets renamed on the disk), but folders are virtual. This is really annoying. If you want to rename a folder that contains source code, you can’t just rename it from PSoC Creator and it rename the folder and update all the links for files in that folder. Instead, you have to rename the folder in explorer, and then remove and re-add every single source file that was in that folder in the Project Explorer.