随着性能的逐渐提高以及成本的不断降低,fpga在嵌入式领域的应用日益广泛。本文介绍了petalinux操作系统的特点和目录结构,并分析了基于mld的bsp自动生成技术,最后总结了petalinux操作系统移植的具体方法。这对设计基于microblaze处理器的嵌入式系统具有重要指导意义。
fpga生产商xilinx公司提供了全面的嵌入式处理器解决方案,包括powerpc、microblaze和picoblaze三款risc结构的处理器核。其中,microblaze是32位嵌入式软核处理器解决方案,支持coreconnect总线的标准外设集合,具有兼容性、可配置性以及重复利用性,能够根据成本和性能要求提供高性价比的处理性能。
支持microblaze处理器的嵌入式操作系统很多,比如uc/os—ii、bulecat me linux、rta mb、threadx、petalinux等等。本文介绍了petalogix公司发布的petalinux操作系统,并分析了xilinx公司所使用bsp自动生成技术。最后总结出petalinux操作系统在microblaze平台上的移植方法和步骤。
1 petalinux操作系统介绍
petalinux操作系统是面向microblaze软核处理器的全功能嵌入式linux操作系统。其发布采用了“all inone”的整合方式,将针对microblaze处理器定制的linux2.4/z.6内核源码、u—boot源码、相关的开发工具以及开发板参考硬件平台配置,集成在一个压缩包内发行,极大地方便了开发人员的使用。该操作系统主要具有以下几大特点:
①针对fpga嵌入式开发的特点采用了板级支持包。
②自动生成工具,可以根据用户定义的嵌入式硬件平台信息自动生成板级支持包,简化了操作系统的移植。
③petalinux发布的源码树中包含了部分常用ip核的驱动程序(如gpio、ethernetlite、uartlite等),减少了用户移植、编写驱动程序的工作量。
④根据设计的不同需求,可以通过配置菜单将petalinux配置成without mmu support和mmu support两种版本,即ttclinux和标准linux。
petalinux包含了大量的脚本命令(如petalinux-copy-autoconfig、petalinux-new-platform、petalinux-new—app等),给用户的使用提供了便捷条件。
顶级目录下各子目录的结构和功能如图1所示。在petalinux的目录结构中有硬件、软件和工具3个顶级目录,分别包含与之相关的文件和代码。针对宿主机操作系统不同的shell类型,具有c shell和bash shell两种petalinux环境变量设置脚本。
2 基于mld的bsp生成技术
在嵌入式系统中,bsp(board support package,板级支持包)是指给目标板提供特定操作系统支持的代码,介于底层硬件和操作系统之间,是完成嵌入式操作系统移植和相关驱动程序开发的关键。
xilinx公司在嵌入式开发软件)a玲中采用了以mld(microprocessor library definition,微处理器库定义)专有格式为基础的动态可定制的bsp生成技术,实现了bsp和软件库的自动化生成。每个操作系统和库都有各自唯一的mld文件和与之相关的1℃l(tool command language,工具命令语言>文件。mld文件是数据定义文件,通过xps中设置的一组参数来定义库和操作系统。这些参数值将保存在xps内部数据库中,在输出生成时供脚本文件使用。tcl文件是脚本文件,包含了一组可以访问整个设计数据库的程序。xps软件通过调用它来创建定制bsp。利用m生成bsp的流程如图2所示。
3 petalinux内核的移植方法
3.1搭建交叉开发环境
为了便于在windows平台下开发基于petalinux的嵌入式系统,本文利用vmware虚拟机软件来搭建交叉开发环境,如图3所示。首先,在主机的windows平台上安装虚拟机软件,然后通过虚拟机来安装红帽子企业版red hat enterprise 4,最后在桌面linux系统中安装petalinux源码树。windows和linux两种系统间的数据交换通过设置共享目录来实现。
petaijnux操作系统采用整合方式发布,下载的压缩包内已经包含了完整的交叉开发工具链,安装方法非常简单。
(1)建立工作目录
在linux操作系统的终端模式下运行“mkdir/home/embed”命令,新建embed文件夹作为嵌入式开发的工作目录。
(2)解压压缩包
通过共享目录把petalogix公司发布的压缩包petalinux-v0.40一rc2.tar.gz拷贝到embed工作目录中。然后在终端模式下运行“tar-zxvf petalinux-v0.40一rc2.tar.gz”解压缩命令。解压缩完成后,在工作目录中会生成一个与压缩包相同名称的文件夹,petalinux内核源码、u.boot源码以及开发工具等资源均在其中的各个目录中。
(3)设置环境变量
petalinux系统已经为用户编写好了设置环境变量的脚本文件settings.sh和settings.csh。用户只需要根据宿主机操作系统shell的类型,运行相应的环境变量配置脚本即可完成petalinux开发环境的设置。需要注意的是,每次进入终端模式都必须运行一次环境变量配置脚本。
(4)查看交叉编译器版本
在终端模式下运行microblaze-uclinux-gcc-v命令,查看编译器的版本信息。如果交叉开发工具链安装没有问题,运行命令后在终端窗口将出现图4所示的版本信息。
3.2为目标板创建bsp
在xps软件中生成板级支持包的具体方法如下:
(1)安装板级支持包自动生成工具
petalinux在发布时已经提供了完备的mld和tcl文件,位于压缩包hardware/edk—user—respository目录下。安装的方法非常简单,直接将edk—user—respository目录下的petalinux vl一00一a和petalinux vl一00一b两个文件夹,拷贝到edk安装路径x:\xilinx\10.1\edk\sw\lib\bsp下即可(其中,x指windows系统中的磁盘盘符)。当重新启动xps时,petalinux操作系统选项便出现在software>software platform settings>software plat—form>os下拉列表框中。
(2)构建基于microblaze的嵌入式硬件平台
利用xps软件中的bsb向导能够快速构建简单的嵌入式系统,而且可以通过添加ip catalog中提供的ip核,或者用户根据需求自己设计的ip核来进一步完善嵌入式系统的功能,完成基于mieroblaze的sopc硬件系统的设计。
(3)配置软件平台
在xps软件界面中,选择software菜单中software platform settings选项。弹出的对话框中有software platform、os and libraries和drivers三个选项卡。在software platform选项卡的os下拉列表框中选择petalinux操作系统,在version下拉列表框中选择1.00.b版本,如图5所示。当仅限于使用linux2.4内核时,也可以选择1.00.a版本。
在os and libraries选项卡中根据目标板的实际情况为操作系统设置相关参数。相关参数的设置情况如表1所列。
(4)生成板级支持包
在xps软件中,选择software菜单中的generate libraries and bsps选项,系统调用库生成工具libgen依据用户定义的硬件平台自动生成板级支持包,并保存在工程目录\microblaze_o\libsrc\petalinux_vl_00_b\src下。同时,在上一级目录中将生成包含了硬件平台完整描述信息的配置文件,即用于2.4内核的auto-config.in文件和用于2.6内核的kconfig.auto文件。
当硬件平台发生更改时,必须再次运行generate libraries and bsps选项,重新生成bsp。
3.3 为petalinux操作系统传递配置信息
petalinux操作系统中的autoconfig结构允许将硬件配置信息传递到bootloader和linux内核配置中,并利用edk工程目录中的mss文件为特定硬件平台自动配置内核和bootloader。下面介绍具体实现方法。
(1)创建并配置新平台
这里以用户使用自行设计的目标板为例,首先为目标板建立一个新的设计平台,在终端模式下运行以下命令。
cd/home/embed/petalinux-vo.40一rc2/software/petalinux-dist
petalinux-new-platform-k 2.6-v xilinx—p newl800
make menueonfig
命令执行后,将创建一个名称为newl800的平台,同时进入终端式内核配置菜单。利用上下光标键选择vendor/product selection选项,单击回车键进入下一级菜单。在该菜单中选择供应商和产品,如图6所示。
(2)拷贝edk工程文件
拷贝edk工程文件到/hardware/use-platform路径下,该路径是脚本工具默认的操作位置。通过共享文件夹将整个工程文件夹拷贝到linux环境中。
(3)传递配置信息
系统配置过程中将利用auto-eonfig.in文件、或者kconfig.auto文件中硬件信息为内核构建makefile文件。petalinux提供的脚本命令可以快速地将该文件拷贝到petalinux源码树中。直接在终端模式下运行petalinuxcopy-autoconfig脚本命令即可。
3.4 配置和编译petalinux内核
linux内核支持多种配置方法,其中“make menuconfig”方法基于文本图形化终端来显示配置菜单,是目前使用最广泛的配置方法。在终端模式下运行“make menuconfig”命令即可进入配置界面,再选择kernel/library/default selection选项,设置内核版本为linux一2.6.x。同时,选中customize kernel settings和customize vendor/usersettings选项,即可进行内核设置和用户功能设置。
linux内核配置选项众多,实际上大部分选项可以使用默认值,只有少部分需要用户根据所使用硬件平台的实际情况以及对操作系统的功能需求来进行选择。内核配置完成后,选择保存退出。在终端模式下运行“make all”命令,系统便开始编译内核及相关应用。编译过程时间比较长,通过观察终端上显示的编译信息,可以了解编译的进度、出现的错误和警告信息等。如果内核配置没有问题,则编译成功后,在/software/petalinux-dist/images目录下将生成各种不同格式的镜像文件。
3.5 下载内核
生成的内核文件是否正确,需要通过在实际硬件环境中运行来检验。在调试阶段下载内核到目标板一般可以通过jtag、串口、以太网和usb接口来进行数据传输。为了方便调试,这里通过jtag接口采取xmd调试方式,动态加载和启动petalinux。具体步骤如下:
(1)连接硬件调试环境
通过jtag电缆连接pc机和目标板的jtag接口,作为内核下载通路;通过串行电缆连接pc机串口和目标板串口,作为控制台通路;通过5类网络电缆连接pc机网口和目标板网口,作为以太网测试通路。
(2)设置软件环境
使用windows xp自带的超级终端工具作为控制台软件。控制台参数设置为:波特率115 200 b/s,8位数据位,1位停止位,无奇偶校验,无流量控制。pc机的ip地址设置为192.168.0.1,同时关闭windows xp的防火墙。
(3)配置fpga
启动xps开发平台,选择device configuration菜单中的download bitstream选项,下载硬件比特流文件download.bit。
(4)利用xmd加载内核镜像到外部存储器
将/software/petalinux-dist/images目录下的二进制格式的image.bin文件复制到windows主机中的edk工程目录下。启动xmd命令行界面,输入以下命令
dow-data imge.bin 0x86000000
其中,0x86000000是外部存储器的起始地址。当内核镜像加载到存储器之后,在xmd命令行中继续输入
con 0x86000000
如果内核文件没有错误,microblaze将启动petalinux操作系统,系统的启动信息将输出到超级终端上。
(5)登录系统
内核启动完成后将显示“uclinux login:”,提示用户输入用户名和密码登录系统。输入用户名root和密码root,即可登录petalinux操作系统。此时串口作为petalinux操作系统的控制台,通过超级终端软件来接收串口数据和发送串口数据。在超级终端上运行ls命令,即可显示根文件系统下的目录结构。
结语
xilinx公司的microblaze软核处理器一直处于不断发展和完善的状态,应用范围也将越来越广泛。本文详细介绍了petalinux操作系统,并总结出了petalinux操作系统的移植方法,这对设计基于microblaze处理器的嵌入式系统具有重要的指导意义。
虹科Panorama SCADA平台的HMI功能
湖南水库雨水情测报及大坝安全监测建设解决方案
全项目土壤肥料养分检测仪的技术参数
高压变频器在生物制药风机上的应用
模拟电路网络课件 第十一节:小信号模型分析法
PetaLinux操作系统特点和结构及其移植方法
台积电取代三星、英特尔?首次站上全球半导体龙头
如何将两个12V电源组合成24V电源?
WM5100引领新型的音频中枢
应广单片机开发实例MCU PMS150C驱动300个WS2812B
Nextion HMI解决方案 给显示屏带来更的高性价比
智能环网柜成套设备设计与电控技术
红帽“背叛”开源:限制RHEL源码访问,突袭下游发行版
科陆电子筹划发行股份购买资产事项
5G全方位应用_三大运营商还有很长的路要走
MIR振动辅助发光可实现一立方纳米以下的极端光束限制体积
《5G全连接工厂建设白皮书(征求意见稿)》发布
智能装备工业互联网联合创新中心在重庆市挂牌成立
FPGA一体化高级设计方法
离线语音照明解决方案:让你的照明更智能