You are here

CYUSB3011 Memory Map and linker files | Cypress Semiconductor

CYUSB3011 Memory Map and linker files

Summary: 5 Replies, Latest post by NIKL on 04 Mar 2013 03:06 AM PST
Verified Answers: 0
Last post
Log in to post new comments.
fw2013's picture
8 posts


We are using the CYUSB3011 part (has 256KB instead of 512KB) and need the memory map of these 256 KBytes.  A linker file for this part would help solve this mystery as well.

I know there is RAM at 0x40078000 which is where the Boot firmware gets located.  Since this is at 490Kish above the start of the System RAM, I'm wondering what the exact memory map looks like between 0x4000000 and 0x40080000 for this part number.

It's not in any data sheet, app note or code example that I can find.

fw2013's picture
8 posts

 Solved my own problem.  Here are the details for those that need to know:

The example project files for downloadable applications are all setup for the 512KB parts.  

The parts of RAM that are used by these apps, where the definition is and what to change for 256K parts is:

CODE: start 0x40003000 defined in ...firmware\common\fx3.ld stays the same

DATA: start 0x40030000 defined in ...firmware\common\fx3.ld changes to 0x40020000 (2 places)

HEAP: start 0x40038000 defined in cyfxtx.c in the project directory changes to 0x40028000

A define CY_U3P_SYS_MEM_TOP sets the top of RAM and needs to change from 0x40078000 to 0x40040000.

DMA BUFFERS location and size are automatically calcluated from the above settings based on what is left over.


These changes give the following size for the various sections:

CODE length 0x1D000 (116K)

DATA length 0x8000 (32K)

HEAP length 0x8000 (32K)

DMA BUFFERs length 0x10000 (64K)


Now your only job is to make everything fit inside those limits or move them around again to make it fit!

rskv's picture
Cypress Employee
1134 posts


Thanks for updating this thread after your problem is solved.


sai krishna.

fw2013's picture
8 posts

Now we are having issues with the newest 1.2.2 boot firmware on this part.

Our tests conclude that the library cyfx3_boot.a expects the part to be a 512K part.

Has anyone gotten the 1.2.2 boot_fw to enumerate on the CYUSB3011 part?  If so, how?

AMi Entertainment's picture
2 posts

 Could you have just changes the code size in the fx3.ld file, the loader script would have taken the extra code size you wanted from the dma buffer area.

NIKL's picture
Cypress Employee
283 posts


Anyone facing an issue regarding the firmware for part CYUSB3011, please create a tech support case.

The SDK provided on net ( is for FX3 part witn 512KB RAM ( CYUSB3014 part ). Files 'FX3.ld' and 'cyfxtx.c' from firmware have to be modified to make the firmware run on CYUSB3011 part.




Log in to post new comments.