S04_CH03_QSPI烧写LINUX系统

3.1概述

3.2搭建硬件系统

本章硬件工程还是使用《S04_CH01_搭建工程移植LINUX/测试EMMC/VGA》所搭建的VIVADO工程。

3.3修改内核文件

Step1:切换到管理员模式

Step2:切换到scripts目录下,执行source setup_env.sh(注意source和“.”是一致的),并将scripts.tar.gz中的两个脚本放到scripts目录下,通过这两个脚本可以打包QSPI镜像和将QSPI镜像烧录至QSPI中。本项目是基于上一个项目工程。

Step4:切换到bootloader源码目录,打开include/configs/zynq-common.h文件

Step5:修改以下内核、设备树及内存文件系统在QSPI的起始位置如Step6所示:

Step6:QSPI的起始位置放置FSBL、FPGA比特流和uboot,文件大小大概是5MB,所以内核的存放位置从0x500000开始,而这里同样给内核留5MB,当然,如果你的内核增加更多配置或减少配置,可以适当修改,这样的话,设备树就需要从0xA00000位置开始存放,然后留给设备树的空间大概是2K,即从0xA20000开始存储文件系统,这样ramdisk的大小就应该是0x15E0000,当然,内核默认支持8MB

Step7:打开zynq-zed.dts,找到qspi节点,这里把原有的分区删掉,当然,你也可以根据刚才对QSPI的分区,做对应的修改。可以出从SD启动或从QSPI启动Linux,然后在系统里更新QSPI镜像。


3.3编译内核及uboot

Step1:执行mk_bootloader.sh编译bootloader源码

Step2:执行mk_kernel.sh编译kernel源码


3.4制作qspi镜像

Step3:制作qspi镜像,制作完毕后,可以在images/qspi_image目录下看到qspi_image.bin镜像


3.5安装screen

Step1:安装screen,可以直接在Ubuntu系统下查看串口调试信息,当然,你也可以在Windows下使用putty之类的

Step2:输入 /dev/ttyUSB0正是串口


3.6一件烧写YIJIANQSPI FLASH

接下JTAG并打开开发板电源,执行program_qspi_flash.sh将QSPI镜像烧录到QSPI芯片上,或许会出现以下错误,没关系,此时因为驱动还没有加载,重新执行一次。

3.7烧写QSPI FLASH 2

如果确实不行,那么打开SDK来烧录吧

如果是切换到su的话,可能会提示没有找到license,那么把/home/osrc/.Xilinx目录复制到/root/目录下

烧录完毕后,重启开发板,当然,请先确保调整启动模式为从QSPI启动,在Ubuntu下打开串口终端

即可以看到以下信息

在HDMI显示器上也可以看到相关信息。

S04_CH03_QSPI烧写LINUX系统的更多相关文章

  1. 【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410

    作者 : 万境绝尘 转载请著名出处 终于拿到板子了, 嵌入式开发正式开启. 板子型号 : 三星 S3C6410 基于ARM11, 指令集基于arm6指令集; 为毛不是 Cortext A9的板子; 烧 ...

  2. u-boot烧写Linux及系统整个启动过程

    一.烧写文件 u-boot: u-boot.bin linux kernel: uImage Filesystem: root.bin(yaffs) 二.烧写步骤  1.烧写u-boot tftp 0 ...

  3. 荣品RP4412开发板烧写Ubuntu系统应注意SD卡内存大些

    问:RP4412开发板用SD卡烧写光盘中的fastboot失败,现在如何补救呢? 答:INAND格式化, 利用usb来升级啊, 也有文档,看升级文档. 问: 这个是怎么回事? 答:你是升级什么系统? ...

  4. IMX6开发板学习烧写Linux-QT系统步骤做个笔记

    平台:迅为-i.MX6开发板  烧写系统:Linux-QT   <ignore_js_op>   Qt系统的烧写,是使用 MfgTool2 工具,只需要简单的配置下.   打开 “Mfgt ...

  5. 烧写树莓派系统,SSH配置,无屏登录流程

    首先去 https://downloads.raspberrypi.org/raspbian/images/ 下载需要的版本镜像 我这里下载 https://downloads.raspberrypi ...

  6. 大批量烧写openwrt系统

    http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd OEM mass flashing Flashing hundreds of devices using ...

  7. 友善之臂tiny4412-1306开发板安卓系统烧写

    折腾了很久,终于烧写成功.不废话,咱们说说流程吧. 首先,我们需要有一个基于tiny4412的kernel,从友善之臂官网获取. 然后解压: 1.tar -xvf  linux-3.5 .... 然后 ...

  8. 【嵌入式】bootloader,linux,filesystem的烧写

    平台: 深圳市优龙科技有限公司的FS2410(基于ARM9) 准备: 1.用串口(UART1,J8)线与PC机相连,这个是用来传输数据和显示信息的 2.连接USB数据下载线(usb device),注 ...

  9. nand烧写分析/内核在启动过程中式如何将这个文件映射成/目录及各子目录的?

    我用的是ramdisk.image.gz,烧写在flash的0x10140000处 我不太明白内核在启动过程中式如何将这个文件映射成/目录及各子目录的? 如果ramdisk.image.gz在flas ...

随机推荐

  1. Java学习之"Hello World"

    好像学习每个程序敲的第一个代码都是"Hello World",而学习Java也不例外,这篇博客就讲一下我学习Java的第一个程序HelloWorld.java 程序代码: publ ...

  2. Unity编辑器环境在Inspector面板中显示变量

    Serialize功能Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系. 简单的说,在没有自定义Inspector的情况下所有 ...

  3. Sqlmap全参数详解

    sqlmap全参数详解 sqlmap是在sql注入中非常常用的一款工具,由于其开源性,适合从个人到企业,从学习到实战,各领域各阶段的应用,我们还可以将它改造成我们自己独有的渗透利器.这款工具中,大大小 ...

  4. rg.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:

    原先跑TEST CASE的时候没有出错 但是跑到整个程序里面,除了这个问题, 网上也找了下资料,说是用merge之类的可以解决,因为你这个update的obj和session里面的不用,所以导致此问题 ...

  5. Java_jdbc 基础笔记之四 数据库连接 (通用更新方法)

    /** * 写一个通用的更新方法 包括 INSERT. DELETE.UPDATE * 使用工具类 * @param sql */ public void update(String sql){ Co ...

  6. 微信小程序-收货地址左滑删除

    我参照了其中的部分代码,如:bindtouchstart,bindtouchmove,bindtouchend事件多数组中偏移值的更改, 在结合微信 movable-area 和 movable-vi ...

  7. FFmpeg 参数详解(二)

    https://blog.csdn.net/yizhizouxiaqu/article/details/52233673 5.参数选项 如果没有特殊声明,所有的数字参数都以一个字符串代表数字的形式作为 ...

  8. ISO/IEC 9899:2011 条款6.6——常量表达式

    6.6 常量表达式 语法 1.constant-expression conditional-expression 描述 2.一个常量表达式可以在翻译期间被计算,而不是在运行时,并且根据情况可以被用于 ...

  9. IDEA Git 修改后的文件无法Commit

    转自:https://blog.csdn.net/moneyshi/article/details/81298861 因对IDEA使用不熟,在使用和配置GIT的时候,可能哪里配置错误,导致我一直无法使 ...

  10. 线程或进程绑定到特定的cpu

    常用的宏定义有: 1) 对cpu集进行初始化, 将其设置为空集 void CPU_ZERO(cpu_set_t *set); 2) 将指定的cpu加入到cpu集中 void CPU_SET(int c ...