4 FX3 Programmers Manual, Doc. # 001-64707 Rev. *C
Contents
4. FX3 Software 49
4.1 System Overview.......................................................................................................49
4.2 FX3 Software Development Kit (SDK).......................................................................50
4.3 FX3 Firmware Stack ..................................................................................................50
4.3.1 Firmware Framework .....................................................................................50
4.3.2 Firmware API Library ..................................................................................... 50
4.3.3 FX3 Firmware Examples................................................................................ 51
4.4 FX3 Host Software ....................................................................................................51
4.4.1 Cypress Generic USB 3.0 Driver ................................................................... 51
4.4.2 Convenience APIs .........................................................................................51
4.4.3 USB Control Center .......................................................................................51
4.4.4 Bulkloop .........................................................................................................51
4.4.5 Streamer ........................................................................................................51
4.5 FX3 Development Tools ............................................................................................52
4.5.1 Firmware Development Environment.............................................................52
4.5.2 GPIF II Designer ............................................................................................52
5. FX3 Firmware 53
5.1 Initialization................................................................................................................53
5.1.1 Device Boot ...................................................................................................55
5.1.2 FX3 Memory Organization .............................................................................55
5.1.3 FX3 Memory Map ..........................................................................................55
5.2 API Library.................................................................................................................59
5.2.1 USB Block......................................................................................................59
5.2.2 GPIF II Block..................................................................................................62
5.2.3 Serial Interfaces .............................................................................................64
5.2.4 DMA Engine...................................................................................................66
5.2.5 RTOS and OS primitives................................................................................71
5.2.6 Debug Support............................................................................................... 72
5.2.7 Power Management.......................................................................................73
5.2.8 Low Level DMA..............................................................................................73
6. FX3 APIs 75
7. FX3 Application Examples 77
7.1 DMA examples ..........................................................................................................77
7.1.1 cyfxbulklpauto – AUTO Channel.................................................................... 77
7.1.2 cyfxbulklpautosig – AUTO_SIGNAL Channel ................................................77
7.1.3 cyfxbulklpmanual – MANUAL Channel ..........................................................77
7.1.4 cyfxbulklpmaninout – MANUAL_IN and MANUAL_OUT Channels ...............78
7.1.5 cyfxbulklpautomanytoone – AUTO_MANY_TO_ONE Channel.....................78
7.1.6 cyfxbulklpmanmanytoone – MANUAL_MANY_TO_ONE Channel................78
7.1.7 cyfxbulklpautoonetomany – AUTO_ONE_TO_MANY Channel.....................78
7.1.8 cyfxbulklpmanonetomany – MANUAL_ONE_TO_MANY Channel................78
7.1.9 cyfxbulklpmulticast – MULTICAST Channel ..................................................78
7.1.10 cyfxbulklpman_addition – MANUAL Channel with Header / Footer Addition.78
7.1.11 cyfxbulklpman_removal – MANUAL Channel with Header / Footer Deletion 78
7.1.12 cyfxbulklplowlevel – Descriptor and Socket APIs ..........................................79
7.1.13 cyfxbulklpmandcache – MANUAL Channel with D-cache Enabled ...............79
7.1.14 cyfxbulklpmanual_rvds – Real View Tool Chain Project Configuration..........79
7.2 Basic Examples .........................................................................................................79
7.2.1 cyfxbulklpautoenum – USB Enumeration ......................................................79