petalinux笔记[通俗易懂]

2022-10-01 13:28:44 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

记录一下这两天用正点原子开发板学petalinux的过程,众所周知,ZYNQ可以跑逻辑的FPGA,也可以跑裸机的SDK代码,还能跑个linux系统。在SDK开发中,只是在搭好的FPGA上跑一些简单的c代码,还没有安装上一个系统。

1.首先是petalinux2018.3版本的安装

建议参考正点原子的安装方法,注意事项就是使用ubuntu16.04版本而不是ubuntu18。要么就用ubuntu16.04配上petalin2018.3版本,要么就是ubuntu18配上petalinux2019.1的版本

2.其次是petalinux的使用

首先得先用vivado搭一个bit(用zynq的ip核)文件出来,然后在ubuntu16.04中进行开发。

主要流程是:

1.搭建vivado工程,配置好zynq核,DDR啥的,得到hdf硬件描述文件;

2.在ubuntu整好petalinux,在shell下source petalinux的settings.sh,打开这个配置好的环境,也可以把这个环境设计为默认启动;

3.petalinux-create -t project –template zynq -n ALIENTEK-ZYNQ 新建工程,然后cd进入工程的文件夹

4.petalinux-config配置,导入hdf文件,在窗口中进行配置,正点原子这里需要修改一下Serial Settings的串口为ps7_uart_0(两个串口一个是ps7_uart_0,一个是RS232/485)。

5.配置内核 petalinux-config -c kernel

6.配置linux根文件系统 petalinux-config -c rootfs

7.修改设备树

8.编译petalinux工程 petalinux-build

9.制作BOOT.BIN文件,使用petalinux-package指令来进行

10.格式化SD卡,两个盘一个是FAT32格式的启动盘,一个是ext4格式的根目录,复制BOOT.BIN即可以。

11.开发板打开sd启动模式(两个no),使用串口连接板卡。

如果没有路由器,比如我……

可以先连接板卡,配置一下IP,ifconfig eth0 192.168.1.10,

再用windows的网络管理把对应的以太网的ip设置为192.168.1.2以及对应的掩码,这里这样设置后开发板和电脑就在一个网段内,可以进行后续的scp以及ssh通信等过程。

3.xsdk的使用

主要是三种运行的方法,第一种是软件内的TCF Agent,只需要对应开发板的IP就可以运行;

第二种是NFS的文件共享;第三种是ssh的远程连接。

4.uboot移植

这里主要讲到uboot的具体移植方法,我个人兴趣不大,没有仔细看。

5.linux驱动开发

首先需要按照它给出的方式,用另外一种方式编译ZYNQ镜像,个人觉得配置的过程相当繁琐……

配置好后,可以跑一下第一个例子,即字符设备驱动

使用arm-linux-gnueabihf编译一下驱动程序产生 chrdevbase.ko的驱动模块

使用scp将文件传输到我们的开发板上

再用insmod或者modprobe加载模块

之后可以用lsmod查看加载的mod模块

再用mknod创建设备节点文件,使用

./chrdevbaseApp /dev/chrdevbase 1 测试读操作

./chrdevbaseApp /dev/chrdevbase 2 测试写操作

最后用 rmmod chrdevbase.ko来卸载模块。

驱动开发需要编写驱动程序以及对应的驱动测试程序,然后通过交叉编译驱动程序,将其编译为ko格式的驱动模块,之后在linux系统中加载这个模块并创建对应的设备节点文件,最后用这个设备模块来测试我们自己编写的对应驱动测试程序。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/194903.html原文链接:https://javaforall.cn

0 人点赞