<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks入門(mén)(3)

          嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks入門(mén)(3)

          ——
          作者: 時(shí)間:2007-02-28 來(lái)源:天極網(wǎng) 收藏
          3. 建立調(diào)試環(huán)境

            3.1配置FTP服務(wù)器

            宿主機(jī)上的FTP服務(wù)器用于在系統(tǒng)成功引導(dǎo)后,下載VxWorks的運(yùn)行時(shí)映象,最好使用Tornado開(kāi)發(fā)環(huán)境自帶的FTP服務(wù)軟件。

            如圖11,打開(kāi)Tornado FTP Server,選擇“Security”菜單下的“Users/Rights”子菜單,創(chuàng)建User Name為“target”,修改“Home Directory”為“D:”(即DEFAULT_BOOT_LINE參數(shù)中所指定VxWorks映像目錄),修改用戶(hù)名為“target”,對(duì)應(yīng)密碼為“vxworks”,點(diǎn)擊“Done”按鈕完成修改,F(xiàn)TP服務(wù)就啟動(dòng)了。

            

            為了便于觀察引導(dǎo)程序是否從FTP上下載了VxWorks映像,最好打開(kāi)FTP Server的日志功能。選擇“Logging”菜單下的“Logging Options”子菜單,其中除了“Winsock Calls”外,讓其他選項(xiàng)全都處于開(kāi)啟狀態(tài)。保持FTP Server窗口處于打開(kāi)狀態(tài),即保證FTP服務(wù)器處于運(yùn)行狀態(tài)。

            虛擬機(jī)從軟盤(pán)啟動(dòng),接下來(lái)會(huì)下載服務(wù)器上的D:vxworks映像,服務(wù)器的FTP會(huì)有相關(guān)的log,如圖12:

             點(diǎn)擊放大此圖片

          圖12 FTP服務(wù)器

            3.2 配置target server

            如圖13,打開(kāi)您的Tornado開(kāi)發(fā)環(huán)境,選擇“Tools->Target Server->Configure”菜單,在“Description”中任意填寫(xiě)一個(gè)名字,這里是“net00”;在“Available Back”中選擇“wdbrpc”,并在下面的IP地址框中填寫(xiě)目標(biāo)機(jī)的IP地址,這里是“192.168.80.254”(由DEFAULT_BOOT_LINE參數(shù)決定);將“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一項(xiàng)中選擇您的映象的完整路徑,這里是“D:VxWorks”(由DEFAULT_BOOT_LINE參數(shù)決定)。

            圖13 配置Target Server

            完成以上兩項(xiàng)配置,如果目標(biāo)機(jī)已經(jīng)啟動(dòng),點(diǎn)擊“Launch”按鈕,就可以啟動(dòng)Target Server了。

            再回到Tornado開(kāi)發(fā)環(huán)境,在工具條上的Target Server下拉框列表中選擇“192.168.80.169@host”。這時(shí)您會(huì)發(fā)現(xiàn)工具條中一些原先處于“禁用”狀態(tài)的工具按鈕,現(xiàn)在都已經(jīng)處于“激活”狀態(tài)了。

            試一試,我們打開(kāi)TShell,并運(yùn)行“i”命令察看目標(biāo)機(jī)上當(dāng)前運(yùn)行的任務(wù),效果如圖14:

            點(diǎn)擊放大此圖片

          圖14 在TShell中運(yùn)行命令

          4. 編寫(xiě)和調(diào)試應(yīng)用程序

            現(xiàn)在,編寫(xiě)應(yīng)用程序的所有條件已經(jīng)完全具備了。我們來(lái)編寫(xiě)一個(gè)簡(jiǎn)單的應(yīng)用。

            如圖15,建立一個(gè)名為“test”的可下載的應(yīng)用程序模塊:

            圖15建立可下載的應(yīng)用程序模塊

            如圖16,注意工具鏈的選擇,應(yīng)該為PENTIUMgnu:

            圖16 選擇PENTIUMgnu工具鏈

            這個(gè)時(shí)候工程中還一個(gè)文件都沒(méi)有,我們編寫(xiě)一個(gè)簡(jiǎn)單的程序:

          以下是引用片段:
            #include 
            void test(void)
            {
            int i = 0;
            while(1)
            {
            printf ("%dt",i);
            i++;
            if(i==10000)
            {
            break;
            }
            }
            }

            編譯生成了test.out,下載到目標(biāo)板,在TShell中運(yùn)行test函數(shù),效果如圖17。

            點(diǎn)擊放大此圖片

          圖17 運(yùn)行自己編寫(xiě)的程序

            下面我們以Run Task模式運(yùn)行上述的test()函數(shù),并設(shè)置在入口點(diǎn)即斷點(diǎn),如圖18:

            圖18 運(yùn)行test任務(wù)

            此后,我們可以像使用任何其它的基層開(kāi)發(fā)環(huán)境一樣在我們編寫(xiě)的應(yīng)用程序中進(jìn)行所有如下的調(diào)試行為:

            (1) 設(shè)置斷點(diǎn)

            (2) 單步運(yùn)行

            (3) 察看變量

            (4) 察看內(nèi)存

            (5) 察看寄存器

            接下來(lái),enjoy yourself in VxWorks!

            附錄:軟件及驅(qū)動(dòng)下載地址

            VMware:

            http://www.vmware.com/download/ws/

            RamDiskNT 1.5:

            http://soft.netnest.com.cn/downinfo/netnest1823.html

            網(wǎng)卡驅(qū)動(dòng):

            http://www.amd.com/us-en/ConnectivitySolutions/ProductInformation/0,,50_2330_6629_2452^2454^2488,00.html



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();