cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

Cromagnon
New Contributor II

Hi,

The AN75779 runs properly on the Cypress evaluation board, which uses a CYUSB3014 device. We want to port this application to run on a CYUSB3012 which has only the half of internal memory (256K instead of 512K).

The first try was to change the memory setting in the file: "cyfxtx.c" and also to use the appropriate linker file: "fx3_256k.ld". The result was, that the application complains about a memory allocation error.

QUESTIONS:

1) Is the described way to specify the device restriction regarding memory correct? Is anything missing or does there exist another method to specify the used device?

2) Is it possible to modify the application to work also with less memory? And if yes, what must be changed?

3) There are a lot of functions which are not available as source code. Is it possible to publish those source files?

Kind Regards

Cromagnon

 

 

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator

Hello,

Please find my comments below

1) Is the described way to specify the device restriction regarding memory correct? Is anything missing or does there exist another method to specify the used device?

>> Please confirm if you have only enabled CYMEM_256K macro in cyfxtx.c and didn't modify the cyfxtx.c. Also, let me know the firmware size when build 512 KB RAM

2) Is it possible to modify the application to work also with less memory? And if yes, what must be changed?

>> For 256 KB RAM , 128 KB code area is supported. So, the firmware size should be < = 128 KB. 

3) There are a lot of functions which are not available as source code. Is it possible to publish those source files?

>> Please confirm if you have referred to the source in SDK  (Path:   FX3 SDK Installation Path\Cypress\EZ-USB FX3 SDK\1.3\firmware\fx3_sdk_1_3_4_src). If yes, please let me know for which API source are you looking for

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator

Hello,

Please find my comments below

1) Is the described way to specify the device restriction regarding memory correct? Is anything missing or does there exist another method to specify the used device?

>> Please confirm if you have only enabled CYMEM_256K macro in cyfxtx.c and didn't modify the cyfxtx.c. Also, let me know the firmware size when build 512 KB RAM

2) Is it possible to modify the application to work also with less memory? And if yes, what must be changed?

>> For 256 KB RAM , 128 KB code area is supported. So, the firmware size should be < = 128 KB. 

3) There are a lot of functions which are not available as source code. Is it possible to publish those source files?

>> Please confirm if you have referred to the source in SDK  (Path:   FX3 SDK Installation Path\Cypress\EZ-USB FX3 SDK\1.3\firmware\fx3_sdk_1_3_4_src). If yes, please let me know for which API source are you looking for

Regards,
Rashi

View solution in original post

0 Likes
Cromagnon
New Contributor II

Hi Rashi,

1) I can confirm, I have enabled the macro CYMEM_256K in file cyfxtx.c. But additionally I have also replaced the file fx3.ld with the file fx3_256k.ld in the linker settings of the project.

2) I have added the information from the .map file and attached it as file Code_Mapping.txt file. Unfortunately this the IDE mapping file is not very user friendly and I had to collect the data from over the file. If I add all sections (.text, .?, .data, .bss) together it will be 132K, which is slightly more than 128K.

Perhaps it will be less if I will not use DEBUG feature, but then I have no possibility to exmaine other misbehavoiour.

3) Yes, I have already seen these directories, but I can't find the ThreadX resources. Especially if I want for example to follow up the setting of DMA buffer, I did not find the related code. Or have I overseen something?

Kind Regards
Cromagnon

0 Likes
Rashi_Vatsa
Moderator
Moderator

Hello,

Thank you for the confirmation.

2) Please try building the firmware in "Release mode" . the code will be optimized the most (O3) for this build option.

3) Yes, I have already seen these directories, but I can't find the ThreadX resources. Especially if I want for example to follow up the setting of DMA buffer, I did not find the related code. Or have I overseen something?

>> I didn't understand the requirement. Could you please let me know the API name?

Regards,
Rashi
0 Likes