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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 通過網(wǎng)絡(luò)添加應(yīng)用程序到44B0系統(tǒng)全攻略2

          通過網(wǎng)絡(luò)添加應(yīng)用程序到44B0系統(tǒng)全攻略2

          作者: 時(shí)間:2016-11-20 來源:網(wǎng)絡(luò) 收藏
          四、筆者在使用ftp時(shí),由于沒有目標(biāo)板的uClinux的用戶名和密碼,所以登錄失??;如果你沒有遇到這樣的問題,最好不要按照下面的方法來做!
          下面是我總結(jié)了的解決方法:
            在uClinux的user目錄里面有tftp和ftp兩個(gè)服務(wù)器,可以實(shí)現(xiàn)遠(yuǎn)程文件傳輸功能,tftp比較簡(jiǎn)單,不需要用戶名和密碼,ftp則比較完整,可以檢測(cè)用戶名和密碼。
            在編譯uClinux時(shí),在make menuconfig里選擇應(yīng)用程序要選上ftpd,同時(shí)在busybox里要選上chroot,在tinylogin里要選上passwd,之后make user_only,make romfs,make image,make就可以生成uClinux啟動(dòng)時(shí)自動(dòng)運(yùn)行ftpd程序的image了,不過使用ftp登陸時(shí)要用到檢測(cè)用戶的passwd文件,而passwd文件是由tinylogin生成的。
            在Tinylogin里用的passwd文件是在/etc目錄下,而uc-libc里ftpd用的庫函數(shù)getpwnam所檢測(cè)的passwd文件是在/etc/config下,所以我就直接修改了lib/libc/getent/getpwnam.c文件,把里面passwd文件完整路徑定義為/etc/passwd,這樣重新編譯make lib_only,make user_only,make romfs,make image,make后生成的image就可以實(shí)現(xiàn)ftp登陸了。

          我改了一下uClinuxuClinux44b0uClinux-distuserftpd 下的auth.c的源代碼:

          auth_user (const char *name,struct credentials *pcred)
          {

          return 0;



          auth_pass (const char *passwd, struct credentials *pcred)
          {

          return 0;


          這樣,登錄ftp時(shí),你就可以輸入任意的用戶名和密碼了。

          至于telnet,不用用戶名和密碼,在運(yùn)行里輸入telnet 192.168.0.100就可登錄到目標(biāo)板的uClinux;不過telnet的鍵盤輸入不太好,退格不正常,不建議使用。

          比較奇怪的是,經(jīng)過上面這樣做,串口終端的目錄顯示也正常了(原來多了點(diǎn)不應(yīng)該顯示的符號(hào))!

          在運(yùn)行里輸入ftp 192.168.0.100登錄目標(biāo)板uClinux的ftp



          輸入任意的用戶名和密碼,下面是登錄成功后的界面:


          退出輸入bye命令,其它命令可以輸入help命令來顯示。

          五、XP系統(tǒng)主機(jī)通過FTP訪問目標(biāo)板的uClinux
          打開FlashFXP,點(diǎn)擊快速連接,在出現(xiàn)的對(duì)話框里輸入目標(biāo)板的IP地址,這里是192.168.0.100,端口號(hào)為21,用戶名不用填,記得打上Anonymous前面的勾,其它不用填,之后點(diǎn)擊連接。




          OK,連接上了!可以看到目標(biāo)板uClinux的目錄!之后把主機(jī)的查看文件夾設(shè)為VM5.0虛擬機(jī)中的Red Hat Linux與Windows XP的共享文件夾,方便以后的文件的傳輸!



          在FlashFXP,雙擊目標(biāo)板uClinux的var或tmp目錄,進(jìn)入var或tmp目錄(因?yàn)関art和tmp目錄建立在RAM中,是可寫的,當(dāng)然斷電后資料就會(huì)消失,這樣的方式常用于調(diào)試),之后可以把可執(zhí)行文件拖到var或tmp目錄中完成文件的傳輸。
          此時(shí),可執(zhí)行文件已傳輸至目錄/var或/tmp下,但文件的可執(zhí)行屬性未被設(shè)置,添加文件的可執(zhí)行屬性,鍵入命令:
          chmod755armtest(armtest為可執(zhí)行文件的文件名)
          chmod是一個(gè)文件權(quán)限修改的命令,在文件創(chuàng)建的時(shí)候會(huì)自動(dòng)設(shè)置存取權(quán)限,若是這些默認(rèn)權(quán)限無法適合企業(yè)環(huán)境的需求,就可以利用chmod命令來修改存取權(quán)限。通常在權(quán)限修改的時(shí)候可以用兩種方式表示權(quán)限類,數(shù)字表示法和文字表示法。
          這里我們采用的是數(shù)字表示法,就是說將讀取(r),寫入(w)和執(zhí)行(x)分別以4,2,1來代表,沒有授予的權(quán)限的部分就表示值為0,然后再把所授予的權(quán)限先加而成。表7.4為讀者列出了幾個(gè)例子。


          每三位字符為一組,這樣權(quán)限可以被分為三組,第一組表示此文件擁有者的存取權(quán)限,第二組表示該文件擁有者所屬組成員的存取權(quán)限,最后一組表示該文件擁有者所屬組之外的用戶存取權(quán)限。希望讀者能夠研究清楚權(quán)限的分配。
          這里所鍵入的命令表示授予文件擁有者讀取、寫入、執(zhí)行的權(quán)限,而該文件擁有者所屬組成員和該文件擁有者所屬組之外的用戶只擁有讀取、執(zhí)行的權(quán)限。
          執(zhí)行程序armtest,鍵入命令:
          ./ armtest (呵呵,目標(biāo)板上的LED終于閃了)

          六、Linux系統(tǒng)主機(jī)通過FTP訪問目標(biāo)板的uClinux
          在RedHat Linux 9.0系統(tǒng)運(yùn)行g(shù)tfp軟件,有關(guān)網(wǎng)絡(luò)配置的問題請(qǐng)參看《Vmware虛擬機(jī)+RedHat 9.0 Linux網(wǎng)絡(luò)配置》:



          輸入目標(biāo)板系統(tǒng)的IP地址和設(shè)置端口號(hào)為21,登錄即可:




          七、在XP系統(tǒng)主機(jī)架設(shè)FTP服務(wù)器
          在XP系統(tǒng)主機(jī)架設(shè)FTP服務(wù)器后,目標(biāo)板的uClinuxXP就可以通過FTP訪問XP系統(tǒng)主機(jī),自行下載文件,不過方法不如FlashFXP好用。
          先上網(wǎng)一個(gè)下載wftpd.exe文件,啟動(dòng)該軟件,選擇菜單”Security”->”users and Rrights”
          在彈出來的對(duì)話框里點(diǎn)擊“New User”,接著在彈出對(duì)話框輸入你想新建的用戶名,



          最后在彈出來的對(duì)話框輸入你想設(shè)置的登錄密碼



          為了以后輸入方便,讓它空著也可以^_^
          點(diǎn)擊OK后回到第一個(gè)對(duì)話框:




          在“User Name”里選擇剛才新建的用戶,點(diǎn)擊“Right<<”按鈕,設(shè)置好用戶的權(quán)限和可訪問的目錄,最好點(diǎn)擊“Done”按鈕完成配置和退出。
          至些在XP系統(tǒng)主機(jī)的FTP服務(wù)器總算架設(shè)好了!

          八、目標(biāo)板的uClinux通過FTP訪問XP系統(tǒng)主機(jī)
          當(dāng)目標(biāo)板與XP系統(tǒng)主機(jī)已經(jīng)正確建立連接并且在XP系統(tǒng)主機(jī)架設(shè)好FTP服務(wù)器后,先進(jìn)入目標(biāo)板的uClinux系統(tǒng)的可寫目錄var或tmp(這個(gè)別忘了),并登錄到XP系統(tǒng)主機(jī):
          cdvar
          ftp192.168.0.80
          此時(shí)輸入XP系統(tǒng)主機(jī)上的用戶名及密碼,便與XP系統(tǒng)主機(jī)建立了FTP連接。為傳輸二進(jìn)制文件,鍵入命令:
          Binary
          超級(jí)終端會(huì)顯示:
          200 Type set to I
          這里請(qǐng)各位注意:在用FTP進(jìn)行文件傳輸?shù)臅r(shí)候,一定要選好文件傳輸?shù)哪J?,F(xiàn)TP缺省模式為二進(jìn)制模式,但是為了保險(xiǎn)起見,還是手動(dòng)把傳輸模式顯式改寫為二進(jìn)制模式。通常的txt,html和絕大多數(shù)PS文件都是文本格式的,而其他的可執(zhí)行文件,壓縮文件都是二進(jìn)制格式。兩種格式之間要用ascii和binary命令切換,兩者都可以適當(dāng)縮寫。
          傳輸已編譯好的可執(zhí)行文件(如armtest)到目標(biāo)板,鍵入如下所示命令:
          getarmtest
          退出FTP服務(wù),鍵入如下所示命令:
          bye
          設(shè)置文件權(quán)限和執(zhí)行程序請(qǐng)參考第五節(jié)。

          九、目標(biāo)板上網(wǎng)!
          首先用網(wǎng)線連接你的目標(biāo)板和外網(wǎng);
          使用SecureCRT這個(gè)軟件作為目標(biāo)板的串口顯示終端;SecureCRT是可以顯示顏色的,也比普通的串口終端智能。
          輸入下面的命令設(shè)置路由IP
          route add default gw 192.168.0.1
          最后使用telnet命令登錄你要登錄的主機(jī),在此登錄的是華南木棉bbs
          輸入下面的命令:
          telnet 202.112.17.137




          十、寫在最后
          這種方法在應(yīng)用程序的開發(fā)中是比較有用的,使用這種方式可以使用戶在宿主機(jī)的開發(fā)環(huán)境下,編譯代碼,但編譯出來的flat格式的文件并沒有放到目標(biāo)系統(tǒng)的FLASH存儲(chǔ)器,而是在系統(tǒng)的SDRAM中運(yùn)行,這就大大節(jié)省了調(diào)試的時(shí)間,內(nèi)核編譯只需要進(jìn)行一次,使開發(fā)人員能夠?qū)⒏嗟木ν度氲綉?yīng)用程序的開發(fā)中來。
          但由于目前所使用的uClinux操作系統(tǒng)內(nèi)核采用ROMFS作為其根文件系統(tǒng),當(dāng)目標(biāo)系統(tǒng)的uClinux啟動(dòng)運(yùn)行以后,其目錄大多數(shù)是建在FLASH存儲(chǔ)器中,因而是不可寫的,只有var、tmp等少數(shù)幾個(gè)目錄是建立在SDRAM,是可讀寫的,但若目標(biāo)系統(tǒng)掉電,內(nèi)容就丟失了,因此只能作為應(yīng)用程序調(diào)試之用,當(dāng)應(yīng)用程序調(diào)試完成后,還應(yīng)將其寫入FLASH存儲(chǔ)器。當(dāng)然,若能在目標(biāo)系統(tǒng)中使用JFFS/JFFS2,用以代替ROMFS作為其根文件系統(tǒng),則整個(gè)目標(biāo)系統(tǒng)就像有磁盤一樣方便,用戶應(yīng)用程序的加載再也不用像前面介紹的方式進(jìn)行了。關(guān)于JFFS/JFFS2文件系統(tǒng)的建立,請(qǐng)讀者參考相關(guān)技術(shù)資料。


          關(guān)鍵詞: 網(wǎng)絡(luò)44B0系

          評(píng)論


          技術(shù)專區(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); })();