当前位置: 首页 > news >正文

移远 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 “实现/赋值”在哪里?

http://www.jsqmd.com/news/235093/

相关文章:

  • uniapp富文本rich-text
  • 通过函数地址从符号名中反汇编函数名
  • 基于GTE大模型的语义相似度实践|可视化WebUI+API集成方案
  • 程序员必备的语义检索工具:基于GTE模型的高效相似度计算实践
  • 深度学习抠图新体验|使用CV-UNet镜像实现精准Alpha通道提取
  • objdump、nm、addr2line命令解析
  • 基于CV-UNet一键智能抠图|快速实现单张与批量背景去除
  • 【完全免费】小丸工具箱超详细的视频体积压缩教程,从1G视频压缩到100M,几乎不损画质,完全免费,而且可以批量处理视频文件
  • 零代码抠图部署|基于CV-UNet Universal Matting镜像快速构建WebUI
  • 如何用FunASR+WebUI快速实现语音转文字?科哥镜像一键部署指南
  • 【完全免费】黑白照片变彩色照片,一键处理百张黑白老照片,AI上色效果比手工精细10倍,效果太惊艳了,老照片AI修复上色全流程演示,支持离线使用!
  • 导师推荐!MBA论文写作痛点破解TOP8 AI论文写作软件
  • 【AI学习-comfyUI学习-三十二节-FLXU原生态反推+controlnet depth(UNion)工作流-各个部分学习】
  • Redis集群:主从复制模型为何是高可用性基石?
  • FunASR语音识别WebUI使用指南|集成speech_ngram_lm_zh-cn提升准确率
  • 【人工智能学习-AI入试相关题目练习-第一次】
  • 【Android 美颜相机】第一天:认识Android-GPUImage项目
  • 如何快速批量抠图?试试CV-UNet大模型镜像,开箱即用
  • Linux(Ubuntu)RIME 中文输入法-朙月拼音
  • 一键智能抠图实践|基于CV-UNet大模型镜像快速部署批量处理方案
  • 大数据领域数据产品的成本核算方法
  • 批量抠图与人像分割新选择|基于科哥开发的CV-UNet大模型镜像
  • 做好项目管理,无非就是三件事:盯、拆、对!
  • 提升ASR准确率的关键|深度解析speech_ngram_lm_zh-cn集成方案
  • 如何高效完成图片背景移除?试试CV-UNet大模型镜像,支持单张与批量抠图
  • 如何高效实现语义相似度分析?试试GTE中文向量模型镜像
  • 【Java毕设全套源码+文档】基于Web的多传感器健康管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • CV-UNet Universal Matting核心优势解析|附一键抠图实战案例
  • 如何高效批量抠图?试试CV-UNet大模型镜像,操作简单速度快
  • 本地化语音转文字方案|基于科哥二次开发的FunASR镜像实践