嵌入式系統(tǒng)的遠(yuǎn)程調(diào)試
在接收到來自Telnet客戶端發(fā)來的數(shù)據(jù)后發(fā)送到串口之前,必須掃描接收到數(shù)據(jù)中是否有IAC轉(zhuǎn)義字符。如果有,必須將它們?nèi)サ?,而且對于定義的如控制電源和I/O的命令必須進(jìn)行相關(guān)的操作。反之,從串口接收的數(shù)據(jù)在發(fā)送到Telnet客戶端之前,必須在所有的0xFF字符之前多加一個0xFF。下面是對從Telnet接收的數(shù)據(jù)進(jìn)行掃描過程的代碼。
![](http://uphotos.eepw.com.cn/fetch/20130729/151545_2_0.jpg)
這里主要使用了Winsock的API來完成Telnet部分的數(shù)據(jù)讀取;串口部分是通過將串口虛擬成一個文件,通過文件讀寫的API來完成的。此外,為了對串口其他控制線的控制,使用了GetCommState( )和SetCommState ( )兩個Windows API來完成。
在實(shí)驗(yàn)中,使用這樣一套遠(yuǎn)程調(diào)試系統(tǒng),曾與遠(yuǎn)在韓國的設(shè)計(jì)中心進(jìn)行聯(lián)合調(diào)試并進(jìn)行嵌入式系統(tǒng)固件程序更新下載,雖然相對于本地下載速度慢了很多,但是仍然比其他方式(如電子郵件+手工下載)更為便捷,結(jié)果更為直觀。
4 總 結(jié)
使用這樣一套軟硬件系統(tǒng)來完成嵌入式系統(tǒng)的遠(yuǎn)程調(diào)試,既節(jié)省了大量的人力物力,又節(jié)約了開發(fā)的時間。此外,如果它和配套的測試軟件結(jié)合,可以突破一臺電腦只有一兩個串口,同時只能測試一個嵌入式系統(tǒng)的局限,使一臺主機(jī)同時可以和很多個嵌入式系統(tǒng)相連,完成自動測試和協(xié)同測試。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論