武汉嵌入式培训
达内武汉民大中心

15271940953

热门课程

武汉嵌入式培训:FPGA的嵌入式系统

  • 时间:2017-05-22
  • 发布:武汉嵌入式培训
  • 来源:嵌入式教程

今天,达内武汉嵌入式培训的小编将要给大家带来的是FPGA的嵌入式系统。

1、什么是嵌入式系统?

在《基于PowerPC的嵌入式Linux》一书中,表述为:在有限的资源及有限的体积中运行的、高效地实现某种特殊功能的功能集合。

IEEE(电气和电子工程师协会) 的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。

百度百科描述:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统,对功能、对可靠性、成本、体积、功耗有严格要求的专用计算机系统。

从不同的定义可以看出:对嵌入式系统的定义较为广泛,也不好完全定义,但对于FPGA而言的嵌入式系统,应该是以FPGA器件为中心,或者处理器,或为功能单元,或二者皆可,外带其余设备构成的小体积系统。

2、建立FPGA的嵌入式系统

需求:the bootloader, the Linux kernel, and the root filesystem

the bootloader:linux的系统引导程序,用于初始化设备和系统核心。

the Linux kernel:linux系统的关键,既是核心。每一个linux系统都具备的关键部分。

the root filesystem:root filesystem 必须包含支持完整 Linux 系统运作所需的每一个项目。为了能够达成这个目的,这张磁片必须包括能让 Linux 系统运作最起码 (minimum) 的需求:

  • 基本的文档系统架构,
  • 最起码的目录: /dev, /proc, /bin, /etc, /lib, /usr, /tmp,
  • 基本的工具程序: sh, ls, cp, mv, etc.,
  • 最起码的组态设定档: rc, inittab, fstab, etc.,
  • 设备档: /dev/hd*, /dev/tty*, /dev/fd0, etc.,
  • Runtime 函式库以提供工具程序所使用之基本功能 (functions) 。
  • /dev -- 里面存放设备档 (Devices) ,为达成 I/O 工作所需
  • /proc -- Directory stub required by the proc filesystem
  • /etc -- 里面存放系统组态设定档
  • /sbin -- 重要的 (critical) 系统二进位执行档 (binaries)
  • /bin -- 被认为是系统一部分的基本二进位执行档
  • /lib -- 提供 run-time 支持的共享函式库
  • /mnt -- 维护其它磁盘所用的磁盘挂入点 (mount point)
  • /usr -- 额外的工具程序与应用程序

3、如何搭建xilinx fpga的linux环境

近一段时间,一直在琢磨如何在FPGA嵌入式的情况下,嵌入一个linux操作系统,经过一段时间的测试,结合网络上的各种版本,给出自己的一个环境。

vmware:VMware-workstation-6.5.3-185404

linux:ubuntu9.10,安装后更新manage

交叉编译环境ELDK 4.2的ISO文件ppc-2008-04-01.iso(http://ftp.denx.de/pub/eldk/4.2/ppc-linux-x86/iso/)

FPGA使用的linux内核:linux-2.6-xlnx(2.6.37)

结合这些软件及环境之后,开始建立自己的fpga linux内核。

在这个过程中参考许多网页(见底部),基本设置步骤和那些网页内容大体一致,本文只是把一些建立过程中的错误列举出,并给予一些注意和见解。

搭建步骤:

1)在vmware上安装ubuntu,并升级管理器

2)安装ppc-2008-04-01.iso到/opt目录中,得到opt/eldk---搭建powerpc的交叉编译环境

3)将在网站:http://git.xilinx.com/?p=linux-2.6-xlnx.git;a=tags中下载的linux-2.6-xlnx在/opt中解压,得到/opt/linux-2.6-xlnx------搭建用于xilinx的编译器

在这个总体规划过程后,依据后文参考网页的步骤,针对上述步骤进行安装。

使用方法:

依据IEEE论文《Port Embedded Linux to XUP Virtex-II Pro Development Board》中软硬件设计流程图所示:

整个嵌入式linux需要做的是:

1)通过edk软件生成一个/implementation目录下的download.bit文件和ppc405_0目录下的.dts文件。

2)将.dts文件通过重命名拷贝到linux-2.6-xlnx环境中arch/powerpc/boot/dts,并进行命名(如virtex405-mine.dts)。

3)通过make...生成boot/simpleImage.virtex405-mine.elf,这个.elf文件,结合之前的.bit文件,即可生成ace文件,将.ace文件与通过u-boot生成的引导程序,一起下载到开发板的CF卡上,既完成了所有步骤。

注:以上只述说总体意图,具体操作见参考网页。

4、遇见的问题及措施

1)第一次是使用网站(http://www.aclevername.com/articles/linux-xilinx-tutorial/index.html)介绍Crosstool-ng 1.6.1安装,在build时始终过不去,都卡在*** buffer overflow detected ***:Build failed in step 'Installing GMP',(至今没有解决)

换成 crosstool-ng-1.3.2  后,先是出现Build failed in step 'Extracting and patching toolchain components'(解决方法就是,将遇到这个提示上面的那个压缩包重新下载个),之后遇到同上的问题。

2)使用eldk安装,过程简单,使用方便,只是在make过程中出现问题:

问题一:和网页(http://hi.baidu.com/remygo/blog/item/bc82dd2b897c9e351e3089e0.html)的第三点相同,解决方案也一样。

问题二:使用命令make 40x/virtex4_defconfig有问题:make: Nothing to be done for `40x/virtex_defconfig'.,解决方法:看看环境变量设置没有?

export ARCH=powerpc
export CROSS_COMPILE=ppc_4xx-
export PATH=/home/xilinx/eldk-4.2/usr/bin:$PATH

测试ppc_4xx-gcc看看是否显示:ppc_4xx-gcc: no input files

其次,到目录linux-2.6-xlnx下,运行make ARCH=powerpc CROSS_COMPILE=ppc_4xx- 40x/virtex_defconfig这个命令,应该就可以解决该问题。注释:ARCH=powerpc是指在当前目录下make arch/powerpc这个目录下的configs,使用ppc_4xx-编译器。

问题三:make zImage生成的文件是/boot/uimage,和我们预期的simpleImage.virtex405-mine.elf不一样,修改命令为make ARCH=powerpc CROSS_COMPILE=ppc_4xx- simpleImage.virtex405-mine,既指明了是virtex405-mine.dts这个镜像需要加入到微型linux系统中,又正确运行。

总之,在这个过程中总是出现许多错误编译结果,要一步一步分析,直到google出结果。

更多资讯敬请关注达内武汉嵌入式培训的官网!

上一篇:武汉嵌入式培训班: 一种嵌入式系统bootrom自动备份及切换技术
下一篇:武汉嵌入式培训机构:嵌入式开发之工具--TCPDUMP移植和使用

武汉嵌入式培训:嵌入式如何系统学习

RTOS核心——调度和分割

向量中断与非向量中断

选择城市和中心
贵州省

广西省

海南省