FX3 Programmers Manual, Doc. # 001-64707 Rev. *C
55
FX3 Firmware
5.1.1
Device Boot
The boot operation of the device is handled by the boot-loader in the boot ROM. On CPU reset, the
control is transferred to boot-ROM at address 0xFFFF0000.
For cold boot, download the firmware image from various available boot modes of FX3. The
bootloader identifies the boot source from the PMODE pins or eFuses and loads the firmware image
into the system memory (SYS_MEM). The firmware entry location is read by the bootloader from the
boot image and is stored at address 0x40000000 by the boot-loader at the time of cold boot.
The boot options available for the FX3 device are:
■
USB boot
■
I
2
C boot. SPI Boot
■
GPIF boot (where the GPIF is configured to be Async SRAM, Sync/Async ADMUX)
In case of warm boot or wakeup from standby, the boot-loader simply reads the firmware entry
location (stored at the time of cold boot) and transfers control to the firmware image that is already
present in the system memory.
5.1.2
FX3 Memory Organization
The FX3 device has the following RAM areas:
1. 512 KB of system memory (SYS_MEM) [0x40000000: 80000] – This is the general memory avail-
able for code, data and DMA buffers. The first 12KB is reserved for boot / DMA usage. This area
should never be used.
2. 16KB of I-TCM [0x00000000: 4000] – This is instruction tightly coupled memory which gives sin-
gle cycle access. This area is recommended for interrupt handlers and exception vectors for
reducing interrupt latencies. The first 256 bytes are reserved for ARM exception vectors and this
can never be used.
3. 8KB of D-TCM [0x10000000: 2000] – This is the data tightly coupled memory which gives single
cycle data accesses. This area is recommended for RTOS stack. Data cannot be placed here
during load time
The memory requirements for the system can be classified as the following:
1. CODE AREA: All the instructions including the RTOS.
2. DATA AREA: All uninitialized and zero-initialized global data / constant memory. This does not
include dynamically allocated memory.
3. STACK AREA: There are multiple stacks maintained: Kernel stacks as well as individual thread
stacks. It is recommended to place all kernel stacks in D-TCM. The thread stacks can be allo-
cated from RTOS heap area.
4. RTOS / LIBRARY HEAP AREA: All memory used by the RTOS provided heap allocator. This is
used by CyU3PMemInit(), CyU3PMemAlloc(), CyU3PMemFree().
5. DMA BUFFER AREA: All memory used for DMA accesses. All memory used for DMA has to be
16 byte multiple. If the data cache is enabled, then all DMA buffers have to be 32 byte aligned
and a multiple of 32 byte so that no data is lost or corrupted. This is used by the DMABuffer func-
tions: CyU3PDmaBufferInit(), CyU3PDmaBufferAlloc(), CyU3PDmaBufferFree(),
CyU3PDmaBufferDeInit().
5.1.3
FX3 Memory Map
The figure below shows a typical memory map for the FX3 device.
Summary of Contents for EX-USB FX3
Page 8: ...8 FX3 Programmers Manual Doc 001 64707 Rev C Contents...
Page 12: ...12 FX3 Programmers Manual Doc 001 64707 Rev C Introduction...
Page 48: ...48 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Overview...
Page 74: ...74 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Firmware...
Page 76: ...76 FX3 Programmers Manual Doc 001 64707 Rev C FX3 APIs...
Page 84: ...84 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Application Examples...
Page 98: ...98 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Application Structure...
Page 148: ...148 FX3 Programmers Manual Doc 001 64707 Rev C FX3 P Port Register Access...
Page 165: ...FX3 Programmers Manual Doc 001 64707 Rev C 165 FX3 Development Tools Click next...
Page 178: ...178 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Development Tools Click on Apply...
Page 180: ...180 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Development Tools d Start the GDB server...
Page 185: ...FX3 Programmers Manual Doc 001 64707 Rev C 185 FX3 Development Tools...
Page 186: ...186 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Development Tools...
Page 187: ...FX3 Programmers Manual Doc 001 64707 Rev C 187 FX3 Development Tools...
Page 188: ...188 FX3 Programmers Manual Doc 001 64707 Rev C FX3 Development Tools...
Page 192: ...192 FX3 Programmers Manual Doc 001 64707 Rev C GPIF II Designer...