PSoC™ 4 Forum Discussions
text.format{('custom.tabs.no.results')}
Hi all,
I am trying out the example of FixedStack OTA bootloading for PSoC 4 BLE device. I am doing the steps as described but I got error in step 11. Bat file is giving error: Can't find utilities folder "C:\Program Files(x86)\Cypress\PSoC Creator\4.1\PSoC Creator\import\gnu\arm\5.4.1\bin\arm-none-eabi-nm.exe" Please check if path to PSoC Creator specified correctly.
I am using CY8C4248LQI-BL583.
Someone please help me on this as soon as possible. I am a beginner for the PSoC application development.
Show LessHi All,
Running on CY8C4247AZI-M485,
I have an application (bootable) and a bootloader.
I followed instruction in "Emulated eeprom v2.0" and got everything running smooth using "checksum excluding sector".
I can now use emulated eeprom in my bootable application.
Now I would like to access the emulated eeprom "checksum excluding sector" from within the bootloader project, - how would I go about it?
thanks
Dan
Show LessAfter getting told my 8051 license had run out (I thought I was using ARM in the PS0C so I ignored that), all my preferences, links to my projects, etc. were deleted.
My projects were still there, but it was if PSoC Creator had been installed clean. I when to a lot of trouble to create my dark themed edit setup.
Is there a place I can find my old preference files? Hate to start over just because I did not have a Keil 8051 license. (I do now). Is this some kind of
punishment inflicted on customers who do not register?
Show LessHello all,
my colleagues in the test department found a flash corruption case
Our device is connected to the battery of cars, so it is powered at 12 V; it has also a bootloader
The test is: turn on device, wait for a while, turn off (to 6 V, that is off), wait, repeat.
After a variable amount of time the device stops in the bootloader (it turns on a blue led)
I used psoc programmer to download the two images (corrupted: left)
As you can see, at address 1FFC0 the content is different (all zero in the corrupted case, erased?)
From the map file I got:
.cyloadermeta 0xf0000000 0x40 .\CortexM0\ARM_GCC_541\Release\cybootloader.o
0xf0000000 cy_meta_loader
0x0001ffc0 cyloadablemeta_start = cy_project_type_app_for_stack_and_copier?((LENGTH (rom) - CY_FLASH_ROW_SIZE) - CY_METADATA_SIZE):((LENGTH (rom) - (CY_FLASH_ROW_SIZE * (CY_APPL_NUM - 0x1))) - CY_METADATA_SIZE)
.cyloadablemeta
0x0001ffc0 0x40
*(.cyloadablemeta)
.cyloadablemeta
0x0001ffc0 0x40 .\CortexM0\ARM_GCC_541\Release\cymetadata.o
0x0001ffc0 cy_meta_loadable
Can you tell me why this can happen? That is, when bootloader/bootloadable change that flash row?
Best regards
Massimo
Show LessHello,
We print constantly the Gatt error code to UART for debugging purposes.
Recently we encountered a case where the value was 2000171b (it was printed multiple times among other properly printed strings).
Given that the Gatt error code is of type CYBLE_GATT_ERR_CODE_T which has a maximum value of 0xFF, we were wondering how this could be and what does it mean?
Thanks,
David
Newb here. I’m trying to find more details on this device, like the accuracy/stability of the 32.768 kHz xtal (I’m considering the board for a time keeping application). Can anyone point me to some? Also, apparently this board is only FCC certified for development. Any idea what’s involved in getting it certified for use in an end-product? Thanks.
Show LessHello,
Im trying to write a simple IF condition based on some values or length of the data in the scan response result. My question is about the dataLen field, should I be comparing this field as an int or hex? This is what my condition looks like. Notice the "OR" statement.
&& (advReport->data[2] == 0x31) && (advReport->data[3] == 0x01) \
&& (advReport->data[4] == 0x3b) && (advReport->data[5] == 0x04)) || (advReport->dataLen == 0x0b))
{
....
}
I was to check if the dataLen field is "11". How should that portionof the statement should be written:
this
(advReport->dataLen == 0x0b)
or this
(advReport->dataLen == 11)
Also, what is the dataLen property actually counting? Is it the length of the entire response packet including headers or is it just the response data? According to the documentation it is the length of the data for each device that responded to scanning. I am not sure what this means but I would like to check the specific length of the data I am sending in the advertising packet.
Thanks,
Rohan
Hello everyone,
For A uni project I have to read MIDI uart output, but because the signal goes trough a optocoupler the interrupt is always triggerd by a '0' byte, and this poses an issue because I only need the data when its actually being sent. MIDI always sends 3 bytes, 1 for command, 1 for note and 1 for velocity.
This is the main, interrupt routine sets a flag when triggered:
int main()
{
UART_1_Start();
isr_1_StartEx(isr_1_Interrupt);
UART_2_Start();
IDAC_1_Start();
IDAC_1_SetValue(0);
CyGlobalIntEnable;
while(1){
//other code to be executed
}
if(rx_intr==1){ //the flag from the interrupt
rx_intr=0;
count++;
uint32 byte;
uint8 byte1;
uint8 byte2;
uint8 byte3;
uint8 byte4;
if (count==1){
byte1 = UART_1_UartGetChar();
UART_2_UartPutChar(byte1);
UART_2_UartPutChar(UART_1_SpiUartGetRxBufferSize());
}
else if (count==2){
byte2 = UART_1_UartGetChar();
UART_2_UartPutChar(byte2);
}
else if (count==3){
byte3 = UART_1_UartGetChar();
UART_2_UartPutChar(byte3);
checkValue(byte1, byte2, byte3); //stuff to do with the read bytes
tel =count;
}
UART_1_SpiUartClearRxBuffer();
UART_1_ClearRxInterruptSource(UART_1_GetRxInterruptSourceMasked());
// setvbuf(stdin, NULL,_IONBF, 0);
}
}
Show Less