赞
踩
本设计使用黄金硬件参考设计 (GHRD) 和添加自定义 IP 到开发 Linux 内核驱动程序以使用自定义 IP
更多信息参考:
FPGA开发板制造商通常提供参考设计,以便用户可以快速启动并运行其板。对于英特尔Altera 主板,这些被称为黄金硬件参考设计 (GHRD)。我们将使用 GHRD 来创建我们自己的硬件设计。 这一步的主要的目的是生成rbf文件。
需要在注意的是这里的操作,需要在终端执行embedded_command_shell.sh
命令,然后按照参考文档的描述步骤依次操作,即可生成preloader相关文件。
Page not found: /components/toolchain/binaries/latest-6/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
wget https://releases.linaro.org/components/toolchain/binaries/latest-6/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
修改成
wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
tar -xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
1. 创建镜像并挂载
sudo dd if=/dev/zero of=sdcard.img bs=512M count=1
其中if=文件名,指定输入文件名;of=文件名,指定输出文件;bs指定输入输出文件大小。
sudo losetup --show -f sdcard.img
2. 创建分区
我们将使用 fdisk
创建三个分区:一个 256 MiB 的 FAT
分区、一个 ext4
类型、大小为 254 MiB 的根文件系统,以及一个 A2
类型的 1 MiB 分区(Altera 自定义)。这将留下 1 MiB 的可用空间,供主引导记录使用。
3. 创建文件系统
这一步在新建的分区上创建适当的文件系统,将之前的生成的文件复制到对应的分区位置中。按照文档步骤建立相应的分区,将对应的文件复制到对应得分区。对应的分区的文件如下所示:
分区编号 | 文件类型 | 大小 | 存储内容 |
---|---|---|---|
p1 | FAT | 256M | Zimage,u-boot.scr,soc_system.dtb,soc_system.rbf |
p2 | EX4 | 254M | rootfs |
p3 | RAW(A2) | 1M | preloader-mkpimage.bin,u-boot.img |
首先将u-boot SPL复制到编号为3的A2分区
sudo dd if=software/spl_bsp/preloader-mkpimage.bin of=/dev/loop0p3 bs=64k seek=0
同时需要把u-boot.img也拷贝到A2分区,负责会导致SPL无法读取u-boot.img而重复引导
sudo dd if=u-boot.img of=/dev/loop0p3 bs=64k seek=4
sudo mkfs -t vfat /dev/loop0p1
sudo mkfs.ext4 /dev/loop0p2
这里可以用编译u-boot相同的工具链,设置好相应的环境变量即可。
这里我们使用的4.11版本的内核,切换分支到4.11内核。
make ARCH=arm socfpga_defconfig
make ARCH=arm menuconfig
完成对应修改后保存配置文件
根据指南,我们使用buildroot工具创建根文件系统和必要的系统应用程序。
分区编号 | 文件类型 | 大小 | 存储内容 |
---|---|---|---|
p1 | FAT | 256M | Zimage,u-boot.scr,soc_system.dtb,soc_system.rbf |
p2 | EX4 | 254M | rootfs |
p3 | RAW(A2) | 1M | preloader-mkpimage.bin,u-boot.img |
根据表格,我们继续完善我的sdcard.img,把根文件解压到对应的分区的挂载点下:
sudo tar -xvf buildroot/output/image/rootfs.tar -C <mount point of the 254MB ext4 partition>
再把生成的Linux内核镜像复制到的FAT分区所挂载的位置:
sudo cp linux_socfpga/arch/arm/boot/zImage <mount point of the 256MB FAT partition>
至此Linux系统搭建完成,可以上板测试,通过串口调试工具控制和显示信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。