新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > LABVIEW的深入探索之LABVIEW能否讀寫物理內存

        LABVIEW的深入探索之LABVIEW能否讀寫物理內存

        作者: 時間:2017-01-09 來源:網絡 收藏
        熟悉LABVIEW的朋友們都知道,LABVIEW提供了類似于匯編語言的IN OUT指令,可以直接操作計算機端口,這在一般編程語言中是禁止的, 體現了LABVIEW強大的硬件操控能力。

        本文引用地址:http://www.104case.com/article/201701/337242.htm

        除了直接操作端口外,個別情況下我們可能會遇到直接讀寫物理內存的問題。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,這說明了這些隱含的函數是完全可用的。這些函數使用時必須謹慎,下面給出讀物理內存函數的詳細配置,以防出現問題。



        關鍵詞: LABVIEW物理內

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 富阳市| 钦州市| 彩票| 京山县| 海门市| 高安市| 忻城县| 阳高县| 石首市| 邓州市| 富顺县| 外汇| 怀安县| 九台市| 武清区| 通州区| 博野县| 改则县| 平昌县| 嘉祥县| 山丹县| 永胜县| 定陶县| 多伦县| 云阳县| 新津县| 盘锦市| 赤水市| 永兴县| 临夏市| 恩施市| 买车| 蕲春县| 陕西省| 巨野县| 中江县| 大方县| 白玉县| 重庆市| 临沧市| 泸州市|