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

cross mob
ricoc_1688026
Level 1
Level 1
First question asked First reply posted Welcome!

I seem to have run into a problem when I use the Device Selector to change the target device I’m using.

I started a build targeting the CY8C6137BZI-F54 single core that we will be using in our design.

When I got my DevKit, I changed the target device to the CY8C6247BZI-D54 that the kit uses.

These parts are nearly identical except for the dual core.

 

When I made the change, Creator seems to have made a complete mess of file its organization (as shown in the Workspace explorer).

It seems have dumped all my source  and header files to "Source Files" and "header Files" folderd outside of the CM4 folder (no change on disk).

I tried removing the files from the project and then re-adding them to the source folder under CM4.

Now I get obscure build errors like:

Build error: multiple definition of `__StackLimit'

Build error: multiple definition of `__HeapBase'

Build error: multiple definition of `__Vectors'

 

Is it possible to change devices (hopefully, back and forth) without creating such a mess?

 

0 Likes
1 Solution

HI @ricoc_1688026 ,

The errors you mentioned :

Build error: multiple definition of `__StackLimit'

Build error: multiple definition of `__HeapBase'

Build error: multiple definition of `__Vectors'

 

These variables are mainly defined in the Startup file for each of the core in the file 'startup_psoc6_01_cm4.S' in the folder 'ARM GCC Generic' under Sources.

When you created the 62 project, the entire source folder of 61 project which contained 'ARM GCC Generic' would also have been moved into your 62 project in the "Sources" folder outside the "CM4" folder. But note that 'ARM GCC Generic' is already present in the CM4 folder.

>> I tried removing the files from the project and then re-adding them to the source folder under CM4.

Did you by any chance add these .S files also to the CM4 folder here?
In which case you will get multiple definition errors, which I too got as follows:

AlenAn14_0-1649474496614.png

After doing the device change to 62, my workspace looked as follows:

AlenAn14_1-1649474658946.png

So to remove the multiple definitions error, delete the folders marked in red which were from the 61 device and only port the remaining .c and .h files to the CM4 folder.

Hope this helps.

Warm Regards
Alen

View solution in original post

4 Replies
AlenAn14
Moderator
Moderator
Moderator
500 replies posted 100 solutions authored 250 replies posted

Hi @ricoc_1688026 

The PSoC 61 and PSoC 62 are architecturally different as the 61 is a single core device while the 62 is dual core.
But ignoring this fact, PSoC Creator still does not allow you to change the device to another which is of a completely different architecture, i.e. if the device you started off with is a 61 device, then when you right click on the project and select 'Device Selector', you will only see the options for selecting another device of 61 type and the remaining types, like 62 devices, will not be visible for selection in this list.
I am using PSoC Creator 4.4 and tried to change the device from 61 to 62 but in the device selector, I am restricted from doing so as shown below as the 2 devices are of different architectures which is expected.

AlenAn14_0-1649393295933.png

Can you let me know how you were able to make this change from PsoC 61 to 62 device in PSoC Creator?
Also the version of PSoC Creator you are using for the same?

Warm Regards
Alen

0 Likes

I am also using Creator 4.4. I see on your screenshot in the lower left that 920 devices are found. If you click on the Family column Filters and "select all" you will be able to change to any device.

But my issue is with how to get my user source files to migrate with, (stay in my project) after a device change. Or if unavoidable - how best to get them back into the project without causing these obscure errors.

Surely, it must be possible to do this with the proper guidance - most examples files talk of the user "Reusing This Example"  and only warn of going to a device without a needed IP block resource or updating pin assignments. No warnings about the users project becoming radically altered.

Thanks for looking into this, much appreciated.

ricoc_1688026_0-1649420350226.png

ricoc_1688026_1-1649421354136.png

 

0 Likes

HI @ricoc_1688026 ,

The errors you mentioned :

Build error: multiple definition of `__StackLimit'

Build error: multiple definition of `__HeapBase'

Build error: multiple definition of `__Vectors'

 

These variables are mainly defined in the Startup file for each of the core in the file 'startup_psoc6_01_cm4.S' in the folder 'ARM GCC Generic' under Sources.

When you created the 62 project, the entire source folder of 61 project which contained 'ARM GCC Generic' would also have been moved into your 62 project in the "Sources" folder outside the "CM4" folder. But note that 'ARM GCC Generic' is already present in the CM4 folder.

>> I tried removing the files from the project and then re-adding them to the source folder under CM4.

Did you by any chance add these .S files also to the CM4 folder here?
In which case you will get multiple definition errors, which I too got as follows:

AlenAn14_0-1649474496614.png

After doing the device change to 62, my workspace looked as follows:

AlenAn14_1-1649474658946.png

So to remove the multiple definitions error, delete the folders marked in red which were from the 61 device and only port the remaining .c and .h files to the CM4 folder.

Hope this helps.

Warm Regards
Alen

lock attach
Attachments are accessible only for community members.

Alen,

Using PSoC Creator 4.4, I opened a Voice Recorder project CE222221 for PSoC 1, which came up for CY8C6137BZI-F54. I compiled it using the "Generate Application". It compiled with no errors. I then made a copy of the project. In the copied project, I used Device Selector to select CY8C6247BZI-D54. I again compiled the copy targeted to a PSoC 62 with no issues.

This doesn't address the issues that ricoc_1688026 raised. It should however be simple to change from devices within the same PSoC family and even across families with exception for feature and some component differences.

Greg

0 Likes