Announcements

Equip yourself to optimize PSoc4 MCUs for Evs at the EV Webinar. Click here to register.

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

PSoC™ 4 Forum Discussions

RoRo_3281831
Level 1
Level 1
10 questions asked 10 sign-ins 5 questions asked

We have a project in PSoC creator which was originally targeted to the CY8C4248LTI-L475 device.

With the recent chip shortage, we have been forced to produce runs of boards with different PsoC devices from the same family, but with different Silicon IDs.  Each one, of course, requires a different hex file.  So we have to re-target the project each time and re-compile.

We would prefer not to have to re-target and re-compile every time we update the code, and we also would not like to be forced to have N independent projects, each of which has be separately maintained, but each of which needs to be updated every time we make a code change because they really all represent the same application, just targeted for different processors.

Ideally, we would like to tell PSoC creator to build for different targets each time we do a "release" build.  It would then generate N hex files in the output directory, each named slightly differently and each targeted to a different processor.

Is this possible?  We are willing to mess around with build/make/control files (i.e. a non-gui solution is fine) but need guidance on how to do it.

0 Likes
1 Solution
RodolfoGL
Employee
Employee
250 sign-ins 5 comments on KBA First comment on KBA

Perhaps a way to handle this is to create a project for each PSoC device you need to support. Then all projects share the same firmware files, so if you change something in the code, it applies to all projects. You can have a common folder to place these firmware files and each project maps to it.

Then, in PSoC Creator, there is a button to build all projects in the workspace.

View solution in original post

0 Likes
2 Replies
Renate
Level 3
Level 3
25 replies posted 25 sign-ins 10 replies posted

I'm new to this business too and have noticed some aspects of PSoC Creator that are lacking. The build system gives you two flavors, vanilla (Debug) and chocolate (Release). Considering that if you can manage 2 something you can usually manage N something, this seems to me a failure. There is cyprjmgr.exe, but that only works with the two flavors. You're going to have to do some modding before invoking that.

Even something as trivial as changing a string or two in a BLE profile config is not easy. Yes, you can change stuff in a saved whatever.ble.xml file, but I've no idea how to load that in the command line besides the GUI version of "Load configuration". It all ends up in TopDesign\TopDesign.cysch as XML embedded in a binary file.

Even the BLE HID report descriptors are a bear to work with. I keep them as a C structure. My makefile compiles them, extracts the raw data, encodes them as lines of "<unsignedByte>192</unsignedByte>" (in decimal, no less) and text inserts them into a ble.xml file which I manually "Load configuration".

And I've no idea how to export a define so that cyprjmgr.exe will pass it on to gcc.

0 Likes
RodolfoGL
Employee
Employee
250 sign-ins 5 comments on KBA First comment on KBA

Perhaps a way to handle this is to create a project for each PSoC device you need to support. Then all projects share the same firmware files, so if you change something in the code, it applies to all projects. You can have a common folder to place these firmware files and each project maps to it.

Then, in PSoC Creator, there is a button to build all projects in the workspace.

0 Likes