当前位置:网站首页>B_QuRT_User_Guide(34)
B_QuRT_User_Guide(34)
2022-06-30 20:09:00 【weixin_38498942】
B_QuRT_User_Guide(34)
- 21.22 qurt_mem_pool_attr_get_size()
- 21.23 qurt_mem_pool_create()
- 21.24 qurt_mem_pool_remove_pages()
- 21.25 qurt_mem_region_attr_get()
- 21.26 qurt_mem_region_attr_get_bus_attr()
- 21.27 qurt_mem_region_attr_get_cache_mode()
- 21.28 qurt_mem_region_attr_get_mapping()
- 21.29 qurt_mem_region_attr_get_physaddr()
- 21.30 qurt_mem_region_attr_get_size()
- 21.31 qurt_mem_region_attr_get_type()
- 21.32 qurt_mem_region_attr_get_virtaddr()
- 21.33 qurt_mem_region_attr_get_physaddr_64()
- 21.34 qurt_mem_region_attr_init()
21.22 qurt_mem_pool_attr_get_size()
21.22.1 功能文档
21.22.1.1 static int qurt_mem_pool_attr_get_size ( qurt_mem_pool_attr_t ∗ attr, int range_id, qurt_size_t ∗ size )
获取指定内存池范围的大小。
相关数据类型
qurt_mem_pool_attr_t
qurt_size_t
参数
| in | attr | 指向内存池属性结构的指针。 |
| in | range_id | 内存池范围键。 |
| out | size | 指向范围大小的目标变量的指针。 |
返回值
0 – 成功。
QURT_EINVALID – 范围无效。
依赖项
None.
21.23 qurt_mem_pool_create()
21.23.1 功能文档
21.23.1.1 int qurt_mem_pool_create ( char ∗ name, unsigned base, unsigned size,qurt_mem_pool_t ∗ pool )
从物理地址范围动态创建内存池对象。
该池被分配一个具有指定基地址和大小的内存区域。
传递给此函数的基地址和大小值必须与 4K 字节边界对齐,并且必须表示为实际基地址和大小值除以 4K。
例如函数调用:qurt_mem_pool_create ("TCM_PHYSPOOL", 0xd8020, 0x20, &pool)
… 相当于 QuRT 系统配置文件中的以下静态池定义:
<physical_pool name="TCM_PHYSPOOL">
<region base="0xd8020000" size="0x20000" />
</physical_pool>
注意:动态创建的池与静态池不同。 特别是,qurt_mem_pool_attr_get() 对动态创建的池无效。
动态池创建会永久消耗系统资源,并且无法撤消。
相关数据类型
qurt_mem_pool_t
参数
| in | name | 指向内存池名称的指针。 |
| in | base | 内存区域的基地址(除以 4K)。 |
| in | size | 内存区域的大小(以字节为单位)(除以 4K)。 |
| out | pool | 指向内存池对象的指针。 |
返回值
QURT_EOK – 成功。
依赖项
None.
21.24 qurt_mem_pool_remove_pages()
21.24.1 功能文档
21.24.1.1 int qurt_mem_pool_remove_pages ( qurt_mem_pool_t pool, unsigned first_pageno, unsigned size_in_pages, unsigned flags, void(∗)(void ∗) callback, void ∗ arg )
从指定的内存池对象中删除物理地址范围。
如果地址范围的任何部分正在使用,则此操作将返回错误而不更改状态。
注意:仅使用 root 权限调用此操作(guest-OS 模式)。
将来,此操作将支持(通过 flags 参数)在使用部分范围时删除物理地址范围。
相关数据类型
qurt_mem_pool_t
参数
| in | pool | 内存池对象。 |
| in | first_pageno | 物理地址范围的第一个页码(相当于地址>>12) |
| in | size_in_pages | 物理地址范围内的页数(相当于大小>>12) |
| in | flags | 删除选项。 返回值: 0 – 跳过不属于池的范围内的漏洞(默认) |
QURT_POOL_REMOVE_ALL_OR_NONE – 仅当指定的物理地址范围完全包含在池可用空间中(没有空洞)时才会删除页面。 | ||
| in | callback | 成功删除页面时调用的回调过程。 如果操作失败,则不调用。 将 0 作为参数值传递会导致不调用回调。 |
| in | arg | 作为参数传递给回调过程的值。 |
返回值
QURT_EOK – 页已成功删除。
依赖项
None.
21.25 qurt_mem_region_attr_get()
21.25.1 功能文档
21.25.1.1 int qurt_mem_region_attr_get ( qurt_mem_region_t region, qurt_mem_region_attr_t ∗ attr )
获取指定消息区域的内存属性。 内存区域创建后,其属性无法更改。
相关数据类型
qurt_mem_region_t
qurt_mem_region_attr_t
参数
| in | region | 内存区域对象。 |
| out | attr | 指向内存区域属性的目标结构的指针。 |
返回值
QURT_EOK – 操作成功执行。
错误代码 - 失败。
依赖项
None.
21.26 qurt_mem_region_attr_get_bus_attr()
21.26.1 功能文档
21.26.1.1 static void qurt_mem_region_attr_get_bus_attr ( qurt_mem_region_attr_t ∗attr, unsigned ∗ pbits )
从指定的内存区域属性结构中获取 (A1, A0) 总线属性位。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | pbits | 指向用内存区域属性结构中的 (A1, A0) 位填充的无符号整数的指针,表示为 2 位二进制数。 |
返回值
None.
依赖项
None.
21.27 qurt_mem_region_attr_get_cache_mode()
21.27.1 功能文档
21.27.1.1 static void qurt_mem_region_attr_get_cache_mode ( qurt_mem_region_attr_t ∗ attr, qurt_mem_cache_mode_t ∗ mode )
从指定的内存区域属性结构中获取缓存操作模式。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_cache_mode_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | mode | 指向缓存模式的目标变量的指针。 |
返回值
None.
依赖项
None.
21.28 qurt_mem_region_attr_get_mapping()
21.28.1 功能文档
21.28.1.1 static void qurt_mem_region_attr_get_mapping ( qurt_mem_region_attr_t ∗ attr, qurt_mem_mapping_t ∗ mapping )
从指定的内存区域属性结构中获取内存映射。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_mapping_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | mapping | 指向内存映射的目标变量的指针。 |
返回值
None.
依赖项
None.
21.29 qurt_mem_region_attr_get_physaddr()
21.29.1 功能文档
21.28.1.1 static void qurt_mem_region_attr_get_mapping ( qurt_mem_region_attr_t ∗ attr, qurt_mem_mapping_t ∗ mapping )
从指定的内存区域属性结构中获取内存映射。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr | 指向内存区域物理地址的目标变量的指针。 |
返回值
None.
依赖项
None.
21.30 qurt_mem_region_attr_get_size()
21.30.1 功能文档
21.30.1.1 static void qurt_mem_region_attr_get_size ( qurt_mem_region_attr_t ∗ attr,qurt_size_t ∗ size )
从指定的内存区域属性结构中获取内存区域大小。
相关数据类型
qurt_mem_region_attr_t
qurt_size_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | size | 指向内存区域大小的目标变量的指针。 |
返回值
None.
依赖项
None.
21.31 qurt_mem_region_attr_get_type()
21.31.1 功能文档
21.31.1.1 static void qurt_mem_region_attr_get_type ( qurt_mem_region_attr_t ∗ attr,qurt_mem_region_type_t ∗ type )
从指定的内存区域属性结构中获取内存类型。
相关数据类型
qurt_mem_region_attr_t
qurt_mem_region_type_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | type | 指向内存类型的目标变量的指针。 |
返回值
None.
依赖项
None.
21.32 qurt_mem_region_attr_get_virtaddr()
21.32.1 功能文档
21.32.1.1 static void qurt_mem_region_attr_get_virtaddr ( qurt_mem_region_attr_t ∗attr, unsigned int ∗ addr )
从指定的内存区域属性结构中获取内存区域虚拟地址。
相关数据类型
qurt_mem_region_attr_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr | 指向内存区域虚拟地址的目标变量的指针。 |
返回值
None.
依赖项
None.
21.33 qurt_mem_region_attr_get_physaddr_64()
21.33.1 功能文档
21.33.1.1 static void qurt_mem_region_attr_get_physaddr_64 ( qurt_mem_region_attr_t ∗ attr, qurt_paddr_64_t ∗ addr_64 )
从指定的内存区域属性结构中获取内存区域的 64 位物理地址。
相关数据类型
qurt_mem_region_attr_t
qurt_paddr_64_t
参数
| in | attr | 指向内存区域属性结构的指针。 |
| out | addr_64 | 指向内存区域 64 位物理地址的目标变量的指针。 |
返回值
None.
依赖项
None.
21.34 qurt_mem_region_attr_init()
21.34.1 功能文档
21.34.1.1 void qurt_mem_region_attr_init ( qurt_mem_region_attr_t ∗ attr )
使用默认属性值初始化指定的内存区域属性结构:
- 映射 – QURT_MEM_MAPPING_VIRTUAL
- 缓存模式——QURT_MEM_CACHE_WRITEBACK
- 物理地址 – -1
- 虚拟地址 – -1
- 内存类型 – QURT_MEM_REGION_LOCAL
- 大小 – -1
注意:必须通过调用 qurt_mem_region_attr_set_physaddr() 函数显式设置内存物理地址属性。 大小和池属性直接设置为内存区域创建操作中的参数。
相关数据类型
qurt_mem_region_attr_t
参数
| in,out | attr | 指向内存区域属性的目标结构的指针。 |
返回值
None.
依赖项
None.
边栏推荐
- SecureCRTPortable的安装和使用(图文详解)
- 1. Introduction to generating countermeasures network
- 杰理之触摸按键识别流程【篇】
- 杰理之检测灵敏度级别确定【篇】
- NLP paper lead reading | what about the degradation of text generation model? Simctg tells you the answer
- 数据库 OLAP、OLTP是什么?相同和不同?适用场景
- How do I get the largest K massive data
- Go 语言标识符、包名规范
- Heartbeat and DRBD configuration process
- 1、生成对抗网络入门
猜你喜欢
随机推荐
Openfire solves the problem of Chinese garbled code after using MySQL database
PHP obtains opcode and C source code
以全栈全功能解决方案,应对多样工具复杂环境DevOps落地难题
All the important spark summit features were released here last night (with ultra clear video attached)
哈夫曼树(一)基本概念与C语言实现
Static classes use @resource annotation injection
Lingyun going to sea | 10 leap &huawei cloud: jointly helping Africa with inclusive financial services
Jenkins can't pull the latest jar package
Go learning notes
Summary of PHP file upload (garbled code, move failure, permission, display picture)
Document contains & conditional competition
Lumiprobe无铜点击化学解决方案
Halcon知识:盘点一下计量对象【1】
Heartbeat uses NFS to make MySQL highly available based on CRM
Big God explains open source buff gain strategy live broadcast
NLP 论文领读|文本生成模型退化怎么办?SimCTG 告诉你答案
Playwright - scroll bar operation
Evolution of screen display technology
Build your own website (20)
动态样式绑定--style 和 class




![Jerry's touch key recognition process [chapter]](/img/cf/8dacbb7f80e427276df6201dddd377.png)




