嵌入式系統/ARM技術(shù):嵌入式測試中數據獲取的幾種方式
經(jīng)過(guò)我們實(shí)際摸索發(fā)現, 大概我們可以把數據的上載分為3 種方式:TestAge 中國軟件測試時(shí)代
1. 實(shí)際的物理通道
2. 開(kāi)發(fā)工具IDE的虛擬IO功能
3. 讀取內存區數據
下面我們對這幾種方式做一些簡(jiǎn)單的介紹:
實(shí)際的物理通道
這種方式就是目標機和主機之間具備物理的通信方式, 比如以太網(wǎng), 串口,并口, USB等, 這幾種方式, 在測試的時(shí)候我們可以直接使用這種通信程序, 和主機通信, 實(shí)現測試數據上載, 一般情況下,測試工具的庫中IO函數使用fprintf(), 那么在這種方式下,就需要修改測試工具的庫, 假設以太網(wǎng)的發(fā)數據的函數是Netsend(), 那么我們需要定制fprintf, 使它調用Netsend(), 這樣就可以實(shí)現數據上傳了. 這種方式最方便但是要求系統必須已經(jīng)具備這種通信方式和通信軟件, 一般適用于系統級的測試.
開(kāi)發(fā)工具虛擬IO
開(kāi)發(fā)嵌入式軟件一般需要支持交叉開(kāi)發(fā)方式的開(kāi)發(fā)工具, 大多數這種開(kāi)發(fā)工具具備編譯,下載,調試的功能, 測試時(shí)也可以借助開(kāi)發(fā)工具來(lái)下載測試程序, 需要注意的是, 有些高級的開(kāi)發(fā)工具IDE, 具備虛擬IO功能, 給測試帶來(lái)了很大的方便, 比如說(shuō): Tornado, TI CCS,在Tornado的shell中運行測試程序時(shí), 可以把printf的內容打印到消息窗口中, CCS可以支持fprintf,直接在主機上生成測試數據文件, 用戶(hù)在使用這些工具的時(shí)候, 就像在主機上測試一樣, 完全可以理由開(kāi)發(fā)工具賦予的模擬IO功能.
讀取內存數據
假設目標系統既沒(méi)有物理通信方式, 開(kāi)發(fā)工具也沒(méi)有虛擬IO功能, 我們還可以采用讀取內存數據的方式, 我們可以開(kāi)辟一塊足夠大的緩存, 修改測試工具的庫, 把輸出的數據寫(xiě)入buffer中, 在測試過(guò)程中或者測試執行后, 使用開(kāi)發(fā)工具讀取內存的功能把緩存中的數據讀取出來(lái),在主機上保存成文件,這種方式需要系統有足夠的內存資源, 但是適用性很廣,因為幾乎所有的開(kāi)發(fā)調試工具都具備這樣的功能.
總之嵌入式軟件測試很復雜, 需要根據實(shí)際情況采取不同的策略. 本文只是單獨就數據讀取的問(wèn)題做了一些討論.
評論