本期主题:
petalinux的module编译
往期链接:
- linux设备驱动中的并发
- linux设备驱动中的编译乱序和执行乱序
- linux设备驱动之内核模块
- linux字符驱动
- linux字符驱动之ioctl部分
- linux字符驱动之read、write部分
- linux驱动调试之Debugfs
- Linux下如何操作寄存器(用户空间、内核空间方法讲解)
文章目录
1.petalinux是什么
petalinux是一种嵌入式Linux软件开发套件(SDK),主要用于Xilinx FPGA片上系统。
petalinux工具包含:
- yocto可扩展sdk
- XSCT和工具链
- petalinux cli工具
1.yocto概述
Yocto是一个开源代码组合,可以用来帮助开发者开发定制化的嵌入式Linux系统,无论是什么样的硬件架构。
那么为什么要使用yocto呢?主要是yocto有以下对应的优点:
Yocto project feature:
- 被广泛使用,在很多产品和商业服务中都使用了Yocto Project;
- 不关心架构(对架构不敏感),不论是ARM、MIPS、AMD、PPC都能创建对应架构的BSP;
- 灵活性,公司以多种不同的方式使用 Yocto 项目。 一个例子是创建一个内部 Linux 发行版作为公司可以跨多个产品组使用的代码库。 通过定制和分层,项目组可以利用基础 Linux 发行版来创建满足其产品需求的发行版;
- 使用分层架构,Yocto 项目层基础设施将相关功能分组到单独的包中,开发者可以根据需要逐步将这些分组功能添加到项目中,使用层来隔离和分组功能降低了项目的复杂性和冗余;
- ……
2.petalinux如何使用module
使用module可以分为以下几个步骤:
- 在工程中创建对应Module
- 修改module代码
- 编译module
- 在对应生成路径下,找到module
1.在petalinux工程中创建module
1.首先找到对应的petalinux工程,一般是在 petalinux/硬件平台 目录下,我的目录是这个
2. 使用petalinux-create进行创建module
$ petalinux-create -t modules --name xxxx --enable
petalinux的其他命令还包括:
2.修改module对应代码
对应module的代码位置在:
前面提到的yocto,它的分层有一个特点就是以 meta- 作为分层的名字
3.编译module
在petalinux工程文件夹下,进行module编译
$ petalinux-build -c xxx(module_name)
4.生成module的路径
在petalinux工程文件夹下,输入
$ petalinux-config
进行config配置
Yocto Settings
TMPDIR location
然后在tmpdir location下能找到对应生成的module文件
3.测试module
在VCK190开发板上进行实测: