來源:公眾號【魚鷹談單片機】,ID ? :emOsprey
當然香了。魚鷹使用 MDK 開發(fā)單片機超十年,大部分 bug 靠對 MDK 的熟悉,都能快速解決,為啥要在 linux 里面開發(fā)單片機呢。
很少是自己感興趣而學習,大部分情況還是工作所迫。比如你的工作環(huán)境,就是不能使用 MDK ,只能在 linux 下開發(fā),因為公司的項目都是這個模式,而一般的道友,因為習慣了 MDK,一到 Linux 環(huán)境下,只能靠串口打印解決問題了,費時費力,不知道因為一個 bug 加了多少班,開發(fā)速度也大大降低了。
前段時間,魚鷹在使用 Python + web 搭建自己的課程網(wǎng)站,發(fā)現(xiàn)遇到的坑實在是太多了,之前 Python 全靠打印調(diào)試,最近才用 VSCode 在線調(diào)試了,遇到 bug 的解決速度快多了。
所以,魚鷹覺得,不管任何編程語言,如果能在線調(diào)試看到整個程序的運行過程,都是非常舒服的事情。
而魚鷹目前這個倉庫,已經(jīng)支持 Python, C /C++,單片機、linux 開發(fā)板在線調(diào)試,解決bug速度快多了。
前面關(guān)于單片機的開發(fā)調(diào)試介紹的比較多,總之就是使用 Docker 一條龍服務,少踩非常多坑。同時魚鷹最近對 yocto 下的調(diào)試開發(fā),也有不少收獲,后面會陸續(xù)更新到倉庫里。
下面介紹的內(nèi)容,基本上和單片機類似,都是在 VSCode 遠程開發(fā)下操作,可以借鑒:
文字說明
下面所有操作都是在 windows 下遠程 linux 開發(fā),不需要來回切換。
便捷按鈕,編譯、cmake 配置、編譯和拷貝:
配置時,選擇你是進行交叉編譯還是本地編譯,docker 鏡像支持兩種,目前暫不支持 arm32,。
然后選擇你的測試程序語言(因為這個工程用于學習,所以區(qū)分了語言類型,方便測試)。
最后輸入應用程序,目前只有 demo。后面會增加更多,比如 modbus 等。
配置完成即可點擊編譯按鈕。當然也可以點擊編譯和拷貝按鈕,這樣可以把交叉編譯好的程序自動拷貝到 Linux 開發(fā)板中。
重點來了。
根據(jù)是本地編譯還是交叉編譯,開始調(diào)試。
此時,工程會自動在開發(fā)板啟動 gdbserver 程序,同時啟動調(diào)試界面(不需要手動登錄開發(fā)板,然后啟動 gdbserver 程序)。
調(diào)試界面:
交叉編譯調(diào)試情況下,基本沒法直接查看一些 string 和 vector 等的信息。如:
現(xiàn)在魚鷹經(jīng)過研究,解決了這個問題,可以非常方便查看數(shù)據(jù):
并且在 VSCode 可以直接看到開發(fā)板的打印輸出,不需要再開一個窗口,大大加快開發(fā)速度。
變量(局部變量、寄存器、全局變量)、調(diào)用棧查看:
匯編單步調(diào)試(以前還以為不支持呢)。
代碼開發(fā):
查看分支提交情況:
查看文件修改和提交:
用了 VScode + docker,發(fā)現(xiàn) linux 開發(fā)還是比較簡單的事情。
目前課程錄制完成了(后面可能繼續(xù)增加視頻),是時候漲價一波了,原價是 799,因為倉庫更新了比較多內(nèi)容,因此目前價格?899,組團價 859(兩人以上),如果對以上內(nèi)容感興趣的,歡迎聯(lián)系魚鷹。