来源:公众号【鱼鹰谈单片机】,ID :emOsprey
当然香了。鱼鹰使用 MDK 开发单片机超十年,大部分 bug 靠对 MDK 的熟悉,都能快速解决,为啥要在 linux 里面开发单片机呢。
很少是自己感兴趣而学习,大部分情况还是工作所迫。比如你的工作环境,就是不能使用 MDK ,只能在 linux 下开发,因为公司的项目都是这个模式,而一般的道友,因为习惯了 MDK,一到 Linux 环境下,只能靠串口打印解决问题了,费时费力,不知道因为一个 bug 加了多少班,开发速度也大大降低了。
前段时间,鱼鹰在使用 Python + web 搭建自己的课程网站,发现遇到的坑实在是太多了,之前 Python 全靠打印调试,最近才用 VSCode 在线调试了,遇到 bug 的解决速度快多了。
所以,鱼鹰觉得,不管任何编程语言,如果能在线调试看到整个程序的运行过程,都是非常舒服的事情。
而鱼鹰目前这个仓库,已经支持 Python, C /C++,单片机、linux 开发板在线调试,解决bug速度快多了。
前面关于单片机的开发调试介绍的比较多,总之就是使用 Docker 一条龙服务,少踩非常多坑。同时鱼鹰最近对 yocto 下的调试开发,也有不少收获,后面会陆续更新到仓库里。
下面介绍的内容,基本上和单片机类似,都是在 VSCode 远程开发下操作,可以借鉴:
文字说明
下面所有操作都是在 windows 下远程 linux 开发,不需要来回切换。
便捷按钮,编译、cmake 配置、编译和拷贝:
配置时,选择你是进行交叉编译还是本地编译,docker 镜像支持两种,目前暂不支持 arm32,。
然后选择你的测试程序语言(因为这个工程用于学习,所以区分了语言类型,方便测试)。
最后输入应用程序,目前只有 demo。后面会增加更多,比如 modbus 等。
配置完成即可点击编译按钮。当然也可以点击编译和拷贝按钮,这样可以把交叉编译好的程序自动拷贝到 Linux 开发板中。
重点来了。
根据是本地编译还是交叉编译,开始调试。
此时,工程会自动在开发板启动 gdbserver 程序,同时启动调试界面(不需要手动登录开发板,然后启动 gdbserver 程序)。
调试界面:
交叉编译调试情况下,基本没法直接查看一些 string 和 vector 等的信息。如:
现在鱼鹰经过研究,解决了这个问题,可以非常方便查看数据:
并且在 VSCode 可以直接看到开发板的打印输出,不需要再开一个窗口,大大加快开发速度。
变量(局部变量、寄存器、全局变量)、调用栈查看:
汇编单步调试(以前还以为不支持呢)。
代码开发:
查看分支提交情况:
查看文件修改和提交:
用了 VScode + docker,发现 linux 开发还是比较简单的事情。
目前课程录制完成了(后面可能继续增加视频),是时候涨价一波了,原价是 799,因为仓库更新了比较多内容,因此目前价格 899,组团价 859(两人以上),如果对以上内容感兴趣的,欢迎联系鱼鹰。
1120