AN75778 UVC Framework porting to CYUSB3012

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Cromagnon
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

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
Moderator
5 likes given 500 solutions authored 1000 replies posted

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
Moderator
5 likes given 500 solutions authored 1000 replies posted

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
0 Likes
lock attach
Attachments are accessible only for community members.
Cromagnon
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

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

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