ZYNQ跑系统 系列(三) SDsoc方式移植linux

来源:互联网 发布:数字油画淘宝 编辑:程序博客网 时间:2024/06/05 10:26

移植linux之SDsoc

想让ZYNQ上跑个linux系统,除了之前的两篇文章中的传统方式和petalinux方式外,还有一种更简单快捷的SDsoc,xilinx的SDx系列开发工具主要是面向软件开发人员和系统工程师,加快应用的开发,让软件开发者加入到项目中,SDsoc侧重的是对软件算法进行加速,本文仅仅是使用该工具生成一个linux环境下的helloworld应用

SDsoc可以直接运行在Windows环境下,不需要搭建linux开发环境,一键生成SD卡的启动文件,可以说是很省心了

一、准备工作

  • 1.下载SDsoc的预安装程序
    这里没有去下载全安装包,因为太大了,30多个G,而是选择了可以根据自己的需要,去定制要下载的安装包的预安装程序
    SDsoc的安装程序建议去官网下载,也可以从这里直接下载

  • 2.打开安装程序,选择自己需要安装的东西,越少越好

  • 3.继续,等待下载和安装

  • 4.安装完成后要去下载一个SDsoc的lic
    这个lic只能自己去官网生成并下载了,这个是根据自己的MAC物理地址生成的对应相应主机的lic,所以分享出来也是没有用的,可以免费申请60天试用,申请的次数好像没有限制

  • 5.通过lic管理器,激活SDsoc

二、创建工程

SDsoc创建工程是特别简单的,如果试过之前两种移植linux的方式,再看这个方式,会被惊艳到的

  • 1.选择工作空间,创建工程,工程名h1_test

  • 2.这里选择相应型号
    这里写图片描述

  • 3.选择linux系统环境
    文件系统不勾选,使用它自己生成的文件系统
    这里写图片描述

  • 4.建立一个空应用

  • 5.在项目视图中右击src,添加一个helloworld.c的文件

#include <stdio.h>int main(){    printf("Hello World\n");    return 0;}
  • 6.直接build,因为默认会输出SD卡的文件
    这里写图片描述
    经过一分钟左右的样子,就编译完成了

  • 7.拷贝文件进SD卡
    工程文件夹—>Debug文件夹—>sd_card文件夹
    sd_card文件夹下的所有文件都拷贝到SD卡中
    <所有所需的文件都在一分钟之内全部生成完毕了>
    这里写图片描述
    README.txt:

    -= SD card boot image =-

    Platform: zybo
    Application: h1_test.elf

    1. Copy the contents of this directory to an SD card
    2. Set boot mode to SD
    3. Insert SD card and turn board on
  • 8.上电启动
    打开putty软件,上电启动,可以看到linux系统正常启动,接下来就是去找到并运行我们的h1_test.elf文件
    这里写图片描述

  • 9.找到并运行我们的h1_test.elf文件
    由于文件系统和elf应用程序是分开的,所以在文件系统内是不能直接找到h1_test.elf文件的,需要挂载SD卡到文件系统中进行操作

    • 首先在root目录下,新建一个device文件夹,用于映射出SD卡
      root@zybo:~# mkdir device

    • 将SD卡(mmcblk0)的p1分区,挂载到root下的device文件夹下,这样就能从device文件夹下操作SD的文件(helloworld.elf)了
      mount /dev/mmcblk0p1 device

    • 进入device文件夹,并浏览内容
      root@zybo:~# cd device/
      root@zybo:~/device# ls
      BOOT.BIN h1_test.elf README.txt image.ub sds_trace_data.dat _sds

    • 运行h1_test.elf应用程序
      root@zybo:~/device# ./h1_test.elf
      Hello World

    • 解除挂载(首先回到root目录,然后卸载)
      root@zybo:~/device# cd ..
      root@zybo:~# umount /dev/mmcblk0p1

目前来说,这个linux下的helloworld,是做起来最省心的了,相对于前两种方法,之后再考虑如何自动执行helloworld

阅读全文
0 0