首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux在Xilinx FPGA上的移植(3)

Linux在Xilinx FPGA上的移植(3)

4. 3 制作根文件系统
根文件系统是L inux系统不可或缺的组件, 用于控制对数据文件及设备的存取, 提供对文件和目录的分层组织形式、数据缓存及对文件存取权限的控制。根文件系统一般包括以下目录: /dev设备文件目录, / lib共享函数库目录, /proc 内核情况的映射虚目录, /mnt其他磁盘系统挂接点, /etc系统配置文件存放目录, /boot引导加载程序所使用的静态文件, /sb in 系统程序目录, /b in 基本应用程序目录, /usr其他工具以及用户程序的存放处。根文件系统根据系统具体的需要有不同的类型, 如RAM disk根文件系统, JFFS2根文件系统, TMPFS根文件系统等。本系统中采用的是RAM disk根文件系统,下面详细介绍该文件系统的构建过程。

RAM disk根文件系统的制作首先是定义RAM大小及支持的文件系统格式, 如图6所示, 并将该系统加载到定义好的RAM disk 中。根文件系统由目录树、库函数及系统程序和基本的应用程序等组成,构建它时首先创建dev、proc、bin、sbin、etc、lib 等目录, 接着将目录里所需文件移植进该文件系统中。Kingauf详细介绍了根文件系统的制作, 并且编写了mkrootfs. sh脚本文件, 为简化起见, 我们通过修改并运行mkrootfs. sh脚本文件制作根文件系统。制作过程中需要注意的是Kingauf制作的脚本文件中没有包含设备文件, 因此设备文件需要另行添加。根文件系统制作完成后, 将它拷贝到定义好的RAM disk中, 经压缩后放置在内核对应的文件夹中, 此时RAM disk根文件系统就制作完成了。
根文件系统的检测也是利用XMD工具完成的。在Linux操作系统下使用make zImage. in itrd命令重新编译内核, 该命令将文件系统信息包含在内核文件中。把生成的内核文件zImage. in itrd elf拷贝到工程文件夹下。在XMD界面下, 输入命令dow zImage. in itrd. el,f 将包含文件系统信息的内核文件下载到开发板中, 待串口输出-# . 时, 表示内核文件下载成功, 此时可以通过输入命令如cd, find等, 来检测根文件系统, 如图7所示。

4. 4 生成ACE文件及CF卡分区
使用XMD工具可以方便的对内核文件、根文件系统及程序源代码进行检测, 但在具体的应用中, 操作系统等都应该是自行引导的, 而并非手动加载, 实际中有很多方法可以解决这一问题, 可以通过构建bootloader引导程序, 也可以通过CF卡直接引导。本系统采用了第二种方法, 它的制作过程需要注意两个方面, 即生成ACE格式文件和对CF卡分区并对其进行格式化, 下面分别对这两个方面进行介绍。
适合开发板m B00的ACE 格式文件是在Cyg2 win shell中成功运行图8中的程序代码而产生的。

为了最大限度的模拟正常的Linux, 我们将CF卡分为/boot分区, /swap分区和/根分区, 具体的分区过程是利用函数fdisk来完成的。系统设计中使用的是2G的CF 卡, 分区后的效果为/boot分区大小为32MB, 分区类型为FAT16, 用于存放system.ace文件; /swap分区大小为256MB, 类型属于L inux Swap( 82 ); 其余空间分配给/根分区, 其类型为Linux( 83), 用于存放根文件系统。格式化/boot分区时运行的命令是mkdosfs ) s 64 ) F 16 ) R 1 F: ,将该分区格式化为dos文件系统; 格式化/swap分区时运行的命令为mkswap /dev/hde2, 将该区格式化为swap文件系统; 格式化/根分区运行的命令是mke2fs /dev/hde3, 将该分区格式化为ext2 文件类型。CF卡格式化完成后, 将制作好的ACE 文件sys2 tem. ace拷贝到CF卡中, 同时将开发板上的启动路径选为从CF卡启动, 打开开发板电源后, 本地引导Linux并载入运行, 在串口上看到提示符-# . 后, 移植成功。
5 具体应用及结论
为了检测及充分利用定制的操作系统, 发挥PowerPC硬核的优势, 验证SOPC 技术结合FPGA实现信号处理设计的可行性, 系统中我们编写了简单的设备驱动程序, 实现操作系统与硬件外设及FPGA中IP的通信, 并编写应用程序代码点亮了目标板上的灯。从而验证了操作系统可以正常工作并能完成预期的任务, 同时验证了SOPC 技术、操作系统与FPGA完美结合来完成信号处理任务的可能性。
本系统中实现了在PowerPC中定制特定的硬件系统, 编译交叉环境, 最终将L inux操作系统下载到PowerPC中, 从而实现了嵌入式系统, Linux操作系统与FPGA的结合, 为完成信号处理任务提供了一种新的方法。在今后的研究工作中, 可以在PowerPC中嵌入基于复杂应用的IP核, 如FFT、FIR 等处理模块, 结合Linux操作系统的特点, 完成大型系统的构建, 提高系统的可移植性, 方便后续的开发。
继承事业,薪火相传
返回列表