嵌入式系統的遠程調試
在接收到來自Telnet客戶端發來的數據后發送到串口之前,必須掃描接收到數據中是否有IAC轉義字符。如果有,必須將它們去掉,而且對于定義的如控制電源和I/O的命令必須進行相關的操作。反之,從串口接收的數據在發送到Telnet客戶端之前,必須在所有的0xFF字符之前多加一個0xFF。下面是對從Telnet接收的數據進行掃描過程的代碼。

這里主要使用了Winsock的API來完成Telnet部分的數據讀取;串口部分是通過將串口虛擬成一個文件,通過文件讀寫的API來完成的。此外,為了對串口其他控制線的控制,使用了GetCommState( )和SetCommState ( )兩個Windows API來完成。
在實驗中,使用這樣一套遠程調試系統,曾與遠在韓國的設計中心進行聯合調試并進行嵌入式系統固件程序更新下載,雖然相對于本地下載速度慢了很多,但是仍然比其他方式(如電子郵件+手工下載)更為便捷,結果更為直觀。
4 總 結
使用這樣一套軟硬件系統來完成嵌入式系統的遠程調試,既節省了大量的人力物力,又節約了開發的時間。此外,如果它和配套的測試軟件結合,可以突破一臺電腦只有一兩個串口,同時只能測試一個嵌入式系統的局限,使一臺主機同時可以和很多個嵌入式系統相連,完成自動測試和協同測試。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論