• 正文
  • 相关推荐
申请入驻 产业图谱

为什么要在Linux开发单片机,window不香吗?

05/20 15:22
1120
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

来源:公众号【鱼鹰谈单片机】,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(两人以上),如果对以上内容感兴趣的,欢迎联系鱼鹰。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录