既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
-
2.修改/bin/sh
shell中输入:dpkg-reconfigure dash
,在出现的界面中选择‘否’ -
3.下载petalinux
去官网下载petalinux-v2017.1-final-installer.run
(文件8个G,上传不了) -
4.安装petalinux
- 在一个用户目录下(我的是:
home/hlf/mnt
),用鼠标右键,新建一个文件夹petalinux
- 在普通用户下(非root模式下,即命令行是:
hlf@hlf-virtual-machine:~/mnt$
这样的),shell中输入命令:./petalinux-v2017.1-final-installer.run ./petalinux
- 经过漫长的等待,安装到一半的时候,提醒查看许可,按回车查看,按q退出,退出后输入y,回车,如此重复三次,才开始正式安装(这个步骤要很小心,如果没有输入y,就回车,就要重新了)
- 安装的时候提示,提示有几个库没装,不过没关系,等petalinux安装完之后,再补也不迟,静候一直到安装完毕
- 在一个用户目录下(我的是:
-
5.补一些库的安装
- 懒人直接只看这一点即可(可以跳过下面两点),把下面命令粘贴到shell中回车即可:
apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386 libncurses5 libncurses5-dev libc6:i386 libstdc++6:i386 zlib1g:i386 libssl-dev tftpd tftp openbsd-inetd
- 先安装刚刚安装时,提示缺少的库:
apt-get install texinfo gcc-multilib libsdl1.2-dev libglib2.0-dev zlib1g:i386
-
安装一些之后需要的库,全都安装了避免麻烦:
- 在运行petalinux-config -c kernel会出现错误,需安装:
apt-get install libncurses5 libncurses5-dev
- 编译时可能会出现错误arm-xilinx-linux-gnueabi-gcc: Command not found,需安装:
apt-get install libc6:i386 libstdc++6:i386 zlib1g:i386
- 提示缺少zlib和openssl,需安装:
apt-get install libssl-dev
- 出现警告(警告而已,强迫症可以处理一下),提示No tftp server found - please refer to “PetaLinux SDK Installation Guide” for its impact and solution,需安装:
apt-get install tftpd tftp openbsd-inetd
,安装完成后,编辑一下**/etc/inetd.conf**里的东西:
直接shell中输入gedit /etc/inetd.conf
,打开了文件,并在文件最后一行增加:
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftproot
然后保存并退出 ,之后再进行一些简单操作:
mkdir /tftproot
chmod 777 /tftproot
/etc/init.d/openbsd-inetd restart
输入netstat -an | more | grep udp
命令,以确定成功(打印出udp 0 0 0.0.0.0:69 0.0.0.0:*
)
- 在运行petalinux-config -c kernel会出现错误,需安装:
-
6.验证是否安装成功
source /home/hlf/mnt/petalinux/settings.sh
成功定位不报错的话,基本是成功了的
echo $PETALINUX
命令行会打印出安装路径/home/hlf/mnt/petalinux
二、搭建硬件环境
- 1.新建工程,选择对应的芯片型号,并新建一个 BD 原理图文件(命名为system),然后添加一个ZYNQ Processing system的IP核,并设置好与硬件相符合的PS和PL时钟以及DDR型号
这个步骤同传统方式移植那篇文章 - 2.为了使PetaLinux正常的运行,需要分配一些硬件外设资源
1.TTC模块**(必须)** ,如果有多个,Linux内核将会使用第一个。
2.外部32MB存储空间**(必须)**
3.UART模块**(必须),控制台打印信息用,若用IP核的话,需中断信号连到PS
4.非易失存储器(可选),如:QSPI Flash,SD/MMC
5.以太网接口(可选)**,若用IP核或外部PHY的话,需中断信号连到PS
本文硬件上,将在ZYNQ Processing system里启用TTC、UART、SD以及之后可能用到的USB、Ethernet(网口0在bank1,bank1电压要选1.8V,否则报错)
预留好上述模块就可以了,
然后右键单击 Block 文件,文件选择 Generate the Output Products,然后右键单击 Block 文件,选择 Create a HDL wrapper,根据 Block 文件内容产生一个 HDL 的顶层文件,并选择让 vivado 自动完成
经Vivado综合,实现后,在Vivado中导出硬件,输出PetaLinux所需要的硬件描述文件
输出的文件就在**“/(工程文件夹)/(工程名).sdk”这个文件夹下,这个文件夹下的system_wrapper.hdf**待用
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**