📁
loongsoncsprj2020-manual
  • 1. 简介
  • 1.1龙芯实验箱介绍
  • 1.2实验箱测试流程
  • 2. 基于FPGA的MIPS32SCPU实现
    • 2.1 Vivado开发环境
      • 2.1.1 Vivado环境的安装
      • 2.1.2 Vivado的基本使用
      • 2.1.3 Vivado和实验板的连接
    • 2.2 基于soc_up的移植过程
      • 2.2.1 Flash的烧录
      • 2.2.2 FPGA固化方法
      • 2.2.3 串口工具的使用
      • 2.2.4 TFTP服务器的搭建及使用
      • 2.2.5 Liunx内核的移植过程
    • 2.3 ROM的初始化
      • 2.3.1 ROM的初始化过程
      • 2.3.2 测试程序编译流程
    • 2.4 基于NaiveMIPS的移植过程
      • 2.4.1 NavieMIPS的综合运行
      • 2.4.2 supervisor的启动过程
      • 2.4.3 U-Boot的启动过程
      • 2.4.4 ucore的启动过程
    • 2.5 ILA的使用方法
  • 3. MIPS32S CPU上的ucore教学操作系统
    • 3.1 make 命令的使用
    • 3.2 交叉工具链介绍
    • 3.3 交叉编译环境的配置
    • 3.4 U-Boot的移植过程
    • 3.5 QEMU介绍
    • 3.6 ucore编译方法
    • 3.7 龙芯编译环境配置
    • 3.8 对supervisor交互程序term.py的修改
  • 4. MIPS32S上的C0编译器实验
  • 系统集成
Powered by GitBook
On this page
  • 1. 运行PMON
  • 2. 运行操作系统

Was this helpful?

  1. 2. 基于FPGA的MIPS32SCPU实现
  2. 2.2 基于soc_up的移植过程

2.2.5 Liunx内核的移植过程

Previous2.2.4 TFTP服务器的搭建及使用Next2.3 ROM的初始化

Last updated 5 years ago

Was this helpful?

本节以Linux内核为例介绍基于soc_up的操作系统的运行

1. 运行PMON

下载soc_up的bit流至FPGA后,连接上串口,打开串口软件,设置波特率为57600,则可以在串口窗口中看到 PMON 运行信息,运行成功后 则会进入 PMON 提示符,此时可以输入 PMON 命令(具体命令见下面)。

2. 运行操作系统

将编译好的操作系统文件由网口下载至FPGA上的 DDR3 内存上,Linux内核为 目录 FPGA_test_v1.00\FPGA_soc_test 下的vmlinux。

2.1 最初的内核需要使用网口 加载进入内存执行,因而需要先搭建 Tftp 服务器(具体方法见2.2.4 TFPT服务器的搭建)。

2.2 输入PMON命令ifconfig dmfe0 10.90.50.44则可以给开发板上的网卡配置 IP 为 10.90.50.44(具体需配置的 IP 请查阅同网段的电脑 IP)

2.3 在Ubuntu下的terminal输入如下命令查看主机网卡配置

sudo ip addr

得到网卡配置后,输入如下命令,可以配置主机IP(具体方法参考Ubuntu ip 命令手册)

sudo ip addr add 10.90.50.43/24 dev enpS0

/24 代表CIDR,dev enpS0 是指定配置网卡

配置完成后,可以 输入命令 ping 10.90.50.43 用于查看网络是否成功接入。

Linux 在 ping 网络是会一直发 ping 包,可以 Ctrl+C 取消 ping。运行结果如下(红色部分为自己输入的指令):

假设搭建的 tftp 服务器 IP 为 10.90.50.43,将要下载 Linux 内核(vmlinux,已包含在 lab3 实验包中)放到 tftp 服务器的根目录下,输入PMON 命令load tftp://10.90.50.43/vmlinux即可 load 内核进入 FPGA 上的内存。

输入命令 g console=ttyS0,115200 rdinit=sbin/init即可运行该内核,

命令中 115200,即为串口控制器设置的波特率,设置不对时,串口显示字符为乱码。Linux 内核运行时 波特率为 115200。

当运行 Linux 内核成功后,会出现“Godson2@[~]>”提示符,可以使用常用的 Linux 命令,如上表。