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

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