• Linux ARM平台开发系列讲解(IPCF异核通信) 2.11.3 IPCF异核通信驱动编译及其测试


    1. 概述

    Linux IPCF共享内存内核驱动程序支持通过共享内存与运行在同一处理器的不同核心上的RTOS进行通信。该驱动程序伴随着一个示例应用程序,该应用程序也是一个树外内核模块,它演示了与RTOS应用程序的乒乓信息通信(更多细节请参阅示例目录中的自述文件)。驱动程序和示例应用程序被集成为NXP AutoLinuxBSP中的树外内核模块。这个Linux驱动程序的源代码发布在source.codeaurora.org上。

    2. IPCF驱动下载及其编译

    2.1 从Code Aurora获取NXP Auto Linux内核和IPCF驱动

    • Linux内核
    git clone https://source.codeaurora.org/external/autobsps32/linux/
    
    • 1
    • IPCF源码
    git clone https://source.codeaurora.org/external/autobsps32/ipcf/ipc-shm/
    
    • 1

    2.2 切换内核和IPCF驱动版本

    我这里内核使用的是bsp30.0版本的源码,下载后记得切换分支

    • 查看所有分支
    git branch -a
    
    • 1

    在这里插入图片描述

    • 切换IPCFbsp30.0版本驱动
    git checkout -b remotes/origin/release/bsp30.0
    
    • 1

    在这里插入图片描述

    2.3 编译IPCF驱动模块

    目录结构如下,ipcf驱动和Linux内核源码目录在同一路径
    在这里插入图片描述

    • 设置环境变量和交叉编译工具链
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-none-linux-gnu-
    export PATH=$PATH:/home/zhang/linux/02_s32g274a/01_tools/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin
    
    • 1
    • 2
    • 3
    • 编译模块
    make -C ./ipc-shm/sample KERNELDIR=$PWD/linux modules
    
    • 1

    在这里插入图片描述

    3. 测试IPCF通信

    S32G274A-EVB板子为例

    3.1 从U-Boot中禁用数据缓存

    dcache off
    
    • 1

    在这里插入图片描述

    3.2 清空SRAM共享内存

    initsram 0x34100000 0x700000
    
    • 1

    在这里插入图片描述

    3.3 使用TFTP将M核程序加入sram中

    tftp  0x34300000 IPCF_Example_S32G274.bin
    
    • 1

    在这里插入图片描述

    3.4 启动M核

    startm7 0x34501000
    
    • 1

    在这里插入图片描述

    3.5 启动内核

    run nfsboot
    
    • 1

    在这里插入图片描述

    3.6 加载驱动

    将前面编译好的驱动加载

    insmod ipc-shm-dev.ko  
    insmod ipc-shm-sample.ko
    
    • 1
    • 2

    3.7 测试

    echo 10 > /sys/kernel/ipc-shm-sample/ping
    
    • 1

    在这里插入图片描述

    返回总目录

  • 相关阅读:
    TensorRT概述
    8.25 学习
    玩以太坊链上项目的必备技能(类型-值类型-Solidity之旅二)
    01.06 校招 实习 内推 面经
    python趣味编程-5分钟实现一个测验应用程序(含源码、步骤讲解)
    网络安全(大厂面试真题集)
    论文阅读-Time-series clustering – A decade review
    ansible部署MySQL主从
    CPU版本的pytorch安装
    JZ59 滑动窗口的最大值
  • 原文地址:https://blog.csdn.net/DSMGUOGUO/article/details/125560257