PSoC™ 6 Forum Discussions
Hi,
We are trying to solve a problem with the BLE system randomly failing while the device is connected to a peripheral and sending data. Upon failure Cy_BLE_GATT_GetBusyStatus() returns CY_BLE_STACK_STATE_BUSY indefinitely. We have tried to reset the BLE system but it does not advertise or scan after the reset.
Solutions tested:
- Soft-resetting the BLE stack
- Called Cy_BLE_StackSoftReset(), the function returns CY_BLE_SUCCESS
- Checked the state of the stack by calling Cy_BLE_GetState(), the result was CY_BLE_STATE_ON
- The BLE did not behave as normal as it was not advertising or connecting to any other devices
- Hard resetting BLE system
- Called Cy_BLE_Stop() on CM4 with results being CY_BLE_SUCCESS
- Called Cy_BLE_Start() on CM0+ with results being CY_BLE_SUCCESS
- Called Cy_BLE_Start() on CM4 with results being CY_BLE_SUCCESS
- Checked the state of the stack by calling Cy_BLE_GetState(), the result was CY_BLE_STATE_INITIALIZING
- The BLE did not behave as normal as it was not advertising or connecting to any other devices
Note: Resetting BLE was tested independently of the busy stack issue by manually triggering the soft and hard resets.
Any clues as to why the stack is busy in the first place or why the resetting process is not working would be appreciated.
Show Less你好!
我想让CY8CKIT-062-WiFi-BT_PSoC_6_WiFi-BT_Pioneer_Kit连接DS18B20,但我不知道。我使用ModusToolbox.希望回答,谢谢!
Hello, I would like to inquire about UART_DMA Rx Buffer Index reset.
When the receiving buffer of the DMA is full, it is known that data is received again from the beginning of the buffer after an interrupt occurs.
Then is there any way to forcibly reset it even if it's not full and get it from the front of the buffer?
For example, when Uart is disconnected and reconnected, I want to receive it from the first of the buffer index.
Please give me a lot of answers.
That's about it.
Thank you.
regards.
- Psoc_student
Show Less
Hi, Yuzh and Rakshith,
In replies in the other post (https://community.infineon.com/t5/PSoC-6/PSoC64-Inquiry-of-time-from-device-reset-to-user-application-start-when-secure/m-p/351375#M12938), you've informed the secure boot time of PSoC6.
Then, I want to measure it in my side with CY8CPROTO-064B0S3. Could you guide me how to measure?
Thanks,
Show Less
Dears,
I would like to test GCC compiler and especially arithmetic operations with floating values using FPU unit. I've written simple "pseudo" code:
...
float32_t x,y,z;
for (int i=0; i<3000; i++)
for (int j=0; j<1000; j++)
{
x = (float32_t) i;
y = (float32_t) j;
z = z / 1000 + x / 1000 + y / 1000;
}
...
Tests:
[1] Enabled FPU - "HARD" mode
file makefile contains:
DEFINES=ARM_MATH_CM4 arm4-asm FLOATING_POINT USE_SMALLFT
VFP_SELECT=hardfp
CFLAGS =-mfloat-abi=hard -mthumb
Disassembly:
312 x = (float32_t) i;
10002a8a: vcvt.f32.s32 s12, s11
313 y = (float32_t) j;
10002a8e: vmov s15, r3
10002a92: vcvt.f32.s32 s13, s15
314 z = z / 1000 + x / 1000 + y / 1000;
10002a96: vldr s14, [pc, #356] ; 0x10002bfc <main+860>
10002a9a: vdiv.f32 s15, s16, s14
10002a9e: vdiv.f32 s16, s12, s14
10002aa2: vadd.f32 s15, s15, s16
10002aa6: vdiv.f32 s16, s13, s14
10002aaa: vadd.f32 s16, s15, s16
[2] Disabled FPU - "SOFT" mode
file makefile contains:
DEFINES=
VFP_SELECT=softfp
CFLAGS =-mfloat-abi=soft -mthumb
Disassembly:
312 x = (float32_t) i;
10002a80: vcvt.f32.s32 s12, s11
313 y = (float32_t) j;
10002a84: vmov s15, r3
10002a88: vcvt.f32.s32 s13, s15
314 z = z / 1000 + x / 1000 + y / 1000;
10002a8c: vldr s14, [pc, #356] ; 0x10002bf4 <main+852>
10002a90: vdiv.f32 s15, s16, s14
10002a94: vdiv.f32 s16, s12, s14
10002a98: vadd.f32 s15, s15, s16
10002a9c: vdiv.f32 s16, s13, s14
10002aa0: vadd.f32 s16, s15, s16
But I am getting same assembly code for HARD or SOFT mode. It look like that Modus Toolbox send some hidden params to compiler/make using FPU ?Am I able really to disable FPU unit ? Or maybe I am doing something in wrong way. Can someone help me ?
Best Regards
Radim
Show LessHello, I am trying to extract various logs using UART-DMA Tx.
For example, you can send a string, such as "Hello," send a hex value, or send a float, int value.
I can match the character, but I don't know how to apply the size of the buffer that changes every time I send it to DMA.
I attached what I used in the project below. Please give me your opinion on how to modify it.
regards.
Psoc_student
ps. I'm using Psoc6 Pioneer Kit and MTB
Show LessDear Receiver,
I would like to add ADC peripheral in the build-in "Hello_World" example project.
The demo kit I used is CY8CKIT-062S2-43012.
1st step: call device configurator 3.1. (figure 1)
2nd step: add ADC peripheral in the device configurator. (figure 2)
3rd step: add ADC peripheral ok. (figure 3)
4th step: assign ADC pins. (figure 4)
5th step: save device configurator ok and exit device configurator. (figure 5)
6th step: back to "Hello_World" project and compiler. -> compiler error messages appear !! (figure 6)
Could you please help me to check what's wrong with my above steps ?!
Thank you so much.
Show LessHello, I'm implementing "Uart Interrupt" using PSoc6 WiFi-BT Pioneer Kit
What I want is to judge the status of Uart Rx and generate an interrupt when it becomes "Idle".
The criterion for "Idle" status is that when data is received and stopped, I want to judge the status as "Idle".
After judging the status of "Uart Rx", is there a function that can cause Interrupt when it becomes "Idle"?
Thank you for your reply
Show Less
Hi, PSoC6 supports centralized fault report/monitoring structures that monitor faults generated within the
device. but i can't find fault report driver in mtb-pdl-cat1 folder. Can you help me point out which file is the driver of the fault report. thanks!
I'm new to Infineon and PSoC. I need to read the time in milliseconds from power on. Or any time running in milliseconds. I'm experienced with Arduino, and there we use a simple millis() function, which handily returns the milliseconds from start up. I have the impression I have to build up a clock or a timer or some similar entity. But I can't find any examples how to do it.
Show Less