news 2026/6/10 19:51:04

移远 api对应的内核映射函数地址解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
移远 api对应的内核映射函数地址解析

qos_app_api_map.c代码

static _api_qosa_task_sleep_ms_t m_qosa_task_sleep_ms = NULL; void qosa_task_sleep_ms(qosa_uint32_t ms ) { if(NULL ==m_qosa_task_sleep_ms) { int ptr =m_get_api_ptr((char *)__FUNCTION__); if(0 == ptr) { SDK_API_DEBUG_NOTSUP(); return; } m_qosa_task_sleep_ms = ( _api_qosa_task_sleep_ms_t)ptr; } m_qosa_task_sleep_ms(ms); }

ql_app_pre_init.c

_get_api_ptr_t m_get_api_ptr = NULL; int qos_app_preboot(void *argv) { qos_app_rw_section_init(); qos_app_zi_section_init(); ql_boot_para *boot_para = (ql_boot_para *)argv; ql_static_mapping* static_mapping = boot_para->static_maping; table_size = *((func_mapping *)boot_para->kernel_maping)->table_size; if(table_size !=0) { m_get_api_ptr=((func_mapping *)boot_para->kernel_maping)->get_fun_ptr_dep_name; } ql_trace = static_mapping->trace; ql_printf = static_mapping->printf; ql_trace("trace test\r\n"); return 1; }

unirtos_sys.h

extern void qosa_task_sleep_ms(qosa_uint32_t ms); typedef void (* _api_qosa_task_sleep_ms_t)(qosa_uint32_t ms);

ql_open_app_init.h

typedef struct func_map { uint32_t *table_size; void *get_fun_ptr_dep_name; //add system info here }func_mapping;

上面代码只贴了跟本文相关的代码片段

里面用到了ptr =m_get_api_ptr((char *)__FUNCTION__),AI解释如下:

先定位两件事:1)m_get_api_ptr 在哪里被“定义/赋值”(函数指针变量最终指向哪个函数);2)你选中那段里 ptr 的具体类型与用法(通过读 qos_app_api_map.c 的对应行)。

Searched regular expressions and read source code
我已经定位到了:m_get_api_ptr 不是一个普通函数,而是一个“函数指针变量”;它在启动预初始化阶段被赋值为“内核侧提供的符号查找函数”。你选中的 ptr 本质上是“查到的目标 API 的函数地址”。

下面把两个问题说清楚:实现在哪里、ptr 表示什么。1) m_get_api_ptr “实现/赋值”在哪里?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:00:14

Linux(Ubuntu)RIME 中文输入法-朙月拼音

RIME 中文输入法 Rime 确切的说不是一个具体的输入法,它是开源跨平台输入法框架。它在不同的操作系统(Windows,MacOS,Linux)有不同的实现。 ibus-rime, fctix-rime(fctix5-rime)输入法&#x…

作者头像 李华
网站建设 2026/6/10 14:18:02

CV-UNet Universal Matting镜像解析|附单图与批量处理实战

CV-UNet Universal Matting镜像解析|附单图与批量处理实战 1. 技术背景与应用价值 随着AI图像处理技术的快速发展,智能抠图(Image Matting) 已成为电商、设计、影视后期等领域的核心需求。传统手动抠图耗时费力,而基…

作者头像 李华
网站建设 2026/6/9 22:19:37

如何快速批量抠图?试试CV-UNet大模型镜像,开箱即用

如何快速批量抠图?试试CV-UNet大模型镜像,开箱即用 1. 引言:AI抠图的工程痛点与新解法 在电商、广告设计、内容创作等领域,图像背景移除(抠图) 是一项高频且耗时的基础任务。传统方法依赖人工使用Photosh…

作者头像 李华
网站建设 2026/6/9 22:20:54

CoT+RAG+AI推理·工程手记 篇六:模型加载和多轮流式对话实现

文章目录 系列文章 源码注释版 核心流程解析 1. 单例模式初始化与模型加载流程(模块入口,仅执行一次) 2. 合规 Prompt 构建与格式化流程(生成任务前置准备) 3. 基础同步生成流程(`generate` 方法,一次性返回完整结果) 4. 流式生成流程(`stream_generate` 方法,逐 Tok…

作者头像 李华