PSoC™ 4 Forum Discussions
New guy here - no prior experience with PSoC Creator or this family of hw.
I just inherited an existing 3-part project (launcher, stack, app) and am trying to simply build it to get oriented with the system. I was able to build the launcher project with no problem. When I build the stack project, I get this error:
Error: flash row: 1024 is either already used or does not exist.
The command 'cyelftool.exe' failed with exit code '1'.
The device in question (CY8C4128LQI-BL543) has 256k of flash, which, at 256 bytes/row (as seen on the cyelftool.exe command shown in the output), translates to 1023 rows - namely, row 1024 is surely out of range. My project does not appear to be actually out of flash resource, though, as the Resource Meter for the project shows flash at 50.9% and SRAM at 55%. I took a look at the map file and found that the last code in the flash area were constants located at 0x20182 - roughly half of 0x40000 - consistent with that 50% metric.
There was one tiny block of data later, at the very high end of flash:
*(.cyloadablemeta)
.cyloadablemeta
0x0003ffc0 0x40 .\CortexM0\ARM_GCC_541\Debug\cymetadata.o
0x0003ffc0 cy_meta_loadable
But at size 0x40, it should fit exactly in that last little bit of space, ending neatly at 0x3FFFF and not overrunning my 0x40000 limit.
I ran cyelftool on the command line to see if it had any verbosity arguments - hoping to get it to tell me the name of the thing it was working on when it overran memory - but found nothing in its help output that looked promising.
I'm seeking guidance for even how to investigate this issue. Thank you!
Here's the section header output from objdump.
It confirms that DATA/TEXT parts occupy just over 0x20000, half the flash. The cyloadablemeta section butts up against the end of flash space, but appears to end just at 3FFFFF - no reason to think cyelftool would need to allocate anything after row 1023.
1561 .eh_frame 00000004 000000000001ea84 DATA
1562 .rodata 00000ad8 000000000001ea88 TEXT DATA
1563 .constdata 00000d18 000000000001f560 DATA
1564 .conststring 00000091 0000000000020278 DATA
1565 .ramvectors 000000c0 0000000020000000 BSS
1566 .btldr_run 00000004 00000000200000c0 BSS
1567 .data 00000658 00000000200000c8 DATA
1568 .bss 00001250 0000000020000720 BSS
1569 .heap 00002500 0000000020001970 BSS
1570 .stack 00000800 0000000020007800 BSS
1571 .cyloadermeta 00000040 00000000f0000000 DATA
1572 .cyloadablemeta 00000040 000000000003ffc0 DATA
1573 .cyflashprotect 00000080 0000000090400000
1574 .cymeta 0000000c 0000000090500000
1575 .cychipprotect 00000001 0000000090600000
1576 .stab 00000084 0000000000000000
1577 .stabstr 00000117 0000000000000000
1578 .debug_aranges 00000a90 0000000000000000
1579 .debug_info 0000a11b 0000000000000000
1580 .debug_abbrev 0000236c 0000000000000000
1581 .debug_line 00002f84 0000000000000000
1582 .debug_frame 0001e154 0000000000000000
1583 .debug_str 000077e9 0000000000000000
1584 .debug_loc 00004325 0000000000000000
1585 .debug_ranges 00000a38 0000000000000000
1586 .comment 00022b4b 0000000000000000
1587 .arm_vfe_header 000001a8 0000000000000000
1588 .ARM.attributes 0000002a 0000000000000000
1589 .shstrtab 0000bed1 0000000000000000
1590 .symtab 00078210 0000000000000000
1591 .strtab 0005e400 0000000000000000
1592 .cychecksum 00000002 0000000090300000
Environment:
PSoC Creator 4.1 Update 1 (4.1.0.3210)
Culture: English (United States)
OS Version: Microsoft Windows NT 10.0.16299.0
CLR Version: 4.0.30319.42000
GCC 541
Note: project was originally created with a prior version of PSoC Creator and components. The 4.1.0.3210 version of PSoC Creator required that the components be updated to their latest ones, which I allowed.
EDITS:
1. ObjDump output added
2. Version and component update note added (2018-02-13 @ 1612 (GMT-5))
Show LessThis topic is mostly about developing an android application to use PSoC4 BLE as a remote controller. I want to know how to control an android device (like a mobile phone) with an external remote controller. I want functions like D-pad, Enter, Return, Home, etc. I can send an receive data from my BLE service. Then upon receiving a command, some functions should trig like Enter or delete, or navigate through an app by D-Pad or Tab.
Appreciate if anyone who had a same experience like this.
Show LessI have built 100 boards using a PSoC4 BLE (CYBLE4248LQI-583) and I'm discovering that a significant percentage of them have a problem wherein they reset themselves periodically. Some reset as often as every few seconds and others reset much less frequently. The reset interval appears to be somewhat random, but it's hard to tell. I'm somewhat stumped on why this is so I'm looking for some brainstorming help. Below are some additional details. Any ideas?
I've done alot of probing on the boards and can't see anything wrong with the reset line or voltage supplies or anything else in any of the units. I have a 32kHz crystal oscillator and a 24MHz crystal on the board, though I'm using the built-in RC oscillator (IMO) to generate the SysClk because I haven't figured out a way to use the 24 MHz crystal to run my system at 48 MHz. Nominally, I have the device set for 5V though in actuality, it's getting 4.85V.
I have a suspicion that this has something to do with the WDT, which I admittedly don't fully understand. I have a WDT with an ISR, which is getting serviced. I made sure that the WDT ISR is top priority.
Show LessI'm running an application with Cyble-014008-device. All works fine, but when I try to enable the resolving list it does not work.
The APIs for that are available in PSoc-Creator 4.0.
I think the issue is, that the device is a BLE4.1 device. Is it possible to upgrade the stack-firmware to BLE 4.2 or is it neccessary to change
my device to 214015 ?
Show LessHi,
I have written a PSOC4 BLE program to turn on a LED for 5sec and turn off and go to deep sleep. I know during deep sleep the PSOC4 BLE will not send any signal. How do I access the PSoC4 BLE microcontroller using an Android Device using BLE for further control?
Show LessHi,
I am working on Uart rx interrupt.I send the data through terminal,then my code receive the data and print on the console.
But my code problem is when i send the data upto 15 bytes but reads upto 8 bytes only,if i change the buffer size in uart receiver settings morethan 8 bytes than
the my code always executes the interrupt only ,i.e it is not coming out from interrupt.
so,please help me to resolve the issue.
Thanks in advance.
please find the attachment
Show LessI try to connect DMA tr_out to PulseConverter, or EdgeDetector, or PWM stop. In any case I get error : Failed to place ff blocks. If I remove connection from DMA tr_out to any block the project will compile and build correct.
How can I resolve this issue ?
Show LessI am streaming audio from an Android to a PSoC 4 via BLE and sending the received data through the I2S to play it back but the it sounds noisy/static-y. I am able to somewhat hear a sinewave through the noise and when I change the frequency of the sinewave I can hear it change through the speaker attached to the PSoC. However I cannot hear any speech from the speaker, only noise.
I have created a wav file on the Android and it sounds fine. I have tried taking the data from a portion of a file playing a sinewave and directly saving it on the PSoC as an array and playing that instead of the received data but it still has noise/static.
Any help would be appreciated.
Show LessHello,
For a project I need to read out the sensor values of the MPU 6050.
After doing some research I downloaded the project in this topic from 3 months ago MPU6050 w/PSOC4 - Implementing a Filter
The only problem I am facing is that I am getting errors that there are too few arguments in the I2C functions provided by PSoC after I build the project.
For example code for reading a byte of data:
void I2CReadBytes(uint8_t devAddr, uint8_t regAddr, uint8_t length, uint8_t *value) {
uint8_t i=0;
I2C_MPU6050_I2CMasterSendStart(devAddr, I2C_MPU6050_I2C_WRITE_XFER_MODE);
I2C_MPU6050_I2CMasterWriteByte(regAddr);
I2C_MPU6050_I2CMasterSendRestart(devAddr, I2C_MPU6050_I2C_READ_XFER_MODE);
while (i++ < (length-1)) {
*value++ = I2C_MPU6050_I2CMasterReadByte(I2C_MPU6050_I2C_ACK_DATA);
}
*value = I2C_MPU6050_I2CMasterReadByte(I2C_MPU6050_I2C_NAK_DATA);
I2C_MPU6050_I2CMasterSendStop();
}
These functions expect more parameters now than the project that I downloaded from 3 months ago, while the project is still PSoC 4.
Is it possible to avoid these errors so I can use this project to read the data?
Thanks for reading
Sebastiaan
Show LessHello,
I wonder if there are any good document comparing PSoC4 and PSoC1 by each feature.
I prefer the document showing merit/advantage of PSoC4 over PSoC1 .
Could anyone help?
Best Regards,
Show Less