PSoC™ Creator & Designer Forum Discussions
I am encountering an discrepancy between the .map file size and the size of the struct in my program. The struct is defined in a shared file, and I use a shared_ram section in the linker files to instantiate the struct variable in the same RAM space for both cores so they both have access to it. My project is based on DFU_Upgradable_Stack.
1. I define the shared RAM region in dfu_common.ld
ram_app2_shared (rwx) : ORIGIN = 0x08010000, LENGTH = 0x00400
2. I define an alias for the shared ram region then assign .struct1 and .struct2 to it in dfu_cm0p.ld and dfu_cm4.ld for app2.
REGION_ALIAS("ram_shared", ram_app2_shared);
.struct1(NOLOAD):
{
*(.struct1)
} > ram_shared
.struct2 (NOLOAD):
{
*(.struct2 )
} > ram_shared
3. In the shared .c file I use CY_SECTION to tie the struct definitions to the same area in ram.
CY_SECTION(".struct1") struct SameStruct struct1;
CY_SECTION(".struct2 ") struct SameStruct struct2;
4. I instantiated another version of the same struct on cm0p without sharing or specifying anything in the linker files.
struct SameStruct struct3;
5. The result is when I print out sizeof() for all three, they are the same size, but the start address for struct2 is several bytes less than the start address for struct1 + sizeof(struct1). Also, printing the the address for the last element of struct1 reveals that it is about 0x14 bytes after the start address for struct2. In the map file, the size allocated for struct1 and struct2 is smaller than struct3. In the map file, the start address for struct3 is the same as revealed by printing out in the program.
This makes it pretty clear to me that the issue is somewhere in the linking process. This is just a guess, but it seems like the smaller size of struct1 and struct2 is almost what the struct would actually be without padding. SameStruct is large and includes other structs in files I do not want to edit. sizeof(struct1) = 0x260 but the size specified in the linker file is 0x1f0 and the distance between struct1 and struct2 is 0x1f0. The size specified in the linker file for stuct3 is 0x260.
I am thinking of abandoning the linker file method of sharing the same RAM space for a variable and just passing the reference over IPC, but that would require changing other code. Any ideas what I am doing wrong or why the sizes are different? Or is it just a bad idea to do it this way? Thanks!
Show LessI've been using PSOC Creator 4.4 on a very decent laptop running Windows 10 for a couple years now, and I have always been extremely annoyed everything that happens after I click "Program". It usually freezes for 20-30 seconds with the "Selecting Target" status, and then loads the "Select Debug Target" window, but that window is super glitchy, and I usually have to click and then wait for 5-10 seconds again before the target I selected is highlighted, and then unless I'm lucky, the screen freezes again for a few seconds before I can select "OK" and program the device. I usually build with Creator and then program using PSOC Programmer because Programmer doesn't always glitch out on me.
Is this normal? Sometimes it is better, but it NEVER runs smoothly. Also, the entire program freezes during compilation, and windows says it is not responding.
Sorry write such a whiny post, but I get soooo frustrated with this IDE sometimes, and I figured I would see if anyone has a way to make it better.
Show LessDear Sirs and Madams,
We would like to install only the "Bridge Control Panel", but it doesn't seem to be on the Infineon website.
Is it possible to install the Bridge Control Panel without installing PSoC Creator?
Regards,
Show Lesscybtldr_api2.h contains the "higher-level API that handles the entire bootload operation". I've successfully used CyBtldr_Program from this file to create a firmware update tool that reads from an external .cyacd file. However, I would like to embed the data from the .cyacd file directly into the executable so there is just one self-contained file to distribute to customers. I don't see any alternative to CyBtldr_Program that can handle this, though. Is there one?
CyBtldr_Program calls CyBtldr_RunAction, which calls CyBtldr_OpenDataFile, which uses fopen, so it needs a real file and can't work with internal data. Is there any way to handle this that's pre-written, or do I have to write it myself? Either converting the ASCII .cyacd file itself into xxd -i format:
unsigned char firmware_v1_0_cyacd[] = {
0x31, 0x45, 0x30, 0x37, 0x44, 0x30, 0x36, 0x39, 0x30, …
or converting the hex cyacd file data to an actual byte stream:
unsigned char firmware_v1_0[] = {
0x1E, 0x07, 0xD0, 0x69, 0x03, 0x30, 0x00, …
Either way is fine with me.
Show LessI'm working on a project with a CYBLE-416045-02 ...and to put it mildly it's very resource limited: I need almost all the pins for some function.
Now I've tried to auto assign all pins ... and the PSoC Creator fails to find a suitalble digital placement.
The question: If the PSoC Creator does not find a suitable digital placement, does this mean that there IS no suitable placement? In other words: Is the search for a solution for the pin assigment complete / exhaustive?
Show LessHi,
I installed the USBSerialSDKSetup.exe and have the Eclipse, usb drivers working fine. But I don' see USB-Serial configuration utility anywhere? Is that still needed for the latest version of the SDK?
If yes, where can I find it?
I only see mention to download the User Guide on the web site.
Thanks
rgrds
Show Less
Hi, I have a simulation problem on Infineon Designer tool.
after i run the simulation. this message is showed to me
"Convergence problem. Check the analysis parameters!"
How can i fix it?
Show Less下载TLE983x BSL 装载机夏仔夏扎夏兹夏西TLE983x BSL l l
Show LessI am using PSoC Creator 4.4. CY8C5868AXI.
I can program the code.
But cannot enter debug mode.
The debug icon is not active.
And the Debug option in the pop-down menue is not active.
Show Less