PSoC™ 4 Forum Discussions
Hi All,
Short version:
I've got a debug stack trace which doesn't contain 'main' - how is that possible? (see attached)
Thanks!
Long version:
I'm struggling with a weird intermittent problem around I2C and how the process is somehow stalling after running well for a LONG time, but it's complex to detail, so I'm trying to abstract the fundamental symptoms from this post and look at a curious symptom which may give a clue to the cause.
I've connected through SWD to a PSOC exhibiting the issue and investigated a bit.
I've done it a few times, everytime it halts in the WDT callback process as expected (good that the WDT keeps firing!) and I see an oddity about the stack trace: there is no main anywhere in it, the root is the function '__aeabi_uidivmod'.
Can anyone help me understand how this is possible?
is it a sign of a stack smash, or are there other explanations?
I should highlight I'm using interrupts on:
- WDT, (8hz)
- GPIO, (never used in these tests)
- (EZ)I2C, (controlled by EZI2C)
- ADC done (store value)
There is an infinite loop in main that should never exit.
for(;;){ ... }
I've caused normal WDT timeouts to occur, and that stack trace includes the expected function list (see attached screenshot).
I'm hoping that this may be a cryptic clue to the cause of my other troubles...
Any thoughts appreciated, no matter how speculative.
Thanks for any suggestions!
P.S. Unfortunately I've not been able to make a minimal project with the same symptoms yet and there is proprietary code mixed in so I can't post the code. I may in future if I can get similar results from a basic project.
Show LessOk guys, I've been trying to figure this out for quite some time now. Just need some direction.
From the PSoC example for CY8CKIT-024 for Proximity Gestures found here: http://www.cypress.com/documentation/application-notes/an92239-proximity-sensing-capsense, the example allows for air gesturing using capacative proximity sensing in either the X-Axis or Y-Axis direction depending on the settings you choose in the code. However, I want both Axis' to work at the same time. The only way Ive been able to get this to work is using two separate PSoC's each driving a different axis, one for Y-Axis, and one for X-Axis. I want to do this using a single chip if possible. I converted a second copy of the original gesture source/header files to have each driving a different axis, however no matter what I seem to do, it only ends up driving the LEDs for the axis coded into the original gesture files (in this case, the X-Axis). I am using an older CapSense component, CapSense CSD [V2.60] along with the CY8CKIT-042-BLE kit for this particular *attempt* at development.
My questions are:
-Is it in my code?
-Would this potentially only be possible if I port my code over to use the CapSense [v4.0] component and split up the X-Axis and Y-Axis into 2 separate proximity sensors each using 2 sensing elements?
-OR am I shit out of luck on this idea on one PSoC?
I have attached a .zip Bundle of my workspace below
Any Help Is Much Appreciated
Show LessDear ,
I use PSoC Programmer 3.26.0 to program PSoC4 , it is successful.
but when I PPCLI.exe to Programming,when I use PSoC4_EraseAll, it will show error as follow:
>PSoC4_EraseAll
E
SWD respond packet contains Failed status!
PSoC4_EraseAll returned 80004005
80004005 OK
anybody can tell me why?
the detail as follow Picture.
Show Less
I know..another stupid question (o;
In the same bootloader/bootloadable datasheet there is a paragraph saying:
"At startup, the bootloader code loads configuration bytes for its own configuration. It must also initialize the stack and other resources as well as peripherals to do the transfer. When the transfer is complete, control is passed to the bootloadable project with a software reset."
What does "soft reset" actually refer to?
Does it reset all existing peripheral configurations from the bootloader and handles over control to the application like it would after a regular reset?
Or can it be assumed the peripherals setup already in the bootloader can be used in the application?
In the UART example the initialization is done once in the bootloader and repeats in the example application...
Slowly but surely I am getting there (o;
Show LessI am debug the example "Day015_Bonding". My question is:
How to set one confirmed security key when running in BLE Device, and the security key can be input in Cysmart to connect and authenticate?
Thanks!
Show LessI have a BLE project that communicates with a MAC OS using the BLE MIDI protocol. I have had this working for several years on the Broadcom (now Cypress) CYW20737S, but I'm porting it to the PROC CYBLE-012011-00. I stress this, to show that I trust the client implementation in the MAC OS.
The PROC device is configured to transmit every half second for testing. On the PROC device, after 5 or 10 minutes of operation, the AppCallBack() is called with event CYBLE_EVT_STACK_BUSY_STATUS, and eventParam 0x01, but the stack then never makes a corresponding CYBLE_EVT_STACK_BUSY_STATUS with eventParam 0.
Once in this busy state, my calls to CyBle_GattsNotification() (every half second) return CYBLE_ERROR_INVALID_OPERATION.
The only way I can find to get out of this state, is from the MAC to disconnect and reconnect the BLE.
Again, I stress that on the CYW20737S implementation it will run forever with no issues, so I trust the MAC client.
What would make the BLE stack permanently become busy, and how can I fix it?
Show LessWill the PROJECT #040: BLE GAME CONTROLLER (Project #040: BLE Game Controller | Cypress Semiconductor ) work with CYBLE-222014-01 and CYBLE-212019-00 ??
I am looking to make a swtich from Cypress to Ti but want to make sure that this application will work before I redo all of the work.
Regards
Mak
Show LessHello,
I am novice to BLE Development.
Im ny project my BLE device GAP role is peripheral.
In my project i want to start BLE stack advertising on SW2 switch press & wait for 30s to connect any central device.
If any central device does not connect in 30s it should power BLE stack automatically.
In this case when my device start advertising & wait for timeout if anyone press sw2 again it should refresh timeout period to pre-defined value(30s).
Can i do this without using timer component ?
If yes then How ?
Show LessHi all, I used RTC for my PSoC4 BLE project. And I used deepsleep mode. Now I faced an issue. After deepsleep mode the RTC can only hold the time information before the device goes into deepsleep mode. Does RTC run in DeepSleep mode in PSoC4 BLE?
Show LessHi all,
I am using systick interrupt to adjust timing to drive 5 digit 7 segment and it works fine. But when I implement capsense, touch buttons works fine but displays don't blink as before. A problem occurs about display timing. What is the relation between capsense and systick interrupt?
Thanks
Show Less