C C++最新ZYNQ跑系统 系列(二) petalinux方式移植linux_petalinux移植,2024年最新一文搞懂C C++架构

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

 ![这里写图片描述](https://img-blog.csdn.net/20171205211501123?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9uZ19mbHk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
  • 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:*
  • 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**待用

三、搭建petalinux工程

  • 0.定位目录
    先在shell中找一个准备存放工程的地方,(我的是home/hlf/PRO),命令行cd home/hlf/PRO
  • 1.定位编译链
    根据安装petalinux的路径:
    source /home/hlf/mnt/petalinux/settings.sh
  • 2.创建petalinux工程
    将在PRO目录下面,创建一个工程:
    petalinux-create --type project --template zynq --name h1_petalinux_test
    h1_petalinux_test是工程名,该命令会自动在PRO文件夹里创建h1_petalinux_test文件夹
  • 3.引用刚才输出的硬件描述文件

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

如果你需要这些资料,可以戳这里获取

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值