在SoCEDS环境下编译和更新preloader和uboot程序的方法
 
前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloader和uboot程序!以及如何去更新BOOT SD卡中的preloader和uboot!
从Terasic网站下下载的SD image是在13.1环境下编译出来的preloader和u-boot,这里会在14.0环境下重新编译并更新到SD卡中!并在inux系统下更新preloader和u-boot到SD卡中。(嵌入式linux 开发的还是需要一台linux 机器的,不管是虚拟机还是单独的linux系统机器!特别的在Compile linux kernel的时候)使用Quartus 14.0打开DE1_SoC_ghrd工程,进入Qsys打开HPS器件。相对于13.0主要变化是有了HPS Clocks窗口分为了Input Clocks 和Output Clocks!对比如下图:
 
Quartus 13.0 HPS Clocks窗口
                     
Quartus 14.0 HPS Clocks窗口
14.0软件中Cyclone V 器件MPU 默认时钟为925Mhz,而13.1版为800M。这里编译不改变MPU的Clock,所以去掉usedefault MPU clock frequency选项!不用改其他的选项,Clock即为800MHz。重新generate 关闭就好了。使用Quarut编译编译完成后会有hps_isw_handoff中的文件会更新,这些文件时连接HPS硬件配置与preloaderr软 件接口文件。
打开14.0中的command shell把工作目录转换到ghrd中,使用make -j8 sof开始编译硬件。(-j8 选项可以不带,只是为了多打开几个线程编译比较快,但是需要四核的CPU支持)。
使用bsp-editor.exe打开bsp-editor工具,选择file->New BSP。把Preloader settingdirectory指定为ghrd中的hps_isw_handoff/soc_system_hps_0。点击OK关闭。再点击Geneate生成BSP后exit BSP Editor。此时应该可以在GHRD中看到software目录了。接下来需要注意的是要把GHRD中的makefile用\embedded\examples\hardware\cv_soc_devkit_ghrd的Makefile换掉(13.0下编译不用替换)。然后使用 make uboot 命令会把preloader 和uboot文件都编译出来。如果只需要编译preloader,就使用make prelaoder好了。过程比较漫长,这里会重新编译一遍硬件工程。
编译完成后在software\preloader\uboot-socfpga 目录下会找到u-boot.img文件,在software\preloader\uboot-socfpga\spl下会找到u-boot- spi.bin。为了方便,在GHRD下建立目录preloader,把这两个文件复制到该目录!
u-boot-spi.bin为binary格式的文件,按照Altera的要求要按照特定格式添加文件头!需要使用到的工具为mkpimage工具。切 换工具目录为刚刚建立的preloader目录,使用命令mkpimage -o preloader_de1_soc.img u-boot-spl.bin 。此时文件夹下会产生一个preloader_de1_soc.img。 可以用于更新SD image中的preloader。

———————————————————————————————————————————————————
在更新之前,还是先说SoCEDS14.0中的一个工具alt-boot-disk-util.exe。在Command Shell 中输入这个名称就可以看见使用方法。
#Wirte BOOTLoader and PREloader to disk driver 'E'
  alt-boot-disk-util -p preloaer -b bootloader -a write -d E
我的SD Card 被识别为I盘,所以我使用的命令为:
alt-boot-disk-util -p preloaer_de1_soc.img -b u-boot.img -a write -d I
不给我目前使用都会遇到device open error的错误。不知道是环境问题还是其他原因。所以还是在Linux 系统下去更新preloader。
————————————————————————————————————————————————————

(个人使用的ubuntu linux 机器,其他版本应该类似)
把两份文件复制到linux 机器上,并挂载启动SD card。使用fisk -l 查看SD card 对应的节点编号。比如我的SD card 为8G,会看到这样的一条信息:Disk /dev/sdb: 7948 MB, 7948206080 bytes 。说明这个节点为 /dev/sdb。
linux 工作目录切换到preloader放置的地方后。分别使用下面两条命令更新preloader和 uboot。

  1. sudo  dd if=preloader_de1_soc.img of=/dev/sdb3 bs=64k seek=0
  2. sudo  dd if=u-boot.img of=/dev/sdb3 bs=64k seek=4

复制代码

再使用下sudo sync 命令就可以弹出SDcard 了。
使用这张SD boot,你会发现打印出Clock 相关的信息。这个是14.0中添加的打印。另外注意到时间戳应该与编译时间对应

更新Preloader和uboot的更多相关文章

  1. 在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法   前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloade ...

  2. 更新Preloader与uboot

    1.用bsp-editor 产生Preloader 参考https://rocketboards.org/foswiki/Documentation/AVGSRD160Preloader 根据QSYS ...

  3. 在XC2440上实现使用U盘自动更新系统的uboot

    转:http://blog.chinaunix.net/uid-22030783-id-3347599.html 此版本uboot在XC2440_uboot_V1.3版本上修改得来,是为我们的一个大客 ...

  4. altera soc体验之旅 FPGA与ARM的窃窃私语

      喜大普奔,公司要评估用SOC做产品,我就自然而然的被安排了学习和评估的工作,于是,每天的工作就是开始研究soc了.其实,只要能静下心来学习,一切都还是能够弄出来的. 以前像个无头苍蝇一样到处乱撞, ...

  5. u-boot-2015.04 在tq2440上的移植(使用spl引导u-boot)

    本次移植跟以往的不同之处是采用了spl来引导u-boot,参考了博客http://blog.csdn.net/fulinus/article/details/42738641 下载链接:http:// ...

  6. [uboot]E9-i.MX6Q-uboot移植

      参照:http://blog.csdn.net/girlkoo/article/details/45420977 文档参照: <i.MX BSP Porting Guide-2015/12, ...

  7. 2014-10 u-boot make过程分析

    /** ****************************************************************************** * @author    Maox ...

  8. 用SD卡下载uboot、linux内核和文件系统

    1. 移植mtd-utils: a) 下载utd-utils 下载地址为ftp://ftp.infradead.org/pub/mtd-utils/b) 交叉编译mtd-utilsi   修改Make ...

  9. HPS基本概念及其设计

    DE1-SOC开发版上的FPGA在一个基于ARM的用户定制系统(SOC)中集成了分立处理器(HPS).FPGA和数字信号处理(DSP)功能.HPS是基于ARM cortex-A9双核处理器,具有丰富的 ...

随机推荐

  1. windows下自制动画层引擎 - 放两个demo

    一年前想写一个像cocoa那样,可以方便层动画开发的引擎,写着写着又逆向它的QuartzCore.framework,也就是CoreAnimation的底层,已经大半年没有搞windows这个引擎.大 ...

  2. RALM: 实时 Look-alike 算法在微信看一看中的应用

    嘉宾:刘雨丹 腾讯 高级研究员 整理:Jane Zhang 来源:DataFunTalk 出品:DataFun 注:欢迎关注DataFunTalk同名公众号,收看第一手原创技术文章. 导读:本次分享是 ...

  3. 解决FirewallD is not running问题

    centos7 1.查看firewalld状态:systemctl status firewalld,如果是dead状态,即防火墙未开启. 2.开启防火墙systemctl start firewal ...

  4. Mac安装和卸载Mysql

    目录 一.安装 二.环境变量 2.1 MySQL服务的启停和状态的查看 三.启动 四.初始化设置 4.1 退出sql界面 五.配置 5.1 检测修改结果 一.安装 第一步:打开网址,https://w ...

  5. 关闭zabbix 告警

    1. 到触发器配置界面开启Allow manual close. (可能需要在连接的模板处修改) 2. 永久关闭告警,即disable该触发器.

  6. 【论文阅读】The Contextual Loss for Image Transformationwith Non-Aligned Data(ECCV2018 oral)

    目录: 相关链接 方法亮点 相关工作 方法细节 实验结果 总结与收获 相关链接 论文:https://arxiv.org/abs/1803.02077 代码:https://github.com/ro ...

  7. python3 pip报错 TypeError: 'module' object is not callable

    使用命令:python -m pip install xx即可,需要在pip前加python -m

  8. c# 基于DataTable的Compute方法的扩展

    DataTable.Compute(String, String) 方法 定义 命名空间:System.Data 程序集:System.Data.dll, netstandard.dll, Syste ...

  9. cesium定义线面

    面: var polygon = viewer.entities.add({ polygon : { hierarchy : { positions : null, holes : [{ positi ...

  10. 安装iris框架

    1.导语 目前Go语言已经为大多数人所熟知,越来越多的开发人员选择使用Go语言来进行开发,但是如何使用 Go来进行web开发,在其他编程语言中都有对应的开发框架,当然在Go中也有,就是即将要介绍的-- ...