系統(tǒng)調(diào)試信息的顯示方法
void myputs(char str) /*顯示一個(gè)字符*/
{
while((*str)!='0')myputchar('str++);
}
/*顯示任意進(jìn)制的數(shù)值,b為二、八、十、十六等進(jìn)制數(shù)*/
void myprintn(int,n,int b)
{
if(b= =16){ myprintx(n); return; }
if(n0){ myputchar('-'); n=-n; };
if(n/b)
myprintn(n/b,b);
myputchar(n%b+'0');
}
void myprintx(int n) /*以十六進(jìn)制顯示1個(gè)數(shù)字*/
{
signed char i;
for(i=3;i>=0;i--)
if(((n》i*4)0x0f)>=10)
/*當(dāng)10,11…時(shí),顯示'a','b',…'f',*/
myputchar(((n》i*4)0x0f)-10+'a');
else myputchar(((n》i*4)0x0f)+'0');
}
/*
*在很多嵌入式系統(tǒng)中,并不存在PC一樣的標(biāo)準(zhǔn)顯示設(shè)備,
*通過修改該函數(shù),可以將字符“ch”發(fā)送到串口,或者目
*標(biāo)系統(tǒng)中的LED、LCD等顯示器件。這樣,就可以在脫
*離開發(fā)系統(tǒng)情況下顯示調(diào)試信息,從而調(diào)試目標(biāo)系統(tǒng)的軟
*件或硬件。
*/
void myputchar(int ch)
{
……;/*此函數(shù)可供修改,將字符“ch”送到SBUF或其他顯示器件就可以了*/
}
4 超級終端軟件的使用
超級終端,即計(jì)算機(jī)顯示終端,是計(jì)算機(jī)系統(tǒng)的輸入、輸出設(shè)備。計(jì)算機(jī)顯示終端伴隨主機(jī)時(shí)代的集中處理模式而產(chǎn)生,并隨著計(jì)算技術(shù)的發(fā)展而不斷發(fā)展。迄今為止,計(jì)算技術(shù)經(jīng)歷了主機(jī)時(shí)代、PC時(shí)代和網(wǎng)絡(luò)計(jì)算時(shí)代這三個(gè)發(fā)展時(shí)期,終端與計(jì)算技術(shù)發(fā)展的三個(gè)階段相適應(yīng),應(yīng)用也經(jīng)歷了字符啞終端、圖形終端和網(wǎng)絡(luò)終端這三個(gè)形態(tài)。超級終端是一個(gè)通用的串行交互軟件,很多嵌入式應(yīng)用的系統(tǒng)有與之交換的相應(yīng)程序,通過這些程序,可以通過超級終端與嵌入式系統(tǒng)交互,使超級終端成為嵌入式系統(tǒng)的“顯示器”。
打開Windows的“超級終端”軟件,再打開“hypertrm”,新建一個(gè)終端會(huì)話。在該會(huì)話的“屬性u35774設(shè)置u32456終端仿真”菜單下,將終端仿真類型設(shè)置為VT100[5];在“屬性u35774設(shè)置u32456終端設(shè)置u23383字符集”菜單下設(shè)置字符集為“ASCII”;在“屬性u36830連接到u37197配置u24120常規(guī)u26368最快速度”下設(shè)置通信波特率和目錄系統(tǒng)一致,并將該對話框下“僅以該速度連接打開”設(shè)置選中;在“屬性u36830連接到u37197配置u36830連接u36830連接首選項(xiàng)”下設(shè)置傳送數(shù)據(jù)位數(shù)、校驗(yàn)方式。
超級終端的原理是將用戶輸入隨時(shí)發(fā)向串口(采用TCP協(xié)議時(shí)是發(fā)往網(wǎng)口,這里只說串口的情況),但并不顯示輸入。它顯示的是從串口接收到的字符。所以,嵌入式系統(tǒng)的相應(yīng)程序應(yīng)該完成的任務(wù)便是:
1、將自己的啟動(dòng)信息、過程信息主動(dòng)發(fā)到運(yùn)行有超級終端的主機(jī);
2、將接收到的字符返回到主機(jī),同時(shí)發(fā)送需要顯示的字符(如命令的響應(yīng)等)到主機(jī)。
在用超級終端顯示時(shí),唯一要求發(fā)送的數(shù)據(jù)必須以ASCII碼形式發(fā)送(上述printf()函數(shù)就是如此)。如果要求交互式雙向數(shù)據(jù)傳送,請參考VT100文檔[5]。對于字符和控制的說明,這里不再描述。
評論