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