测试测量
返回首页

LABVIEW的深入探索之LABVIEW能否读写物理内存

2015-08-25 来源:eefocus

熟悉LABVIEW的朋友们都知道,LABVIEW提供了类似于汇编语言的IN OUT指令,可以直接操作计算机端口,这在一般编程语言中是禁止的, 体现了LABVIEW强大的硬件操控能力。

 

除了直接操作端口外,个别情况下我们可能会遇到直接读写物理内存的问题。LABWINDOWS/CVI提供了几个有关物理内存的函数,自然我们可以通过CIN或者DLL,使LABVIEW间接具有操控物理内存的能力,但这不是我们今天要探索的。

下面是CVI支持的IO端口操作函数和有关物理内存操作的函数列表和简单说明。

Port IO Input Byte From Port inp Input Word From Port inpw Input Double Word From Port inpd Output Byte To Portoutp Output Word To Port outpw Output Double Word To Port

outpd

 

 

Physical Memory Access Read From Physical Memory ReadFromPhysicalMemory Read From Physical Memory ExReadFromPhysicalMemoryEx Write To Physical Memory WriteToPhysicalMemory Write To Physical Memory ExWriteToPhysicalMemoryEx Map Physical Memory MapPhysicalMemory Unmap Physical Memory

UnMapPhysicalMemory

 

 

过去一般的做法是把上述的函数封装成DLL或者创建CIN。

如果我们跟踪LV中的端口操作函数,可以发现LV中的IN OUT实际上也是通过调用一个DLL中的函数,从函数名称上也应该是封装了上述的函数。

实际上,这个DLL文件包含了很多函数,只是没有直接向用户敞开,下面是隐藏的函数列表。

从DLL文件名称上看,该DLL文件应该是重新封装的打包DLL..

下面我们探索一下这些隐含的函数是否直接可用,由于直接操控物理内存,使用时要特别注意。看看CVI中ReadFromPhysicalMemory函数的原型定义。

--------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------

经常使用计算机端口操作的朋友们可能经常会在BIOS中查看计算机串口、并口的端口地址。COM1和COM2的地址一般为0X3F8和0X2F8,计算机并口的数据寄存器地址一般为0X378,早期计算机也有0X3BC的情况。这些端口地址在计算机启动后,会直接映射到0X400开始的一段内存空间上。DOS时代可以直接通过DEBUG来查看,下面我们通过读物理内存函数来验证一下这些函数是否可用。

从实验的结果上看,正确返回了0X3F8 0X2F8 0X378,这说明了这些隐含的函数是完全可用的。这些函数使用时必须谨慎,下面给出读物理内存函数的详细配置,以防出现问题。

 

 

进入测试测量查看更多内容>>
相关视频
  • LABVIEW数据采集随书视频

  • 微机电系统技术

  • 周公系列讲座——示波器讲解

  • 了解传感器融合和追踪

  • 电子设计竞赛中测控类题目应用对策

  • 电子测量与智能仪器(浙江大学)

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 如何构建一个触摸传感器电路

  • 基于ICL296的大电流开关稳压器电源电路

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章