storage class specified for parameter

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

cross mob
Anonymous
Not applicable

I had a file get corrupted recently on my project not long after updating to PSoC creator 4.1. I restored from an older copy and have had nothing but problems trying to get back to working. This project was previously working great. At this point, I'm getting errors that say "storage class specified for parameter <parameter name>" all over my project, including standard header files. I have no clue what this is. Can anyone help?

0 Likes
1 Solution

In animate.h line 79 is a semicolon missing.

Why are you using so extensively the volatile attribute???

Bob

View solution in original post

0 Likes
16 Replies
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

Can you please post your complete project so that we all can have a look at all of your settings. To do so, use

Creator->File->Create Workspace Bundle (minimal)

and attach the resulting file.

Bob

0 Likes
Anonymous
Not applicable

I would really rather not post my entire project on the internet. Is there another way?

0 Likes

I cannot see a way to evolve what caused your error without the sources.

Bob

0 Likes
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

Here it is.

0 Likes

In animate.h line 79 is a semicolon missing.

Why are you using so extensively the volatile attribute???

Bob

0 Likes
Anonymous
Not applicable

Wow, now I feel like a dunce...

Regarding the volatiles, I don't really know what they do. I understand that they prevent the compiler from performing certain optimizations that may cause issues with variables that are accessed between multiple processes asynchronously. I use them copiously on my global variables. I have alot of global variables because of the interrupt driven nature of this project.

0 Likes

Only global variables that get changed in an interrupt handler need to be declared as "volatile". Only those.

Port registers are already volatiles.

Reason:

while(Flag == 0) Wait();

The optimizer "sees" that Flag is not changed within the while loop, takes it out of the loop and so reduces this statement to something like:

if(Flag == 0) while(1) Wait(); // only one access to the variable Flag

Read more here.

Bob

0 Likes
Anonymous
Not applicable

I just tried to build this project as release and I get "'cyelftool.exe' failed with exit code 1". What could that mean?

0 Likes
Anonymous
Not applicable

Ugh... I'm stumped on another problem now...

It looks like when I upgraded PSoC creator to 4.1, it started putting the built files into a new folder (/CortexM0/ARM_GCC_541 instead of /CortexM0/ARM_GCC_493). I noticed this because I was trying to make a change to the bootloader and it wasn't taking effect. My bootloadable was still pointed at the old directory. Up to this point, I was getting an error because part of the bootloader did not match the bootloadable.

I pointed the bootloadable dependency at the new bootloader build directory and changed line 51 in mk.bat to match the new compiler. Now the error went away, so I am able to build and program my device without error. However, once it's loaded, my device shows no sign of life (no debug messages, no bluetooth advertizement, no LEDs blinking).

I'm able to revert the change and get back to a working state (pointing at the old build files), however this does not allow me to make the change I'm trying to make.

0 Likes

With the update there was a new GCC version installed, thus the change in the path name.

Re-compile the bootloader with the new version, then change the bootloadable .elf and .hex files to point to the new ones, then compile your bootloadable project. Check for the dependencies of your project not to point to old files.

Bob

0 Likes
Anonymous
Not applicable

I'm pretty sure that's what I did, unless I misunderstood some part of what you said. Like I said, it compiles without error after I do that, but the device does nothing.

What about the "'cyelftool.exe' faild with exit code 1" message that I get when I compile as release instead of debug?

0 Likes

One after the other. First get your project working, thzen check the settings for release.

Bob

0 Likes
Anonymous
Not applicable

It works fine as long as I point it at the old bootloader.

I'm super anxious to get these two issues resolved because I want to ship some prototypes to customers. This is keeping me out of the market right now.

I have no idea what to do to get it to work with the bootloader changes. I put in a ticket last night and Cypress said they would assign a support engineer to look at it.

0 Likes

Can you upload both your projects, bootloader and bootloadable.

Bob

0 Likes
Anonymous
Not applicable

I created a new thread per Cypress' suggestion, since this is different from the original problem of this thread. The new thread is here: device does not function after upgrade to PSoC Creator v4.1

0 Likes
Anonymous
Not applicable

By the way, the entire workspace is attached, both bootloader and bootloadable.

0 Likes