FPGA SoC - . , , . , DE1-SoC, ltera, . !
FPGA
, , Quartus. ( project wizard), , DE1-SoC
top-level Verilog . CLOCK, HPS (SoC), , . Generate Quartus. , , FPGA Pin Planner, , .
.
QSYS. . Cyclone V SoC FPGA, Cortex-A9 , USB , Ethernet, SPI, SD/MMC .. -, FPGA. QSYS HPS (hard processor system) , FPGA, (IP cores). QSYS Avalon-MM AMBA AXI, , QSYS . QSYS IP cores HPS . Lightweight H2F Bridge FPGA interfaces.
Peripheral Pins SD/MMC ( ) UART. .
HPS clocks . SDRAM skew . , SDRAM. - , DE1-SoC, ( SOC-Computer Altera University Program). , , . IP cores PIO, .
Input 4 4
Output 10.
. PIO . LWH2F bridge HPS FPGA ( HPS), PIO FPGA. Double click for export external connection, - PIO . top-level . PIO, , HPS , . , Assign base addresses.
.
. Verilog. QSYS . Quartus :
, .
Files hps_system.qip. top-level .
, QSYS . . top-level FPGA.
HPS I/O . , Pin Planner, . HPS, :
. , - (, , hps_system lk_clk hps_io_hps_io_ ) tcl . , tcl , , , . , , .
, ! Preloader.
Preloader
HPS , . , Cortex-A9 , Application, , Linux. , , Bare-Metal , . , , , .
Flash Cortex-A9 BootRom. . SSBL (Second Stage Boot Loader Preloader). , BootRom, , Preloader, BSEL. DE1-SoC SD , , , QSPI NAND flash, , . QSYS Peripheral Pins SD . , , FPGA, .
BootRom Preloader, Clock, SDRAM . .
Preloader SoC EDS, Intel FPGA.
. BSP bsp-editor.
New HPS BSP.
{Project directory}/hps_isw_handoff/ , .
spl.boot Preloader. SD , BOOT_FROM_SDMMC. Preloader 2 id=A2, Preloader, FAT32, . , RAW format, . ( Mini partition tools 9.2). ...\embedded\embeddedsw\socfpga\prebuilt_images\sd_card_linux_boot_image.tar.gz Win32DiskImager.
FAT_SUPPORT, FAT_BOOT_PARTITION 1, FAT_LOAD_PAYLOAD_NAME .img. WATCHDOG_ENABLE EXE_ON_FPGA ( Preloader FPGA).
, , SoC. Serial Support , Preloader UART . Semihosting , , debugger . , debugger , printf . QSYS HPS UART, Serial Support BSP Preloader . Serial Support, Semihosting, , . , , . Generate, Exit.
SoC EDS cd "< BSP ( software/spl-bsp)>" Preloader make. . preloader-mkpimage.bin.
, 4 Preloader. mkpimage, SoC EDS, ( ), ( Preloader). ( QSYS), preloader-mkpimage.bin 4 ( 64 ), preloader-mkpimage.bin (, ). . , - , . , , , , . , . , , !
A2 preloader-mkpimage.bin alt-boot-disk-util -p -a write d . SoC EDS Preloader. ! header QSYS . SoC EDS, , sopc-create-header-files .sopcinfo. , .
DS-5 Eclipse. Eclipse SoC EDS eclipse& ( "&" , SoC EDS Eclipse).
, ARM - , . ARM .
C . , , . , ARM Arm Compiler 5, - scatter , ( linker script GCC ). . .
. axf bin. . .
stdio.h . KEYS_BASE LEDS_BASE. , .
scatter .
debugger . . Preloader .
!
, Debug control. , . , .
, .
, , , . Debug DS-5 .bin SoC EDS .img . mkimage -A arm -O u-boot -T standalone -C none -a 0x00100000 -e 0x00100000 -n baremetal image -d .bin .img. "-a" , "-e" .
, , , . , scatter , . bin SoC EDS cd "< >". img , BSP editor FAT_LOAD_PAYLOAD_NAME.
fat , . DE1-SoC .
, , . , .
- Cyclone V Hard Processor System Technical Reference Manual
- Altera SoC Embedded Design Suite User Guide
- HPS SoC Boot Guide Cyclone V SoC Development Kit
- Bare Metal User Guide
- SoC-FPGA Design Guide
https://habrahabr.ru/post/330974/