搜索
bottom↓
回复: 81

总结搭建vscode+cmake+arm-linux-gcc的开发环境

  [复制链接]

出0入20汤圆

发表于 2020-2-4 23:33:28 | 显示全部楼层 |阅读模式
本帖最后由 redworlf007 于 2020-2-4 23:35 编辑

芯片:nuc980。
1、首先虚拟机安装Ubuntu。
2、Ubuntu上用新塘给的buildroot,制作uboot 、内核、文件系统,制作完成后,./install_bsp.sh ,安装开发包和编译链,并修改环境变量。
新塘的buildroot地址:https://github.com/OpenNuvoton/NUC970_Buildroot
3、在Ubuntu上安装cmake。
参考帖子:https://blog.csdn.net/sss_369/article/details/94666494
4、将简单的源代码,用cmake编译后,放到开发板上测试。
5、Ubuntu上安装openssh-server服务。
参考帖子:https://www.cnblogs.com/kuillldan/p/8667082.html
6、Windows10开启ssh server服务。
参考帖子:https://blog.csdn.net/weixin_43064185/article/details/90080815
7、Windows10上安装vscode。
8、VScode Remote 远程开发与调试
参考帖子:https://www.jianshu.com/p/0f2fb935a9a1
9、vscode里面添加tasks.json,tasks.json里面调用一个自己网上抄的domake.sh,然后ctrl+shif+b后调用这个sh进行编译,直接调用cmake的命令好像也行,但是我没搞定。。。
参考帖子https://blog.csdn.net/zsf211/article/details/88290113


前面在Ubuntu上把eclipse搞上,编辑和编译程序,但是感觉eclipse的编辑功能和屎一样,就又倒腾了这个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
头像被屏蔽

出0入0汤圆

发表于 2020-2-5 00:29:35 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2020-2-5 00:45:52 | 显示全部楼层
本帖最后由 cddx 于 2020-2-5 00:47 编辑

编译错误可以定位吗?我用make编译多个文件,当出现编译错误时,无法点击错误提示后自动定位。

出0入0汤圆

发表于 2020-2-5 01:59:31 | 显示全部楼层
我用vscode 超级卡,特别是装上插件,机器配置已经很高了,就是这个vscode卡。。。

出0入0汤圆

发表于 2020-2-5 04:07:56 来自手机 | 显示全部楼层
不知道可否借鉴用来调试Atmel arm9,谢谢

出0入0汤圆

发表于 2020-2-5 09:48:45 来自手机 | 显示全部楼层
vscode越来越好了

出0入119汤圆

发表于 2020-2-5 10:22:22 | 显示全部楼层
感谢分享,收藏学习

出0入0汤圆

发表于 2020-2-5 13:13:32 | 显示全部楼层
vscode可以设置仿真调试。

出0入20汤圆

 楼主| 发表于 2020-2-5 13:29:37 | 显示全部楼层
18501501628 发表于 2020-2-5 00:29
这样就和keil一样了吗,不要自己makefile

这个是arm Linux上的程序,不用自己写Makefile,cmake里面会根据cmakelists.txt里面配置的源文件路径、编译器路径,自动生成Makefile文件。

出0入20汤圆

 楼主| 发表于 2020-2-5 13:30:19 | 显示全部楼层
cddx 发表于 2020-2-5 00:45
编译错误可以定位吗?我用make编译多个文件,当出现编译错误时,无法点击错误提示后自动定位。 ...

下面的调试串口会告诉你哪里有问题。

出0入20汤圆

 楼主| 发表于 2020-2-5 13:30:38 | 显示全部楼层
a105 发表于 2020-2-5 13:13
vscode可以设置仿真调试。

gdb我还没搞,我现在是串口打印调试。

出0入20汤圆

 楼主| 发表于 2020-2-5 13:31:27 | 显示全部楼层
ersha4877 发表于 2020-2-5 04:07
不知道可否借鉴用来调试Atmel arm9,谢谢

我搞的是新塘的arm9,atmel的arm9应该是一样的,只要你把编译器路径填好,就没啥问题。

出0入20汤圆

 楼主| 发表于 2020-2-5 13:32:02 | 显示全部楼层
powerk6 发表于 2020-2-5 01:59
我用vscode 超级卡,特别是装上插件,机器配置已经很高了,就是这个vscode卡。。。 ...

卡应该不是机器配置的问题,你再找找其他的原因。

出0入0汤圆

发表于 2020-2-5 14:04:56 | 显示全部楼层
不错,有机会玩一下

出0入0汤圆

发表于 2020-2-5 14:29:22 来自手机 | 显示全部楼层
Mark,有机会试试

出80入34汤圆

发表于 2020-2-5 15:20:01 | 显示全部楼层
一直这样开发,很方便,是中小企业合适用的方案。

出0入0汤圆

发表于 2020-2-5 15:28:54 | 显示全部楼层
vscode还是挺好用的

出0入0汤圆

发表于 2020-2-5 20:52:20 | 显示全部楼层
楼主可以试试WSL,文件都在本地,比虚拟机方便, 不用担心虚拟机死掉。
用过这个搭配搞Micropython编译,很方便。
担心效率上WSL2

出0入20汤圆

 楼主| 发表于 2020-2-6 01:30:16 来自手机 | 显示全部楼层
hell-prototypes 发表于 2020-2-5 20:52
楼主可以试试WSL,文件都在本地,比虚拟机方便, 不用担心虚拟机死掉。
用过这个搭配搞Micropython编译,很 ...

能交叉编译uboot、内核么?

出0入0汤圆

发表于 2020-2-6 09:28:20 | 显示全部楼层
可以用DS-5社区版本在windows下进行ARM-LINUX的应用程序开发,DS-5也是基于eclipse环境整合而成。个人感觉eclipse还是挺好用的,各种插件都很全。只是启动稍慢,占用内存过大而已。

出0入0汤圆

发表于 2020-2-6 09:45:15 | 显示全部楼层
redworlf007 发表于 2020-2-6 01:30
能交叉编译uboot、内核么?

可以的,就是个命令行的linux。
编内核要上wsl2,io速度快。
wsl的读写io有点慢,不适合内核这种大工程

出100入101汤圆

发表于 2020-2-6 09:49:25 | 显示全部楼层
vscode+cmake+arm-linux-gcc

出0入0汤圆

发表于 2020-2-6 11:05:01 | 显示全部楼层
不错,有机会试一下

出0入20汤圆

 楼主| 发表于 2020-2-6 11:18:04 | 显示全部楼层
quzegang 发表于 2020-2-6 09:28
可以用DS-5社区版本在windows下进行ARM-LINUX的应用程序开发,DS-5也是基于eclipse环境整合而成。个人感觉e ...

eclipse那种编辑功能不行,我用了一段时间,你试试vscode,用过vscode后,再都不想用eclipse了。

出0入20汤圆

 楼主| 发表于 2020-2-6 11:18:52 | 显示全部楼层
hell-prototypes 发表于 2020-2-6 09:45
可以的,就是个命令行的linux。
编内核要上wsl2,io速度快。
wsl的读写io有点慢,不适合内核这种大工程 ...

我想把Ubuntu装到一个服务器上,在服务器上编译,我的电脑不行,开着Windows再开跑着Linux,编译太慢了。。。

出0入0汤圆

发表于 2020-2-6 11:28:10 | 显示全部楼层
redworlf007 发表于 2020-2-6 11:18
我想把Ubuntu装到一个服务器上,在服务器上编译,我的电脑不行,开着Windows再开跑着Linux,编译太慢了。 ...

正解。虚拟机性能损耗太大了。

出0入0汤圆

发表于 2020-2-6 12:05:40 | 显示全部楼层
redworlf007 发表于 2020-2-6 11:18
eclipse那种编辑功能不行,我用了一段时间,你试试vscode,用过vscode后,再都不想用eclipse了。 ...

两种都用过哈,主要之前是用vim进行编辑,用上eclipse后觉得已经很友好了

出0入72汤圆

发表于 2020-2-6 12:21:45 | 显示全部楼层
收藏了,感谢楼主经验分享

出0入0汤圆

发表于 2020-2-6 12:23:36 来自手机 | 显示全部楼层
redworlf007 发表于 2020-2-6 11:18
我想把Ubuntu装到一个服务器上,在服务器上编译,我的电脑不行,开着Windows再开跑着Linux,编译太慢了。 ...

做产品肯定服务器快,如果自己玩,上服务器编内核没什么必要。

出0入20汤圆

 楼主| 发表于 2020-2-7 00:12:52 | 显示全部楼层
quzegang 发表于 2020-2-6 12:05
两种都用过哈,主要之前是用vim进行编辑,用上eclipse后觉得已经很友好了

你再试试vscode,会相见恨晚的。

出0入20汤圆

 楼主| 发表于 2020-2-7 00:13:27 | 显示全部楼层
hell-prototypes 发表于 2020-2-6 12:23
做产品肯定服务器快,如果自己玩,上服务器编内核没什么必要。

是做产品呀,自己的电脑,跑Windows又跑虚拟机,编译太慢了。

出90入0汤圆

发表于 2020-2-7 11:03:08 | 显示全部楼层
应该可以直接在windows下面搞,换一下工具链,我目前linux应用程序都是直接windows下面搞,用eclipse+Windows下的工具链

出90入0汤圆

发表于 2020-2-7 11:35:31 | 显示全部楼层
我发现我连github都上不去了,太操蛋了

出0入20汤圆

 楼主| 发表于 2020-2-7 16:27:01 | 显示全部楼层
zhucezhuanyong 发表于 2020-2-7 11:03
应该可以直接在windows下面搞,换一下工具链,我目前linux应用程序都是直接windows下面搞,用eclipse+Windo ...

Windows底下eclipse+编译链我也搞好了,eclipse不好用,放弃了。。。

出90入0汤圆

发表于 2020-2-7 16:35:06 | 显示全部楼层
redworlf007 发表于 2020-2-7 16:27
Windows底下eclipse+编译链我也搞好了,eclipse不好用,放弃了。。。

eclipse的编辑功能,比mdk之流强很多了,vscode我还没试过,太懒,理论上vscode也可能实现windows下面搞吧

出0入20汤圆

 楼主| 发表于 2020-2-7 18:07:32 | 显示全部楼层
zhucezhuanyong 发表于 2020-2-7 16:35
eclipse的编辑功能,比mdk之流强很多了,vscode我还没试过,太懒,理论上vscode也可能实现windows下面搞 ...

一样的,vscode+cmake+工具链,Windows上甩eclipse好几条街。

出0入0汤圆

发表于 2020-2-7 19:38:21 | 显示全部楼层
VScode Remote, mark, 学习一下.

出0入0汤圆

发表于 2020-3-4 10:43:21 | 显示全部楼层
我有NUC972的板子,也这样搞搞试下。

出0入0汤圆

发表于 2020-3-4 10:53:36 | 显示全部楼层
不要祸害坛友入门到放弃,我们只爱单片机

出0入0汤圆

发表于 2020-3-4 11:03:44 | 显示全部楼层
zhucezhuanyong 发表于 2020-2-7 16:35
eclipse的编辑功能,比mdk之流强很多了,vscode我还没试过,太懒,理论上vscode也可能实现windows下面搞 ...

是的,一旦用过,就再也不想碰Keil, IAR之类的IDE了,我是图省事,直接装的IAR for eclipse插件,省得去折腾环境了

出0入20汤圆

 楼主| 发表于 2020-3-5 01:20:10 | 显示全部楼层
dragonbbc 发表于 2020-3-4 11:03
是的,一旦用过,就再也不想碰Keil, IAR之类的IDE了,我是图省事,直接装的IAR for eclipse插件,省得去 ...

eclipse我也用了,但是用过vscode,就觉得eclipse是辣鸡。。。

出0入0汤圆

发表于 2020-3-5 08:54:21 | 显示全部楼层
redworlf007 发表于 2020-3-5 01:20
eclipse我也用了,但是用过vscode,就觉得eclipse是辣鸡。。。

vscode能在线调试吗?看寄存器值之类的

出0入20汤圆

 楼主| 发表于 2020-3-5 13:10:04 | 显示全部楼层
dragonbbc 发表于 2020-3-5 08:54
vscode能在线调试吗?看寄存器值之类的

Linux我是用vscode,要调试用gdb插件


stm32我是用vscode+iar插件,看寄存器可以用iar看,我看寄存器比较少,当然你可以用vscode+gcc来调试。

出0入0汤圆

发表于 2020-3-5 14:57:03 | 显示全部楼层
我用vs2015 +visualgdb + vassistx插件  ,好用

出0入4汤圆

发表于 2020-3-25 12:28:19 | 显示全部楼层
我也是这么做的 耶! 但是最近在弄qt 我不知道怎么添加在vscode 中添加QT 插件。。。。

出0入0汤圆

发表于 2020-3-25 12:48:53 | 显示全部楼层
powerk6 发表于 2020-2-5 01:59
我用vscode 超级卡,特别是装上插件,机器配置已经很高了,就是这个vscode卡。。。 ...

你是啥配置。  我装了 40个左右插件的情况下,windows下 很流畅,但是虚拟机里装了ubuntu下用vsc 就不是太流畅。尤其是 很长时间不关机

出0入0汤圆

发表于 2020-3-25 17:56:22 | 显示全部楼层
imjacob 发表于 2020-3-25 12:48
你是啥配置。  我装了 40个左右插件的情况下,windows下 很流畅,但是虚拟机里装了ubuntu下用vsc 就不是 ...

Macbook pro i7,16G,虚拟机里跑的,打开都卡,别的程序不卡

出0入0汤圆

发表于 2020-3-25 18:02:47 | 显示全部楼层
赞,vs的remote真是神器

出0入0汤圆

发表于 2020-3-25 21:40:01 | 显示全部楼层
本帖最后由 imjacob 于 2020-3-26 10:34 编辑
powerk6 发表于 2020-3-25 17:56
Macbook pro i7,16G,虚拟机里跑的,打开都卡,别的程序不卡


那你的配置应该不错啊,是不是给虚拟机内存,核分少了。  我的配置和你相当。  9代i7,32G 内存。给虚拟机分配3个核6线程, 12G 内存.
跑久了,还卡,确实vsc对配置要求有些高了

出0入0汤圆

发表于 2020-3-25 22:44:43 | 显示全部楼层
请教楼主,nuc980的开发资料是否开源?是不是和全志一样资料获取很费劲?

出0入0汤圆

发表于 2020-3-26 14:44:32 | 显示全部楼层
vscode 是否支持Ubuntu-32位系统sshd登录?

出0入0汤圆

发表于 2020-3-26 15:01:42 | 显示全部楼层
牛逼,标记一个,找个时间试一下

出0入20汤圆

 楼主| 发表于 2020-3-28 23:54:58 | 显示全部楼层
meirenai 发表于 2020-3-25 22:44
请教楼主,nuc980的开发资料是否开源?是不是和全志一样资料获取很费劲?

新塘官网还有github上新塘都公开资料了。

出0入0汤圆

发表于 2020-3-29 06:13:19 来自手机 | 显示全部楼层
vscode快宇宙无敌了:-D

出0入0汤圆

发表于 2020-3-29 07:17:57 | 显示全部楼层
vscode 很牛的说

出0入0汤圆

发表于 2020-3-29 10:31:16 | 显示全部楼层
多谢 啦啦啦啦啦啦啦啦

出0入0汤圆

发表于 2020-3-29 14:13:08 来自手机 | 显示全部楼层
难道就我一个人在用slickedit么?

出0入0汤圆

发表于 2020-3-29 15:23:58 | 显示全部楼层
天马行空 发表于 2020-3-29 14:13
难道就我一个人在用slickedit么?

你这只是个编辑器而已吧,类似于什么sublime, notepad++之类的。
难道就我一个人在用ST自家的TrueStudio么?

出0入0汤圆

发表于 2020-6-6 17:19:09 | 显示全部楼层
VSCODE remote  牛叉,再也不用把LINUX 文件夹通过SAMBA映射到WINDOWS上了

出0入0汤圆

发表于 2020-6-6 17:28:22 | 显示全部楼层
vscode不错。。。

出0入0汤圆

发表于 2020-6-13 18:23:45 | 显示全部楼层
天马行空 发表于 2020-3-29 14:13
难道就我一个人在用slickedit么?

slickedit +1

出0入46汤圆

发表于 2020-6-13 18:50:34 | 显示全部楼层
基于vscode的codespaces以后可以让你在任何设备上开发。开发环境、编译部署啥的都可以在云端。随便哪里都可以打开自己的熟悉的开发环境。

用vscode开发确实很爽,代码提示和自动纠错让你编程非常流畅。

出0入20汤圆

 楼主| 发表于 2020-6-14 00:01:15 | 显示全部楼层
jasonzhu8888 发表于 2020-6-13 18:50
基于vscode的codespaces以后可以让你在任何设备上开发。开发环境、编译部署啥的都可以在云端。随便哪里都可 ...

好的,我去看看。

出0入0汤圆

发表于 2020-6-14 08:52:14 来自手机 | 显示全部楼层
liangerfan 发表于 2020-3-5 14:57
我用vs2015 +visualgdb + vassistx插件  ,好用

我之前也是这么用的 不过就是virsualgdb有点贵啊 兄台用的啥版本 最新的貌似没有xx法把?而且 看帖子说 这个插件有很多坑 就算表面x了 可能运行起来依然有问题啊

出0入0汤圆

发表于 2020-6-14 09:03:18 来自手机 | 显示全部楼层
hell-prototypes 发表于 2020-2-5 20:52
楼主可以试试WSL,文件都在本地,比虚拟机方便, 不用担心虚拟机死掉。
用过这个搭配搞Micropython编译,很 ...

WSL是啥?

出0入0汤圆

发表于 2020-6-14 09:05:56 来自手机 | 显示全部楼层
redworlf007 发表于 2020-3-5 13:10
Linux我是用vscode,要调试用gdb插件



看起来 应该是编译可以remote吧这个?本地要是想调试 还是得靠着keil iar啥的来?单片机开发 没有办法方便打断点读寄存器 开发要蛋疼…

出0入46汤圆

发表于 2020-6-14 09:52:01 | 显示全部楼层
redworlf007 发表于 2020-6-14 00:01
好的,我去看看。

这个还在内测阶段。github提供的功能

出0入20汤圆

 楼主| 发表于 2020-6-15 12:09:48 | 显示全部楼层
jasonzhu8888 发表于 2020-6-14 09:52
这个还在内测阶段。github提供的功能

那等先驱者先测试好。

出0入0汤圆

发表于 2020-6-16 16:21:23 | 显示全部楼层
JeffreySun 发表于 2020-3-29 15:23
你这只是个编辑器而已吧,类似于什么sublime, notepad++之类的。
难道就我一个人在用ST自家的TrueStudio ...

TrueStudio+1

出100入101汤圆

发表于 2020-10-28 13:41:12 | 显示全部楼层
redworlf007 发表于 2020-3-5 13:10
Linux我是用vscode,要调试用gdb插件

请问,是不是使用cmake,嵌入linux开发是否可以不用虚拟机linux了?直接在windows下开发?

出0入20汤圆

 楼主| 发表于 2020-10-28 15:48:28 | 显示全部楼层
fengyunyu 发表于 2020-10-28 13:41
请问,是不是使用cmake,嵌入linux开发是否可以不用虚拟机linux了?直接在windows下开发? ...

Windows下的vscode远程登陆Linux虚拟机。

出100入101汤圆

发表于 2020-10-28 15:54:53 | 显示全部楼层
redworlf007 发表于 2020-10-28 15:48
Windows下的vscode远程登陆Linux虚拟机。

esp32的开发已经可以不用虚拟机了

出0入0汤圆

发表于 2020-10-28 20:34:45 | 显示全部楼层
fengyunyu 发表于 2020-10-28 15:54
esp32的开发已经可以不用虚拟机了

ESP32开发哪种比较方便除了ESP-IDF?

出0入20汤圆

 楼主| 发表于 2020-10-28 21:18:33 | 显示全部楼层
fengyunyu 发表于 2020-10-28 15:54
esp32的开发已经可以不用虚拟机了

Linux上的程序,你如果用go语言开发,也不需要虚拟机,直接Windows上编程,然后直接编译为arm linux上的应用程序。

出0入0汤圆

发表于 2022-8-26 23:18:15 | 显示全部楼层
redworlf007 发表于 2020-10-28 21:18
Linux上的程序,你如果用go语言开发,也不需要虚拟机,直接Windows上编程,然后直接编译为arm linux上的 ...
(引用自74楼)

有没有搭建教程

出0入20汤圆

 楼主| 发表于 2022-8-26 23:36:31 来自手机 | 显示全部楼层
hxke 发表于 2022-8-26 23:18
有没有搭建教程
(引用自75楼)

B站上it营的go视频不错,看看,简单得很。

出0入0汤圆

发表于 2022-8-27 00:03:06 | 显示全部楼层
redworlf007 发表于 2022-8-26 23:36
B站上it营的go视频不错,看看,简单得很。
(引用自76楼)

谢谢,我看这里的交叉编译教程https://blog.51cto.com/u_10125763/3697480
是要先编译1.4版本再编译高版本。如果要编译nuc972的go程序,是不是要按这个网址的教程来?
还有如果要交叉编译cgo的话,要怎么配置?

出0入85汤圆

发表于 2022-8-27 06:47:31 来自手机 | 显示全部楼层
全栈大神。

出0入20汤圆

 楼主| 发表于 2022-8-27 11:04:35 来自手机 | 显示全部楼层
本帖最后由 redworlf007 于 2022-8-27 11:07 编辑
hxke 发表于 2022-8-27 00:03
谢谢,我看这里的交叉编译教程https://blog.51cto.com/u_10125763/3697480
是要先编译1.4版本再编译高版 ...

(引用自77楼)


我应用程序都是用go写的,没有用交叉编译。
编译成arm平台的,你在编译命令里面加上参数就好了。

出0入20汤圆

 楼主| 发表于 2022-8-27 11:06:36 来自手机 | 显示全部楼层
hxke 发表于 2022-8-27 00:03
谢谢,我看这里的交叉编译教程https://blog.51cto.com/u_10125763/3697480
是要先编译1.4版本再编译高版 ...

(引用自77楼)

不用编译go,直接安装了就能用,你看it营的视频,你看的那些帖子都过时了。

出0入20汤圆

 楼主| 发表于 2022-8-27 13:00:55 | 显示全部楼层
hxke 发表于 2022-8-27 00:03
谢谢,我看这里的交叉编译教程https://blog.51cto.com/u_10125763/3697480
是要先编译1.4版本再编译高版 ...
(引用自77楼)

GOOS=linux GOARCH=arm GOARM=5 go build  main.go

你编译的时候这么输入命令,及编译从成了arm v5 内核Linux上运行的程序了。

出0入0汤圆

发表于 2022-8-27 23:16:25 | 显示全部楼层
redworlf007 发表于 2022-8-27 13:00
GOOS=linux GOARCH=arm GOARM=5 go build  main.go

你编译的时候这么输入命令,及编译从成了arm v5 内核 ...
(引用自81楼)

谢谢,已搭建好环境
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 -- 东莞阿莫电子网站 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2022-10-2 16:48

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表