-
在Keil 4.74环境中编译FX3工程
资源介绍
1. FX3 SDK main components.
User firmware Libraries
ThreadX RTOS (cyu3threadx.a)
FX3 API Library (cyfxapi.a)
Serial Peripheral API Library (cyu3lpp.a)
Storage API Library (cyu3sport.a)
MIPI CSI-2 API Library (cyu3mipicsi.a)
Take the example firmware lowpowertest debug reversion for the test, need link following library.
libcyu3lpp.a libcyfxapi.a libcyu3threadx libc.a libgcc.a
-lcyu3lpp -lcyfxapi -lcyu3threadx -lc -lgcc
While the search path will be:
-L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\lib\gcc\arm-none-eabi\4.8.1"
-L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\arm-none-eabi\lib" -L"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\fw_lib\1_3_3\fx3_debug"
Link script will be fx3.ld for 512KB SRAM.
From fx3 initialization block, could understand the fx3 entry point is CyU3PFirmwareEntry() function, so need manually assign entry point by follow linker command.
--entry,CyU3PFirmwareEntry
So Keil 4.74 IDE Linker page needs to configure as following pic.
2. Specific GNU cross compile tool path.
Under tap project->Manage Project Items… -> Folders/Extensions
Point to use GCC cross compile tools, please fill GNU-Tool-Prefix “arm-none-eabi-” while GNU-Tool Folder “C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\ARM GCC\”
3. C compile tap page configure.
Predefined symbols __CYU3P_TX__=1.
Include Path: ..\inc
Without optimizations
4. Specific output file type.
Under tap page Project->Options for target fx3->Output
Need create object file with debug information.
5. After build elf file, execute user command.
After precompiler, compiler and linker could get object file fx3.elf, need to convert to img file for download.
So need execute user command:
"C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\util\elf2img\elf2img.exe" -i fx3.elf -o fx3.img –v
Summary
After configuration, click Build button will show build output log like following pic.