1 基礎(chǔ)知識
env 工具和 源碼 所處的目錄都不能有中文或空格請先檢查??!
code 是一個命令 點 ‘.’ 是一個參數(shù)表示當(dāng)前目錄,中間有一個空格。
romfs ramfs 文件系統(tǒng)中的文件名和c的變量的命名一樣,只能由英文字母開頭且僅包含數(shù)字和下劃線。
修改 qemu.bat 里面的參數(shù)時,要注意那是一行參數(shù)中間沒有空格(復(fù)制粘貼完要注意)。其中ifname=tap 的意思就是虛擬TAP網(wǎng)卡的名字重命名為了 tap.
終端顯示 ?[m?[ 亂碼
圖中的 ?[m?[ 是終端字體顏色的代碼,顯示出來是因為終端不支持顏色顯示。
添加環(huán)境變量方法
首先請確認(rèn)下面紅框里的環(huán)境變量是否都有。
注意:修改完環(huán)境變量之后,要注銷或重啟電腦才能使環(huán)境變量生效
添加環(huán)境變量方法
獲取不到 IP 地址
獲取不到 IP 地址的可能有很多,
一般啟動 qemu 之后需要等個幾秒才能獲取到 IP 地址。
第一次開機(jī)可能獲取不到 IP 地址,只要在 qemu 運行著的情況下,關(guān)閉網(wǎng)絡(luò)共享,然后再開一次即可。
獲取到的 IP 地址時 10.0.x.x 說明沒有添加啟動參數(shù),請參照上面基礎(chǔ)知識第 4 條添加啟動參數(shù)。
如果運行 QEMU 時,tap 網(wǎng)卡的顯示的不是未識別的狀態(tài) ,那可能是啟動參數(shù)填錯了,請參照上面基礎(chǔ)知識第 4 條修改為正確的啟動參數(shù)。
如果都設(shè)置對了,運行時 tap 網(wǎng)卡顯示 未識別的狀態(tài),右鍵 tap 網(wǎng)卡點擊 狀態(tài),如果是 無 Internet 連接 ,請進(jìn)行網(wǎng)絡(luò)診斷試試。
有 VMvare 網(wǎng)卡的可以先禁用 再試一次。
menuconfig 找不到要配置的項
應(yīng)該是 env 的軟件包索引需要更新了,或者需要先按空格開啟這一項功能,然后再按回車進(jìn)入配置項。
menuconfig 找不到要配置的項
解決方法:在 env 輸入命令 pkgs --upgrade 更新 env 的運行腳本和軟件包索引。 具體方法參見:env 使用手冊
2 環(huán)境搭建
scons 編譯結(jié)果很短
scons 編譯結(jié)果很短
解決方法:這不是問題,編譯器只編譯被改變過的文件,沒有改變的不會重復(fù)編譯,而且,顯示已經(jīng)編譯完成了。另外,圖中的 ?[m?[ 是終端字體顏色的代碼,顯示出來是因為終端不支持顏色顯示。
pkgs --update 更新失敗
pkgs --update 更新失敗
原因
沒有安裝Git,也可能是沒有添加環(huán)境變量
解決方法
安裝Git,添加環(huán)境變量,并需要注銷或者重啟系統(tǒng)添加環(huán)境變量方法
創(chuàng)建網(wǎng)橋失敗
創(chuàng)建網(wǎng)橋失敗
原因,共享和網(wǎng)橋只能使用一種方式,不要同時使用。
網(wǎng)絡(luò)共享失敗
網(wǎng)絡(luò)共享失敗
原因:
上面出現(xiàn)網(wǎng)絡(luò)共享失敗的原因已經(jīng)找到,是因為PC機(jī)安裝了360,360默認(rèn)將防火墻服務(wù)關(guān)閉了,需要手動開啟防火墻功能
解決方法:
具體解決辦法,參考了 https://jingyan.baidu.com/article/d5c4b52bcb9f04da560dc59d.html
Tap 網(wǎng)卡顯示未識別的網(wǎng)絡(luò)
Tap 網(wǎng)卡顯示未識別的網(wǎng)絡(luò)
解決方法:這是==正常==的狀態(tài),獲取不到ip 只要在qemu運行的情況(即tap網(wǎng)卡顯示未識別的網(wǎng)絡(luò))下關(guān)閉網(wǎng)絡(luò)共享,再重新打開即可。
Scons 不能用
Scons 不能用
運行有 SDIO 紅色錯誤
運行有 SDIO 紅色錯誤
解決方法:這個不用管,沒影響。
ping 命令找不到
ping 命令找不到
原因:
打開了 RT-Thread online packages ---> 里面的某些功能,但是由于一些原因卻沒有成功更新到本地上造成的。所以有以下幾種情況
沒有在 online packages 里開啟 ping 的功能
沒有更新軟件包
網(wǎng)絡(luò)不好更新失敗
更新成功了卻沒有 scons 重新編譯
解決方法:
更新軟件包的方法:
手動更新軟件包 輸入命令 pkgs --update
開啟自動更新軟件包功能
網(wǎng)絡(luò)不好更新失敗的:去官網(wǎng)下載最新版 env,然后在 env 的配置 menuconfig -s 里面開啟鏡像源下載 pkgs download using mirror server
3 Vscode 調(diào)試
輸入 code 命令出錯
輸入 code 命令出錯
注意:code 是命令 ‘.’ 是參數(shù),中間有空格
解決方法:添加 vscode 所在路徑的環(huán)境變量,添加環(huán)境變量,并需要注銷或者重啟系統(tǒng)
找不到 qemu debug
找不到 qemu debug
解決方法:請看下圖中的操作步驟
調(diào)試工程注意事項
出現(xiàn) cppdbg 錯誤
出現(xiàn) cppdbg 錯誤
沒有 Debug@windows 選項
沒有 Debug@windows 選項
解決方法:按視頻操作下載最新的源碼。
出現(xiàn)一長串?dāng)?shù)字
調(diào)試出現(xiàn)一長串?dāng)?shù)字
原因:
沒有在文件 qemu-dbg.bat 的參數(shù)前加 start 或者 沒關(guān)閉之前運行的 qemu,要先關(guān)閉之前運行的 qemu,才能開始調(diào)試。
解決方法:
按教程中操作,在文件 qemu-dbg.bat 的參數(shù)前加 start 或著先關(guān)閉之前運行的 qemu,再按 F5。
按 F5 鍵 不管用
筆記本電腦的 F5 一般和功能鍵復(fù)用了,如果按下 F5 是調(diào)節(jié)屏幕亮度或其他功能,可以嘗試按 Fn + F5。
4 文件系統(tǒng)
romfs 編譯報錯
原因:romfs ramfs 文件系統(tǒng)中的文件名和c的變量的命名一樣,只能由英文字母開頭且僅包含數(shù)字和下劃線,不能有中橫線。
ramfs 運行出現(xiàn)斷言錯誤
ramfs 運行出現(xiàn)斷言錯誤
解決方法:這是一個已經(jīng)解決的 bug ,需要更新源碼,拉取最新源碼的方法見第一節(jié)環(huán)境搭建的視頻。
中文名稱文件顯示亂碼
中文名稱文件顯示亂碼
原因:顯示的編碼不同,VScode 是 UTF8, env 是 gb2312,好像是。
在 env 中找不到示例代碼
在 env 中找不到示例代碼
解決方法:env 該更新了,輸入命令 pkgs --upgrade 升級 env,然后請仔細(xì)看一遍 env 手冊(鏈接地址在本文檔頭部)。
ls 出現(xiàn) No such directory
解決方法:這是文件系統(tǒng)初始化失敗了,查看文件系統(tǒng)初始化的代碼,檢查問題。
5 網(wǎng)絡(luò)抓包
檢測不到網(wǎng)卡的話,請自行百度。
6 socket 編程
注意:socket 不支持多線程操作
-
網(wǎng)絡(luò)編程
+關(guān)注
關(guān)注
0文章
72瀏覽量
10082
原文標(biāo)題:這到底是哪里出了錯?網(wǎng)絡(luò)編程常見問題及解決方法
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論