最近又在做一个CMOS相机和nm级位移台配合工作的问题

相机公司只提供了C++的SDK,所以我又要把它转成matlab的,因为之前做过一次的所以这次也是轻车熟路

相机的地址传入传出,一般来说相机地址都是自定义的类型,但绝大多数都是指针的,而mex的函数传的也是地址,也就是说传入传出也只有一次寻址,这个是比较简单的、

在之前的文章中有说明

接下来说说目前的问题

首先是结构体定义:

然后m_frame定义:

可以看得出来m_frame是一个结构体,而mex编译的时候是以地址方式传出的,所以,首先,我们传出的时候是这样传出的:

    int *out1;plhs[0] = mxCreateNumericMatrix(1, 1,mxINT32_CLASS , mxREAL);out1 = (int *)mxGetPr(plhs[0]);*out1 = int(&m_frame);

其实这么写是有风险的,但是目前的出错率比较低,我目前也没有找到合适的解决方法,以后找到了再开一篇文吧

可以看得出来,我们传入的指向m_frame地址的指针所在的地址、

当我们想要对结构体进行赋值的时候,需要二次寻址,先贴出代码:

    unsigned int k;k =mxGetScalar(prhs[3]);m_frame = *(TUCAM_FRAME *)(int*)k;

解释一下:

mxGetScalar是直接取值,也就是K是m_frame所在的地址,所以我们直接对其寻址就可以达到我们的目的

加入我们使用*k进行寻址,会报错,说是非法间接寻址

百思不得其解之际,想到了这么一串代码

int data = *(int *) 0x11111; 

试了一下果然不行,嗯,我习惯了,想了一下,应该是类型不匹配

用m_frame的类型把括号里的类型替换点,类型统一就好了

关于C2100间接寻址的问题相关推荐

  1. 与数据相关的运算符和伪指令 offset align ptr type lengthof sizeof label 间接寻址 间接操作数 数组 变址操作数 指针 jmp, loop

    与数据相关的运算符和伪指令 offset 数据标号的偏移量,按字节计算,表示数据标号到数据段开始的距离 .data bVal byte ? wVal word ? dVal dword ? dVal2 ...

  2. 间接寻址级别不同_详解西门子间接寻址之地址寄存器间接寻址

    关于间接寻址分为存储器间接寻址和地址寄存器间接寻址,本文主要针对地址寄存器间接寻址进行详细讲解,关于存储器间接寻址可参见前面文章,链接如下: #详解西门子间接寻址之存储器间接寻址 [地址寄存器间接寻址 ...

  3. C++ 指向指针的指针(多级间接寻址)

    C++ 指向指针的指针(多级间接寻址) #include <iostream>using namespace std;int main () {int var;int *ptr;int * ...

  4. step7db块寻址_step7中的难点:间接寻址示例,中文详细注释。

    step7中的难点:间接寻址示例,中文详细注释. 推荐欢迎纠错,防止误导. FUNCTION "DBtoDB" : VOID //该功能块的作用是把一个数据块中的指定的一批数据,复 ...

  5. 汇编语言-004(LABEL 、间接寻址、变址操作数、指针使用、TypeDef、LOOP、DWORD变量交换高位低位字)

    1: LABEL : 为一个标号定义大小属性,但不分配内存与下一个变量共用内存,与C中UNION类似 .386 .model flat,stdcall.stack 4096 ExitProcess P ...

  6. 间接寻址级别不同_单片机指令系统与寻址方式

    单片机要正常运作,事先需编制程序,再把程序放入存贮器中,然后由CPU执行该程序.程序是由指令组成的,指令的基本组成是操作码和操作数.单片机的品种很多,设计时怎样表示操作码和操作数,都有各自的规定,再有 ...

  7. C++实现的间接寻址

    之前学过,数据描述方法中有公式化描述,链表描述,间接寻址和模拟指针,在之前已经将公式化描述和链表描述通过代码的形式展现出来了,现在贴出简介寻址的代码.其中简介寻址是融合了公式化描述和链表描述的有点,使 ...

  8. 一个具有20位地址和32位字长的存储器_详解西门子间接寻址之存储器间接寻址...

    [地址的概念] 完整的一条指令,应该包含指令符+操作数(当然不包括那些单指令,比如 NOT 等).其中的操作数是指令要执行的目标,也就是指令要进行操作的地址. 我们知道,在 PLC 中划有各种用途的存 ...

  9. 寄存器间接寻址缺点_详解西门子间接寻址之地址寄存器间接寻址

    关于间接寻址分为存储器间接寻址和地址寄存器间接寻址,本文主要针对地址寄存器间接寻址进行详细讲解,关于存储器间接寻址可参见前面文章,链接如下: #详解西门子间接寻址之存储器间接寻址 [地址寄存器间接寻址 ...

  10. 80X86CPU独立编址方式的两种寻址方式——直接寻址直接写和间接寻址DX

    直接寻址 :可寻址256个端口,编为00H–0FFH OUT 80H,AL IN AL,0FFH • 间接寻址: 使用16位地址码,从0000H- 0FFFFH,I/O端口地址用间接方式给出. MOV ...

最新文章

  1. 用Ajax请求服务器的图片,并显示在浏览器中(转)
  2. R可视化绘制卡方分布图(Chi-Square Distribution)
  3. 【408预推免复习】计算机组成原理之指令系统
  4. 糗事百科的网络爬虫(v0.2)源码及解析 .
  5. 一个商场营销经理的实习总结
  6. ICML 2020 | 第四范式基于AutoML的深度网络记忆性自动化挖掘
  7. cocos2d_android 瞬间动作
  8. php正则表达式 包含特殊字符,php正则表达式的特殊字符含义
  9. 从EF三层 到 DDD领域驱动设计(1)--------------数据操作
  10. LVM 逻辑卷管理精讲
  11. vue-cli项目中单文件组件引入bootstrap.js异常的解决方案
  12. [WPF系列]-DataBinding(数据绑定) 自定义Binding
  13. 使用HTML5里的classList操作CSS类
  14. Android开发+Java基础视频教程——第一讲
  15. ghost错误代码大全
  16. 大圆航线、恒向线绘制
  17. python面板数据模型_面板数据模型选择问题
  18. 站在巨人的肩膀上--邵泓鑫
  19. matlab处理各种数据、文件
  20. 什么软件测试iphone性能,iPhone浏览器性能测试

热门文章

  1. 电脑查看wifi密码
  2. office word 文件未找到:MathPage.WLL
  3. 获取select选中的值php,js如何获取select标签选中的值
  4. 前端 禁止微信调整字体大小
  5. Mysql8数据库导到Mysql5数据库,报错Unknown collation: 'utf8mb4_0900_ai_ci'
  6. 微信开发 · 缓存问题
  7. python去除图片马赛克_【Night Beam】去除文本马赛克的随机算法!
  8. python抢购软件/插件/脚本附完整源码
  9. 阿里云域名和ip绑定具体内容步骤
  10. 计算机低级格式化,硬盘格式化之低级格式化