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