device does not function after upgrade to PSoC Creator v4.1

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

cross mob
lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable

I recently updated PSoC Creator to version 4.1. This included an update to GCC from 4.9.3 to 5.4.1.

My project includes an OTA fixed-stack Bootloader, which I developed by following the Cypress app note (AN97060). I wanted to change the security setting on the bootloader. I made the change and recompiled using Creator v4.1 and the new GCC without errors. I then updated the version settings in mk.bat (to reference creator v4.1 and GCC 5.4.1). Then I went to the bootloadable component in my bootloadable app and changed the dependency paths to the new path for GCC_541. I then ran clean & build on my bootloadable, which also runs without errors. However, after my device is programmed it does not function at all. There is no debug serial output, no blinking LEDs, and no bluetooth advertisement.

If I revert all of the changes described in the previous paragraph and rebuild everything, then my device works again as expected. Of course, I still don't have my modified security settings since the bootloadable component is now pointed at old bootloader build files.

What's going on? Can how can I get this to work again? Workspace attached.

0 Likes
1 Solution
Anonymous
Not applicable

Sorry for the slow reply. I never really found the solution. I got past it by wiping out my bootloader project and re-creating the bootloader again from scratch.

View solution in original post

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

Your project didn't build in my environment. There was a missing unused file I removed and I had to insert the "BLE" path into compiler's include directories.

I removed all generated files and re-built both projects which included to set location of .hex and .elf files anew.

>>Could not test if working. There are 3 warnings which you should remove before testing!

Bob

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

OK, I cleaned up all three warnings, deleted the generated source, copied the BLE api anew, built both projects again (ran mk.bat in between), and tried again. Same result.

It builds without error (and without warnings now), loads to the evaluation kit, and nothing happens. No debug messages, no blinking LEDs, no BLE advertisement.

Now if I simply point the bootloadable object back at the old .hex and .elf files and clean/build the bootloadable project, everything works great.

I decided to try another thing: Since I still have gcc 4.9.3 on my computer, I set that compiler up as "ARM_GCC_Generic" and set it as the active compiler. Rebuilt both projects (modified mk.bat accordingly and re-ran it in between as well). First I get the missing BLE path that you mentioned, which I fixed. Then re-ran again and I get "The command 'cyelftool.exe' failed with exit code '1'".

workspace attached again.

0 Likes
Anonymous
Not applicable

I'm still stumped on this one...

0 Likes

When you cannot get any help here try to get in contact with Cypress directly: At top of Cypress Home page select "Design support -> Create a Support Case" and ask your question. You will be helped by a Cypress engineer.Best provide all information: Workspace bundle, Creator version, OS version, PCB or Kit type.

Bob

Anonymous
Not applicable

Did you find a solution for this?  It sounds like the same problem I'm facing.  Your code is running but is probably hitting the general exception handler.  I have modified the gen exception handler in my project indicate a solid red LED so I can easily tell what's happening.

The times I've encountered this are when there is some kind of issue between the bootloader and bootloadable projects.

I've noticed that in creator 4.1 and 4.2 (after the compiler update) that "mk.bat" used in the previous versions to create the linker script so the bootloadable project can refer to bootloader calls isn't included.  The earlier mk.bat refers directly to the earlier compiler; changing this doesn't seem to help.

Frankly I've been underwhelmed by the lack of answer from Cypress, either through my FAE contact or through a trouble ticket here.  The root question (to me at least) is "why isn't mk.bat included anymore?  Is this a mistake, or has it been deprecated, and if it has been depcreated, where is that documented?"  I may have missed something in the release notes but shouldn't this also be included in the bootloader/bootloadable datasheet?

0 Likes
Anonymous
Not applicable

Sorry for the slow reply. I never really found the solution. I got past it by wiping out my bootloader project and re-creating the bootloader again from scratch.

0 Likes