码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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

    在这里插入图片描述

    • 切换IPCF为bsp30.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

    在这里插入图片描述

    返回总目录

  • 相关阅读:
    泛型的小结
    电脑重装系统后Win11用户名怎么更改
    自定义注解+AOP解决重复提交的问题
    浅谈java中的String
    (算法)存在重复元素I——<哈希表>
    如何编写测试用例?
    【Java8】对JSONArray 按指定字段排序,升序和倒序,经典
    2022买护眼灯到底有没有用?双十二学生护眼灯该怎么选择
    上海亚商投顾:两市成交创23个月新低 医疗器械板块强势
    四、Maven-单一架构案例(业务功能:显示奏折列表,业务功能:显示奏折详情)
  • 原文地址:https://blog.csdn.net/DSMGUOGUO/article/details/125560257
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号