基于ARM的LCU測試系統的設計
3.5 數據壓縮
根據設計,直觀上可以定義觸點為一個這樣的類:內容包括一個BOOL變量和一個指針。BOOL變量表示觸點的狀態值,指針指向下一個觸點的位置。但是這樣做會導致文件過于龐大,所以要進行數據的壓縮。
BOOL變量以最后位置0或置1來表明FALSE或TRUE的狀態,但BOOL變量前面所有的位都沒有利用上。因此,可以把BOOL變量前面所有的位都用來表示觸點的狀態,這就是壓縮的基本思想。同時壓縮的還有指針。因為不是數組,內存地址可能不連續,所以不需要指針指明下一個觸點的位置,因此指針也可以省略。
壓縮效率分析:因為布爾值通常定義為8位長度,現在只用1位來表示,所以壓縮的極限值應該可以達到8倍。這樣的壓縮比率下能夠有效地節約測試資料的存儲大小。
3.6 數據存儲方式考查
必須考慮數據的存儲方式,不同的存儲方式直接影響了位的操作。因此,在執行位操作之前一定要明確存儲方式,小頭(Little-endian)模式對數據的存放方式是從低字節到高字節,而大頭(Big-endian)模式對數據的存放方式是從高字節到低字節。
聯合體(union)的存放順序是所有成員都從低地址開始存放,整數定義通常占用4字節32位,char定義通常只占用1字節8位。一般認為,大頭模式的表達方式更符合生活中的數學思維習慣,所以不妨在小頭模式的平臺上做轉換工作,把表達方式換算成大頭模式。定義一個SWAP轉換工作宏,由它把對應字節調換位置(最高與最低互調,中間兩個互調)從而得到不同的模式。
本系統是基于Linux操作系統開發的通用LCU檢測軟件,具有通用性、便攜性和靈活性的特點。采用Linux操作系統平臺,能夠進一步降低成本。ARM嵌入式系統本身對于軟件和數據信息具有良好的保密措施,適合保存商業信息。本系統還采用了測試項目與程序分離的軟件模塊設計方案,使測試的種類大大增加,不管是同一種車型的測試項目變更,還是其他車型的測試,或者是更廣泛的一般性LCU系統的測試,都能夠一一得以解決,具有顯著的經濟和社會效益。
本文引用地址:http://www.104case.com/article/152632.htm
評論