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

移植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
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

Copy the contents of this directory to an SD card
Set boot mode to SD
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

注(2018.1.15更新博文):可以通过cd ../..到达系统目录,找到mnt文件夹,该文件夹已经自动挂载到了SD卡,进入mnt文件夹就可以看到SD的文件了

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

本文转载自:long_fly