本文旨在介绍友晶(Terasic)开发板 Linux 镜像的烧写与开机验证流程,覆盖 Windows 和 Ubuntu 两种操作系统环境。所述方法适用于所有 Altera SoC FPGA 开发板。
下文将以友晶 DE25‑Nano 开发板为例进行全程实操演示。一、准备工作
1.准备一个Linux镜像文件。可以是自己设计的镜像,也可从友晶官网下镜像https://dl2.terasic.com/resources/de25-nano/de25_nano_sdcard_console_v1.1.zip。
2.准备一张Micro SD卡和一个SD卡读卡器。(如果是DE25-Nano等板子的镜像,需准备一张8GB以上的SD卡,如果是DE10-Nano开发板,需准备一张4GB以上的SD卡)
二、操作演示
1.linux系统上的操作:
将读卡器插入Ubuntu主机,输入命令lsblk查看SD卡名称:
输入 sudo umount /dev/sdb*
输入命令进行烧写:pv -tpreb sdcard.img | sudo dd of=/dev/sdb bs=1M
如上图第一次用pv -tpreb sdcard.img | sudo dd of=/dev/sdb bs=1M命令写的image 启动时卡住:
第二次写的image启动就可以成功boot起来,差别是速度不一样,前面的速度快些。
其实原因就是linux系统写入缓存机制导致的。dd命令默认将数据先写入系统内存中的缓存(Buffer/Cache),而非直接写入SD卡,所以 dd命令显示的“完成”并不等于数据真正写入了SD卡。可以在dd命令显示完成后执行命令sync,sync命令会强制系统将所有缓存的待写数据全部刷入存储设备。务必等到sync命令执行完毕并返回提示符后,才能安全地卸载并拔出SD卡。
2.Windows系统上的操作:
Win32DiskImager.exe是一款在Windows系统上用于读写SD卡的免费开源工具。将插上SD卡的读卡器插入到Windows PC上。双击Win32DiskImager.exe然后按照下图操作:Win32DiskImager.exe工具的烧写过程需要一段时间,请耐心等待,烧写成功会有提示。
三、上板验证
DE25-Nano开发板的MSEL[2:0]设置为001,给开发板接上串口线,用命令putty -fn 'Monospace 10' 打开putty终端,进行如下设置,最后点击Open:如若不知道串口设备名称,可使用ls /dev/ttyUSB*查看开发板对应的串口设备号。这里/dev/ttyUSB0是HPS端串口,/dev/ttyUSB1是FPGA端串口。填入正确的设备名(如COM5)和波特率(通常为115200),点击Open即可建立串口连接:点击Open以后,给开发板上电,可以看到串口打印Image启动的信息:Windows系统下设备端口号是多少可以通过设备管理器查看得到。右击开始菜单,找到设备管理器。在设备管理器找到DE25-Nano的串口号在当前电脑上的编号是COM5(COM6 则对应FPGA 端的串口): -END-