-
ZYNQ的Linux开发--使用SDK生成设备树
2017-07-14 15:24:39Linux ubuntu Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下 Step2:配置SDK开发环境,Xilinx ...开发环境:
Windows下的Vivado套件
Linux ubuntu
Step1:首先从Xilinx GitHub上下载Device Tree Generator(设备树生成器)的BSP https://github.com/Xilinx/device-tree-xlnx/pulls 并将其复制到SDK的安装目录下
Step2:配置SDK开发环境,Xilinx Tools->Repositories,在Local Repositories 中点击New,将在github中下载的文件夹路径添加进去。
Step3:使用Device Tree Generator生成设备树
File->New->Board Support Package
在Board Support Package OS中选择device_tree 点击Finish进入BSP的设置,按照自己板子的设定将内核启动参数填写
填写完后点击OK在SDK目录下会看到生成的设备树文件夹。如图
以上步骤均是在windows系统下执行将所有文件复制到Linux系统下使用dtc生成设备树文件即完成。如下图,SDK生成的设备树文件夹为device_tree_bsp_4 我将dts文件重命名为xilinx.dts,这个可以在修改设备树传递内核参数的时候修改。
命令执行完后可以看到在linux-xlnx目录下生成了devicetree.dtb文件。 -
ZYNQ的Linux开发--使用SDK生成设备树Vivado SDK下生成DTS
2019-06-19 09:56:50参考Xilinx Wiki上的一篇教程http://www.wiki.xilinx.com/Build+Device+Tree+Blob,我们可以轻松创建需要的设备树。 首先下载device tree generator,安装到SDK 直接下载压缩文件:...参考Xilinx Wiki上的一篇教程http://www.wiki.xilinx.com/Build+Device+Tree+Blob,我们可以轻松创建需要的设备树。
首先下载device tree generator,安装到SDK
直接下载压缩文件:
https://github.com/Xilinx/device-tree-xlnx/releases将解压的device-tree-xlnx文件夹拷贝到xilinx安装目录下的SDK\2017.4\data\embeddedsw\devicetree\bsp文件下,并重命名为device-tree-xlnx_v2017_4。
在SDK中操作点击菜单: Xilinx Tools > Repositories
在Local Repositories中添加我们刚才的SDK\2017.4\data\embeddedsw\devicetree\bsp\device-tree-xlnx_v2017_4
路径并点击OK。点击菜单File > New > Board Support Package
如果前面没有配置正确,出现的对话框的Board Support Package OS部分就只有standalone而没有device-tree选项,这时候需要重头检查自己的配置,最好检查前面文件的路径是否有空格,还有推荐用管理员权限打开SDK,当然最重要的是检查文件是否完全按照规则放置和命名(此处有惨痛教训)。配置启动参数(定义串行终端和系统镜像位置等)和标准输出:
console=ttyPS0,115200 root=/dev/ram rw initrd=0x800000,8M earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
可以看出,操作系统镜像在ram中,并从0x80000启动,ramdisk大小为8M(因为我们后面制作的根文件系统是8M大小)等。注意里面的“initrd=0x800000,8M”不能漏掉,否则启动linux时会出现如下错误并卡死。
(启动参数配置参考的digilent-zed.dts中的bootargs一行。我们在devicetree中配置的chosen启动参数会覆盖掉linux内核中默认配置的digilent_zed_defconfig中的CONFIG_COMDLINE。)配置Console_device选择ps7_uart_1
可以看出,我们使用串口ttyPS0(不是ttyS0)作为终端并配置波特率为115200。配置kernel version,选择需要生成的匹配合适版本的kernel的DTS。
这里我们选择2017.4,和SDK保持一致。配置main_memory,选择主运行内存。
这里我们选择ps7_ddr_0。然后点击”OK”生成设备树文件。
注意:
如果下载的device-tree generator版本和kernel版本不匹配可能会出现错误,要下载匹配的版本进行替换。例如kernel使用2017.4版本,那么DTG也应使用2017.4版本。
如果在运行时提到一个启动错误,则是由于devicetree文件中默认生成的compatible不一致产生的,将文件中的zynq-7000改成zynq-zed即可。另外,如果不想挂载RAMDISK,而是想把SD卡的第二分区作为根文件系统挂载,那么要修改bootargs。
输入下面参数:
console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
console:指定控制台的设备以及波特了
root:指定挂载的根文件系统,这里是/dev/mmcblk0p2,当时在创建linaro的sd卡镜像时会特别提示需要在SD卡中创建两个分区,第一个分区是FAT文件系统,存放内核,设备树,BOOT.bin等,而第二个就是存放Linaro根文件系统了,这里也就是对应的mmcblk0p2设备。
rootfstype:制定跟文件系统的类型,这里是ext4
rw:rw参数告诉内核以读写方式加载根文件系统。
earlyprintk:在console设备注册前(也就是printk注册之前)提供对打印函数的支持,这个之前就可以使用early_printk()函数来代替printk()函数
rootwait:让内核等待所有设备都被初始化完成后,再去执行root文件系统的挂载工作。这样可以避免根文件系统驱动初始化成功之前就挂载根文件系统 -
领航者ZYNQ之Linux开发指南_V1.1.pdf
2019-12-16 16:44:49《领航者ZYNQ之Linux开发指南》,非常详实的zynq的linux开发资料,希望对你的工作学习有所帮助。 -
领航者ZYNQ之Linux开发指南_V1.2.pdf
2020-05-10 17:12:28领航者ZYNQ之Linux开发指南 V1.2 本书我们讲解Linux,而Linux开发可以分为底层驱动开发和应用开发,本书以领航者ZYNQ为硬件平台,从实现到驱动,从底层到应用的讲解linux开发。 -
3_领航者ZYNQ之Linux开发指南_V1.5.1.pdf
2020-11-11 11:12:49《领航者ZYNQ之Linux开发指南_V1.5.1.pdf》非常好的资料,值得拥有,希望对你的工作学习有所帮助。 -
Zynq在Linux下的开发
2018-07-02 11:15:42Zynq在Linux下的开发转载2017-03-28 20:26:45转自:http://blog.sina.com.cn/s/blog_b35897360102x5lu.html注:在此介绍Zynq Linux开发所步骤,不涉及具体操作,只针对一些基本概念1.设置交叉编译工具 交叉编译通俗...Zynq在Linux下的开发
转载2017-03-28 20:26:45转自:http://blog.sina.com.cn/s/blog_b35897360102x5lu.html
注:在此介绍Zynq Linux开发所步骤,不涉及具体操作,只针对一些基本概念
1.设置交叉编译工具
交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上,比如在 PC 平台(X86 CPU)上编译出能运行在 ARM 为内核 CPU 平台上的程序,编译得到的程序在 X86 CPU平台上是不能运行的,必须放到 ARM CPU 平台上才能运行,当然两个平台用的都是 Linux系统。这种方法在异平台移植和嵌入式开发时非常普遍。相对与交叉编译,平常做的编译叫本地编译,也就是在当前平台编译,编译得到的程序也是在本地执行。用来编译这种跨平台程序的编译器就叫交叉编译器,相对来说,用来做本地编译的工具就叫本地编译器。所以要生成在目标板上运行的程序,必须要用交叉编译工具链来完成。
zynq中的交叉编译工具链为arm-xilinx-linux-gnueabi-
2.编译 Bootloader
解压并且编译U-boot源码,此环节的目标文件为 u-boot.elf
Bootloader,引导加载程序,是系统加电后运行的第一段代码。在zynq实现Linux启动所需要boot.bin中文件为(FSBL.elf + PL部分的.bit + uboot.elf)
3.编译Linux内核
解压内核源码,进行编译;此环节目标文件为在zImage(压缩的Image)和DTB文件(Device Tree Blob,是U-Boot用来传递参数给Linux内核参数的一种文件形式);
4.制作文件系统
在Linux操作系统中,一切都是文件,我们可以通过统一的接口来访问包括文件在内的所有数据。Linux启动时,第一个必须挂载的是根文件系统,之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。
在现代 Linux 操作系统中,内核代码映像文件保存在根文件系统中。系统引导启动程序会从这个根文件系统设备上把内核执行代码加载到内存中去运行。
5.启动Linux系统
对于SD卡启动,若文件系统为Linaro,需要将linaro相关文件放到SD卡的EXT分区中,若文件系统为ramdisk,则将ramdisk相关文件放到SD卡的FAT格式分区;至于上文中提到的boot.bin ,内核映像zImage,设备树这三个文件放置于FAT格式分区。
6.运行应用程序
在这里提到的应用程序指的是存放在文件系统中的,运行在嵌入式Linux上的应用程序。对于Zynq平台而言,所有的U-boot,Linux内核等都是运行在ARM上的应用程序。对于运行在嵌入式Linux上的应用程序,我们可以通过修改文件系统当中的启动脚本来实现开机自启动,也可以通过在嵌入式Linux启动之后,通过终端来控制应用程序的启动。
-
领航者ZYNQ之Linux驱动开发指南_V1.3.pdf
2020-07-08 10:54:19《领航者ZYNQ之Linux驱动开发指南_V1.3.pdf》非常好的正点原子zynq的linux驱动资料,值得拥有,希望对你的工作学习有所帮助。 -
ZYNQ 7000 Linux 驱动开发(一)基础驱动开发
2020-01-10 17:33:55虚拟机软件版本:VMware14.1.1 Linux系统版本:ubuntu-...此工程是在《ZYNQ 7000 Linux工程开发》基础上进行的。 一、创建helloworld驱动 进入上次建立好的linux工程中,命令如下: cd test_project 创建hellowor...虚拟机软件版本:VMware14.1.1
Linux系统版本:ubuntu-16.04.6
petalinux版本:petalinux-v2019.2
vivado版本:Vivado 2019.2
此工程是在《ZYNQ 7000 Linux工程开发》基础上进行的。
一、创建helloworld驱动
进入上次建立好的linux工程中,命令如下:cd test_project
创建helloworld模块,命令如下:
petalinux-create -t modules -n helloworld --enable
-t 为创建的类型参数,可选参数为1 project 2 apps 3 modules
此处要创建的是模块,所以选择 modules
-n 为要创建的名称,此处命名模块名为 helloworld
–enable 参数为使能创建模块
创建模块成功后的打印信息如下:INFO: Create modules: helloworld INFO: New modules successfully created in /home/zj/zynq/test_project/project-spe c/meta-user/recipes-modules/helloworld INFO: Enabling created component... INFO: sourcing bitbake INFO: silentconfig rootfs INFO: helloworld has been enabled
至此,helloworld模块的框架已经生成成功。
helloworld文件位于工程project-spec/meta-user/recipes-modules/helloworld/files/helloworld.c目录下。
二、编译模块
使用如下命令进行编译petalinux-build
三、打包boot文件和镜像文件
执行如下命令petalinux-package --boot --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot
所有生成的文件在image/linux/目录下。
四、镜像拷贝,启动
将image/linux/目录下生成的BOOT.BIN和image.ub文件拷贝到SD卡。插入SD卡,设置SD卡启动模式,上电启动,输入登录名:root 和登录密码:root
五、模块测试
系统启动后,进入目录/lib/modules/4.19.0-xilinx-v2019.2/extra目录,可以看到模块文件为helloworld.ko
安装模块命令如下:insmod helloworld.ko
执行后可以看到相关的信息如下:
<1>Hello module world. <1>Module parameters were (0xdeadbeef) and "default"
卸载模块命令如下
rmmod helloworld
执行后的相关信息如下:
Goodbye module world.
-
Zynq-Linux移植学习笔记之20-Zynq linux can驱动开发
2017-09-04 21:53:431、 硬件配置 在vivado中选择启用ps端的can控制器,如下图 设置can总线的主频 2、 devicetree配置 ...在devicetree中需要增加can的配置信息,如下: ... compatible= "xlnx,zynq-can-1.0"; -
hdmi源码 linux_【正点原子FPGA连载】第八章Linux基础外设的使用-领航者ZYNQ之linux开发指南...
2021-01-09 16:43:591)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
cups源码下载 linux_【正点原子FPGA连载】第九章Linux显示设备的使用-领航者ZYNQ之linux开发指南...
2020-12-25 15:55:201)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
linux 镜像_【正点原子FPGA连载】第二十章另一种方式编译ZYNQ镜像-领航者ZYNQ之linux开发指南...
2020-11-20 20:45:271)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
基于zynq的千兆网udp项目_【正点原子FPGA连载】第二十六章以太网UDP测试实验--领航者ZYNQ之linux开发指南.....
2020-12-30 23:44:551)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4)对... -
S04_基于ZYNQ硬件的LINUX 开发.pdf
2019-07-05 17:12:13基于ZYNQ硬件的LINUX 开发感谢您使用米联客开发板团队开发的 ZYNQ 开发板,以及配套教程。 本教程将对之前编写的《ZYNQ 修炼秘籍》-LINUX 部分内容做出改进, 并且增加新的课程内容。本教程不仅仅适合用于米联客... -
上传安装文件到linux虚拟机_【正点原子FPGA连载】第五章Petalinux的安装-领航者ZYNQ之linux开发指南...
2021-01-07 02:40:201)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
arm指令手册_【正点原子FPGA连载】ARM汇编基础--领航者ZYNQ之linux开发指南
2020-11-12 09:20:241)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4)对... -
c linux 获取cpuid_【正点原子FPGA连载】第十七章Linux内核启动流程-领航者ZYNQ之linux开发指南...
2021-01-04 10:36:271)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
cdev linux_【正点原子FPGA连载】第三十一章Linux按键输入实验--领航者ZYNQ之linux开发指南...
2021-01-02 01:23:091)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
18开机进入不了图形界面_【正点原子FPGA连载】第十章Linux图形界面的使用-领航者ZYNQ之linux开发指南...
2021-01-12 06:29:031)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
zynq 和fpga区别_【正点原子FPGA连载】第二十章EEPROM读写测试实验--领航者ZYNQ之linux开发指南...
2020-12-01 09:27:461)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4)对... -
linux新建文件夹_【正点原子FPGA连载】第十六章内核顶层Makefile详解-领航者ZYNQ之linux开发指南...
2020-11-10 19:27:191)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
基于ZYNQ linux CAN通讯开发
2018-12-07 17:24:08基于ZYNQ linux CAN通讯开发。vivado端的PS-PL配置,sdk端例程 -
【正点原子FPGA连载】第六章自定义IP核-呼吸灯实验-领航者ZYNQ之linux开发指南...
2020-11-24 17:05:491)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
arm蜂鸣器程序 linux_【正点原子FPGA连载】第二十八章Linux蜂鸣器驱动实验--领航者ZYNQ之linux开发指南...
2020-12-31 09:06:321)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
Zynq-Linux移植学习笔记之14-RapidIO驱动开发
2017-08-04 14:51:36Zynq-Linux移植学习笔记之14-RapidIO驱动开发 ...在对zynq进行linux驱动开发时,除了需要针对zynq内ARM自带的控制器适配驱动外,还需要对zynq PL部分的IP核进行驱动开发。对于ARM来说,zyn -
u 打造便携式linux 盘_【正点原子FPGA连载】第十四章U-Boot移植-领航者ZYNQ之linux开发指南...
2021-01-04 18:21:441)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
【正点原子FPGA连载】第五章Petalinux的安装-领航者ZYNQ之linux开发指南...
2020-11-12 10:34:131)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
atomic原子类实现机制_【正点原子FPGA连载】第三十章Linux并发与竞争实验--领航者ZYNQ之linux开发指南...
2021-01-04 17:06:281)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4... -
arp协议的主要功能是_【正点原子FPGA连载】第二十五章以太网ARP测试实验--领航者ZYNQ之linux开发指南...
2020-11-12 10:19:561)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4)对... -
wdm设备驱动程序开发pdf_【正点原子FPGA连载】第二十六章gpio子系统简介-领航者ZYNQ之linux开发指南...
2020-12-12 04:28:471)实验平台:正点原子领航者ZYNQ开发板2)平台购买地址:https://item.taobao.com/item.htm?&id=6061601087613)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html4...