QNX Typed memory介绍

文章目录

  • 前言
  • 一、什么是 Typed memory
  • 二、查看系统已有Typed memory 的方法
  • 三、Typed memory 的使用方法
    • 1.定义一个packet memory并从系统内存中分出它
    • 1.1 as_add()
    • 1.2 as_add_containing()
    • 2. 从 Typed memory 中申请内存
    • 2.1 POSIX method 申请内存
    • 2.2 QNX Neutrino method 申请内存
  • 四、Typed memory 使用实例
    • 1. Allocating contiguous memory from system RAM
    • 2. Allocating contiguous memory from system memory below4G
    • 2. 创建一个普通的packet memory
    • 3. 创建一个 DMA-safe region
  • 总结
  • 参考资料


前言

本文主要介绍QNX 里面的 Typed memory 机制,它类似于 linux 里面的 reserved memory ,可以从系统内存中分出一部分内存用来给特定的硬件模块使用
软件版本:qnx7.1


一、什么是 Typed memory

如下图所示, 是QNX 官网对 Typed memory 的介绍,它和 linux 里面的 reserved memory 类似,可以从系统内存中分出一部分内存用来给特定的硬件模块使用,如GPU,VSP等硬件模块
在这里插入图片描述

二、查看系统已有Typed memory 的方法

在qnx 系统中执行 pidin syspage=asinfo 命令就可以看到系统中已有的Typed memory 分布,如下图所示
在这里插入图片描述
typed memory 之间是通过命名来区分的,上图中的/memory/below4G, /memory 等都代表着各个Typed memory

三、Typed memory 的使用方法

1.定义一个packet memory并从系统内存中分出它

目前有两种方法,分别是使用as_add() 建立一个普通的内存池,和使用 as_add_containing() 建立一个DMA 内存池

1.1 as_add()

如下图所示,是 qnx 官方的实例,使用 as_add() 接口来定义一个packet memory 并从系统内存中分出这块内存
在这里插入图片描述
如下图所示,是 qnx 官方对 as_add() 函数的介绍
在这里插入图片描述

通过 as_add() 建立的这个 packet memory (就是Linux 里面的reserved memory)就是一个内存池,驱动可以从里面申请内存给其硬件模块使用

1.2 as_add_containing()

如下图所示,是 qnx 官方的实例,使用as_add_containing()接口来定义一个 DMA-safe region 并从系统内存中分出这块内存
在这里插入图片描述
如下图所示,是 qnx 官方对as_add_containing()接口的介绍
在这里插入图片描述
通过 as_add_containing() 建立的这个DMA-safe region(就是Linux 里面的reserved memory)就是一个DMA内存池,驱动可以从里面申请内存给其硬件模块使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/155522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

redis设置密码

首先到redis的下载目录下:运行 redis-cli 查看redis密码: config get requirepass 设置redis密码为123456: config set requirepass 123456

GDS 命令的使用 srvctl service TAF application continuity

文档中prim and stdy在同一台机器上,不同机器需要添加address list TAF ENABLED GLOBAL SERVICE in GDS ENVIRONMNET 12C. (Doc ID 2283193.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.…

Windows系统中搭建docker (ubuntu,Docker-desktop)

一、docker安装前的准备工作 1. 开启CPU虚拟化,新电脑该默认是开启的,如果没开启可以根据自己电脑型号品牌搜索如克开启CPU虚拟化。当开启成功后可在设备管理器中看到。 2.开通Hyper-V 通过 Windows 控制面板 --> 程序和功能 -->启用或关闭…

系列五、JVM的内存结构【PC寄存器】

一、位置 CPU中 二、作用 每个线程都有一个程序计数器,是线程私有的,所谓PC寄存器其实就是一个指针,指向方法区中的方法字节码(用来存储指向下一条指令的地址,也即将要执行的指令代码),由执行引…

基于PHP的纺织用品商城系统

有需要请加文章底部Q哦 可远程调试 基于PHP的纺织用品商城系统 一 介绍 此纺织用品商城系统基于原生PHP开发,数据库mysql,前端bootstrap。用户可注册登录,购物下单,评论等。管理员登录后台可对纺织用品,用户&#xf…

一文浅入Springboot+mybatis-plus+actuator+Prometheus+Grafana+Swagger2.9.2开发运维一体化

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTFUL风格的Web服务,是非常流行的API表达工具。 Swagger能够自动生成完善的 RESTFUL AP文档,,同时并根据后台代码的修改同步更新,同时提供完整的测试页面来调试API。 Prometheus 是一个开源的服务监控系统和时…

​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】 课本里章节里所有蓝色字体的思维导图

锂离子电池充电管理芯片应用

基本概述 TP4054是一个完善的单片锂离子电池恒流/恒压线性电源管理芯片。 更值得一提的是,TP4054专门设计适用于USB的供电规格。得益于内部的MOSFET结构,在应用上不需要外部电阻和阻塞二极管。在高能量运行和高外围温度时,热反馈可以控制充…

uniapp Android如何授权打开系统蓝牙Bluetooth?

uniapp Android如何授权打开系统蓝牙? 使用uniapp开发蓝牙项目过程中,涉及到检测手机系统蓝牙是否打开功能,这里介绍Android,iOS暂时没有找到优方法。朋友们如果有好的方案,欢迎评论分享~ 文章目录 uniapp Android如何…

SDL音视频渲染

01-SDL简介 官网:https://www.libsdl.org/ 文档:http://wiki.libsdl.org/Introduction SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函…

ESP32 Arduino实战基础篇-使用 ADC 读取模拟值

本文介绍如何使用 Arduino IDE 读取 ESP32 的模拟输入。模拟读数对于读取电位计或模拟传感器等可变电阻器的值非常有用。 使用 ESP32 读取模拟输入就像使用模拟读取(GPIO)函数,它接受您想要读取的 GPIO 作为参数。 模拟输入 (ADC) 使用 ESP32 读取模拟值意味着您可以测量 0 …

Anaconda的安装使用及pycharm设置conda虚拟环境

1.python和包以及anaconda的概念关系 python “工人” 包 “工具” 环境 “工具箱” anaconda “放很多工具箱的大箱子” python等于工人这个好理解,就是编程需要用python来实现对应功能,即工人完成某项工程。 包等于工具,就是工人…

使用VC++实现分段线性变换,直方图均衡化、锐化处理(使用拉普拉斯算子)

图像锐化1 实验要求 5.1实验目的、要求 实验目的: (1)掌握图像增强的原理与相关方法。 (2)能使用VC实现图像增强的一些相关功能。 实验要求: A部分: (1)对一幅256级灰度…

【vue2】前端如何播放rtsp 视频流,拿到rtsp视频流地址如何处理,海康视频rtsp h264 如何播放

文章目录 测试以vue2 为例新建 webrtcstreamer.js下载webrtc-streamervideo.vue页面中调用 最近在写vue2 项目其中有个需求是实时播放摄像头的视频,摄像头是 海康的设备,搞了很长时间终于监控视频出来了,记录一下,放置下次遇到。…

2023年首届天府杯数学建模国际大赛问题A思路详解与参考代码:大地测量数据中异常现象的特征和识别

地球变形观测是固体潮汐曲线分析和地震前体研究的重要手段,也是地球观测技术的重要组成部分。基于各种精密科学仪器的变形观测点主要集中在洞穴、地下井等易的自然灾害(雷暴、强降雨、降雪等),人工维护、人工爆破等外部条件&#…

类似于推箱子的小游戏 寻找 最短路径

实现效果如下 类似 推箱子小游戏 的变种 C/C版本 BFS最短路径 黑色代表墙壁 不能越过 蓝色代表HOME点 灰色代表要找的小箱子 绿色代表路径 最终目标是将灰色的小箱子移动到蓝色的HOME点 需要两次搜索 第一次是 出发点到灰色小箱子 第二次是灰色小箱子到蓝色HOME点 BF…

IntelliJ IDE 插件开发 |(一)快速入门

前言 IntelliJ IDEA 作为 Java 开发的首选 IDE,其强大、方便之处不必多说。不过,由于个人或者团队的个性化需求,我们或多或少会想对其功能进行拓展,这时就需要开发插件(在 IntelliJ 平台下的所有 IDE 均可运行&#x…

QtCreator13源码windows编译

1.下载QtCreator13源码: https://download.qt.io/snapshots/qtcreator/13.0/13.0.0-beta1/installer_source/latest/qt-creator-opensource-src-13.0.0-beta1.zip 2.下载并安装llvm Release LLVM 17.0.5 llvm/llvm-project GitHub 3.系统 要求: Windows 10 (64…

设计模式-代理模式-笔记

动机(Motivation) 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要远程外的访问等),直接访问会给使用者、或者系统结构带来很多…

Python ... takes 0 positional arguments but 1 was given

最近,博主在学习python时遇到这么个报错, 系统:windows10 开发环境:VS Code Python版本:3.12 错误重现: class Dog:def __init__(self):passdef eatSomething(self):self.eatBone()def eatBone():prin…