了解LABVIEW的朋友们都知道,LABVIEW供给了类似于汇编语言的IN OUT指令,能够直接操作计算机端口,这在一般编程语言中是制止的, 表现了LABVIEW强壮的硬件控制才能。
除了直接操作端口外,单个状况下咱们或许会遇到直接读写物理内存的问题。LABWINDOWS/CVI供给了几个有关物理内存的函数,天然咱们能够经过CIN或许DLL,使LABVIEW直接具有控制物理内存的才能,但这不是咱们今日要探究的。
下面是CVI支撑的IO端口操作函数和有关物理内存操作的函数列表和简略阐明。
Port IO Input Byte From PortinpInput Word From PortinpwInput Double Word From PortinpdOutput Byte To PortoutpOutput Word To PortoutpwOutput Double Word To Port
outpd
Physical Memory Access Read From Physical MemoryReadFromPhysicalMemoryRead From Physical Memory ExReadFromPhysicalMemoryExWrite To Physical MemoryWriteToPhysicalMemoryWrite To Physical Memory ExWriteToPhysicalMemoryExMap Physical MemoryMapPhysicalMemoryUnmap 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,这阐明了这些隐含的函数是彻底可用的。这些函数运用时有必要慎重,下面给出读物理内存函数的具体装备,以防出现问题。