翻译原文来自:https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide
本指南将一路带着您完成从Altera SoC的自定义设计到闪亮的新的嵌入式Linux设备的设计。
不管您当前的SOC FPGA 的技能水平如何(哪怕是对Intel SoC的linux嵌入式一点不熟悉,或是对一般的linux嵌入式不熟悉),都可以参考我们这个指南,因为我们在描述流程的每个步骤时都有给出详细的解释,对于那些需要额外说明的部分,我们也给出了跳转的link供您拓展相关知识。
先决条件
- 本实验室将使用 DE0-Nano-Soc (又名Atlas)开发套件。其实我们这个指南的大部分流程也可适用于任何Intel SoC产品。开发板之间的主要区别在于 GHRD(LED 数量、引脚分配等)和设备树。当您设计这些部分时,需要对其进行修改(其实有些开发板制造商比如友晶科技TERASIC会随板提供自定义 GHRD 和设备树及 XML 文件)。
- 要有Quartus/Qsys 的基本使用经验以及知道如何使用 Linux
- 一张空白的 microSD 卡和 microSD 卡 USB接口读卡器(或支持 microSD 卡的笔记本电脑)。
- 具有两个 USB 端口和 sudo 功能(以支持这些命令mount、umount、fdisk、losetup、partprobe 和 dd)的 Linux PC
- 所需的 Intel 软件(Quartus 和SoC EDS)。您不需要安装 DS-5:我们将手动编写我们的 makefile。本指南使用软件 v15.0 完成
- 保证您可访问GitHub:https://rocketboards.org/foswiki/Documentation/GitHub
- 一个终端模拟器程序
指南内容
1. 硬件(Quartus/Qsys)设计概述
2. 核心概念和启动流程
3. 生成preloader
4. 配置和编译 U-Boot
5. 生成并编译设备树
6.先创建一张 SD 卡并测试设计
7. 配置和编译 Linux 内核
8. 生成根文件系统
9. 测试最终的硬件系统
10. 创建用户空间软件应用程序
11. 创建内核空间设备驱动程序
如果您一时还不能理解上面所用到的像设备树、U-Boot等这些名词也不要担心,后面在用到的时候我们都会给予解释。
在 DE0-Nano-SOCBoard 上设置 MSEL 开关
这个很重要!如果您没有正确设置这些,FPGA 将不会被配置!
为了能够从处理器对 FPGA 进行编程(这通常是SoC上的嵌入式 Linux 系统的工作方式),MSEL 开关需要全部置于“ON”(也称为 0)位置。这将告诉处理器以“快速被动并行 x16”模式对 FPGA 进行编程,如 Atlas 用户手册(第 13 页)中所述。这与用于生成 .rbf 文件的模式相同(在下一节末尾描述)。.rbf 文件是用于配置 FPGA 的原始二进制文件比特流。
如果模式不匹配,引导加载程序将抛出错误,然后继续引导 Linux(这很可能会一直引导,使用户忘记他们的 FPGA 从未被编程的
事实)。如果您创建一个压缩的 .rbf 文件(或使用从 GHRD 提供给您的文件,这些文件通常是压缩的),您需要将 MSEL 开关更
改为“ON-OFF-ON-OFF-ON-ON”。