引言
随着FPGA(FiELD Prograromable Gate Array,现场可编程门阵列)技术的迅速发展,SOPC(Systam On a Prograromable Chip,可编程片上系统)作为一种特殊的嵌入式微处理器系统,已逐渐成为一个新兴的技术方向。SOPC融合了SoC和FPGA各自的优点,并具备软硬件在系统可编程、可裁减、可扩充、可升级的功能。其核心是在FPGA上实现的嵌入式微处理器核,而如何针对特定的微处理器选择合适的嵌入式操作系统是SOPC开发的难点之一。本文针对Xilinx公司的MICroBlaze软核,介绍了PetaLinux嵌入式操作系统及其移植方法,研究了PetaLinux的相关配置和启动方案。
1 基于MicroBlaze处理器的系统设计
1.1 MicroBlaze处理器简介
MicroBlaze软核处理器是一种针对Xilinx FPGA器件而优化的功能强大的微处理器。它内部采用RISC架构的32位指令和数据总线,支持CoreConnect片上总线的标准外设计集合,具有兼容性和重复利用性,且可根据性能需求和逻辑区域成本任意裁减,极大地扩展了应用范围,其最精简的核只需要将近400个Slice。
MicroBlaze的CoreConnect总线、它能够将FPGA内各种不同的IP核连接到一起构成一个完整的系统。CoreConnect总线是一个总线标准的集合,它包括PLB总线(Processor LOCal Bus,处理器本地总线),LMB总线(Local Memory Bus,高速本地存储器总线),FSL(Fast Simplex Link,快速单连接)总线,以及XCL(Xilinx CacheLink)总线等。
1.2 系统结构和外部设备概述
本系统主要是在Virtex-4开发板上构建一个以MicroBlaze处理器为中心的嵌入式信号处理系统,在FPGA内部实现系统的总线架构、数据存储、地址译码、外设接口等系统部件和功能。各功能部件在FPGA内部都以IP核的形式构建并连接,整个系统的结构框图如图1所示。
其中,SysACE用于存放文件系统和应用程序配置文件,INTC用来实现中断控制;GPIO和UART 16550用于系统调试,自定义IP核DDC用来实现数字接收机下变频功能,这些外设通过PLB总线与MicroBlaze处理器和DDR相连;用于快速傅里叶变换的自定义IP核FFT通过FSL总线与Micr-oBlaze内部通用寄存器直接相连,实现了数据的快速传输;DDR通过XCL总线与MicroBlaze处理器相连,实现了MicroBlaze处理器对片外存储器的高速访问。
1.3 嵌入式操作系统的选择
选用PetaLinux嵌入式操作系统。它是PetaLogix公司专门针对FPGA的片上系统设计的嵌入式Linux开发套件,在满足应用工程的逻辑编程能力和对嵌入式Linux要求的同时,可极大地缩短产品开发周期。PetaLinux作为专门针对于Xilinx FPGA的嵌入式Linux解决方案,不但提供了专门的BSP生成器,而且提供了众多的参考设计,可以帮助设计者快速掌握PetaLinux的配置方法。PelaLinux内核正在不断的完善之中,且不断地加入基于Xilinx FPGA嵌入式系统IP核的设备驱动,比如XilinxUSB、SysACE、FSL总线设备驱动、10/100/1000M三态以太网MAC等。这些设备驱动极大地减轻了嵌入式系统开发者的工作量,缩短了产品开发的周期。
2 PetaLinux系统移植
在SOPC硬件系统构建完成后,就要针对此结构配置操作系统内核,下面介绍具体步骤。
2.1 建立交叉编译环境
嵌入式系统开发一般采用交叉编译的方法,即在宿主机上对内核和应用程序进行编译,生成目标机处理器可执行的二进制位流文件,将此文件下载到目标机运行。PetaLinux针对MicroBlaze处理器建立了交叉编译器,运行source./settings.sh脚本,系统会自动建立交叉环境。