windows下编译altera soc preloader过程

尝试在windows下搭建altera soc过程,基于Quartus Prime 18.1(std),soc EDS 18.1(std),可在intel官方下载:Quartus Prime and soc EDS

1 安装软件

在windows下安装Quartus Prime 18.1和soc EDS 18.1,安装完成后,会在安装路径下有个embedded文件夹,比如安装在E盘,E:\intelFPGA\18.1
在这里插入图片描述

2 生成preloader

按“win+R",输入\Embedded_Command_Shell.bat,比如E:\intelFPGA\18.1\embedded\Embedded_Command_Shell.bat,启动windows下的shell界面
在这里插入图片描述
在安装目录下新建一个专放工程的文件夹,比如myprj,将下载的atlas_linux_ghrd.tar.gz
拷到其目录下,然后,在shell指令中进入该文件夹,并解压文件
在这里插入图片描述
进入解压后的文件,并启动BSP编辑环境
在这里插入图片描述
在这里插入图片描述
In the BSP Editor window, select File→New HPS BSP… to create a new BSP project for your board’s preloader. The following window should appear.
在BSP编辑窗中,选择 File→New HPS BSP,产生一个新的BSP工程用于开发板的preloader,然后会弹出新窗口,在新窗口中,“preloader setting directory” 一栏后面的"…",找到解压目录下的soc_system_hps_0,比如
E:\intelFPGA\18.1\my_modelsim_prj\atlas_linux_ghrd\hps_isw_handoff\soc_system_hps_0,
在operating system中选择芯片类型,然后点击下在的OK,得到下面在这里插入图片描述
在这里插入图片描述

选择BOOT_FROM_SDMMC ,这样设置可以从SD卡启动i U-Boot。选择 FAT_SUPPORT 以及 FAT_BOOT_PARTITION设为 “1” ,这样会新生成的uboot.img放在分区1里面,而preloader会去分区里面找uboot.img。
点击“generate",生成BSP,然后在shell命令下切换到software\spi_bsp下,查看生成的文件,并"make"编译
此时会出现错误
在这里插入图片描述
解决方法是下载Makefile.template,替换掉原来的;并按下面的第2点修改fstab文件,然后编译可通过。

intel解决方法

  1. C:<installation_directory>\embedded\ip\altera\preloader\src\Makefile.template
    Change the current file with the attached one in this link (make sure to unzip file before you copy)
  2. C:<installation_directory>\embedded\host_tools\cygwin\etc\fstabin
    in fstab file:comment this line:
    #non /cygdrive cygdrive binary,posix=0,user 0 0
    and add this line instead:
    none /cygdrive cygdrive binary,posix=0,user,noacl 0 0

在这里插入图片描述
编译完成后,会生成preloader-mkpimage.bin,这个就是我们要烧写到SD卡的preloader文件。

这里有一篇介绍编译过程的原理分析,值得看看

猜你喜欢

转载自blog.csdn.net/guet208/article/details/109074277
soc