开发嵌入式 Linux 用什么开发环境

2017-04-17 14:43:56 +08:00
 gaoyadianta
新项目,之前没做过 linux 的项目,之前做的都是 stm32 之类的。
我已经安装了 Ubuntu 的虚拟机,另外硬件平台是 i.MX6QUL ARM Cortex-A7 架构的。
想了解下,做嵌入式 liunx 的开发一般是用什么开发环境?
在 Ubuntu 下用 eclipse ?
在 Ubuntu 下直接 gcc+makefile 编译,用 gdb 调试?
还是什么其他我没了解过的,希望有实际项目经验的给介绍下,先谢了!
4539 次点击
所在节点    Linux
22 条回复
booboo
2017-04-17 14:47:12 +08:00
什么平台都差不多,你这个的 cpu 应该是用 yocto , ubuntu 装个应该问题会少点。
其他工具都一样,就是 minicom, vim , telnet, ssh 这些
wizardoz
2017-04-17 14:48:57 +08:00
CLion
调试好不好用不知道,因为我开发多年很少用单步调试。
bellchu
2017-04-17 14:58:41 +08:00
Win10-HyperV-Gentoo
价廉物美
gaoyadianta
2017-04-17 15:21:45 +08:00
@booboo 谢谢,我们是买的核心板,厂家提供裁剪好的 linux 系统,因为没做过 linux 的开发,想了解下上位机开发的时候用什么开发工具。 linux 的工程也需要添加各种.h 文件.c 文件吗?-_-!
gaoyadianta
2017-04-17 15:23:21 +08:00
@wizardoz 谢谢,我先了解下,这个还是第一次听说
gaoyadianta
2017-04-17 15:26:28 +08:00
@bellchu 你的意思是,上位机用 win10 ,再用 Hyper-V 装一个 Gentoo ,在 Gentoo 下面做开发吗?果然这里好高端,好多东西都是第一次听说。
booboo
2017-04-17 15:54:38 +08:00
@gaoyadianta 你买的开发板,那他们应该会提供交叉编译器, 文件系统和 uboot 这些. 你自己写程序要用到的工具就是编辑器了, gdb 这些没有提供的话你要自己交叉编译. 至于程序基本就是标准的 linux c 开发, 涉及到一些接口的操作可能略有不同.
gaoyadianta
2017-04-17 16:00:01 +08:00
@booboo 恩,好的,大致了解了
raiz
2017-04-17 16:02:31 +08:00
你开发应用程序还是驱动,驱动基本就没 IDE 什么事了,应用跟桌面差不了多少。 eclipse 编译后放在主机和目标机共享文件服务器上,从目标机运行,调试。 vs 有个收费的插件,可以 gdb 调试
gaoyadianta
2017-04-17 16:05:40 +08:00
@raiz 目前还主要是在应用层面
raiz
2017-04-17 16:14:10 +08:00
@gaoyadianta 什么类型的应用,好奇,我不知道要玩什么,忧伤
qianguozheng
2017-04-17 16:30:30 +08:00
需要什么装什么。 ubuntu 平台搞了三年的开发了,还行吧
社交软件就用网页版的。
编辑器 geany, gvim, qt-creator
nicevar
2017-04-17 16:44:04 +08:00
直接用 eclipse 就行, stm32 用 keil 不太习惯的话,也可以配 eclipse 的
估计以后 CLion 会流行了, JB 的东西做出来实在太好用
gaoyadianta
2017-04-17 17:37:56 +08:00
@raiz 物联网网关,很简单,包括 zigbee mqtt tls 这些
gaoyadianta
2017-04-17 17:39:04 +08:00
@qianguozheng 因为我的思路一直是 stm32 那种,好多工程文件放到一块,在 linux 下也是这样的吧?如果不用带界面的,会不会很不方便
qian19876025
2017-04-17 17:39:38 +08:00
楼主这到底是 要移植呢软件呢还是 要写驱动? 这个要分清楚吧
如果仅仅是 应用软件开发 应该可以直接在普通系统上搞 只要把依赖库搞好就行了
但是如果要驱动移植那就不同了
gaoyadianta
2017-04-17 17:40:02 +08:00
@nicevar 好的, keil 很习惯,做 stm32 一直用的就是 keil ,那我回头从 eclipse 入手,再研究研究 CLion
Shazoo
2017-04-17 17:40:57 +08:00
@gaoyadianta 一般我是这么用的:
1 、做一个 host linux 主机。 ubuntu 、 centos 啥的随便。不过,一般来说,厂家提供的交叉编译器都会有建议平台。照着做即可。小项目虚拟机,多人配合就上台小服务器。
2 、 host 主机上做一个 samba ,然后开发用的 windows 主机上,映射个磁盘。如果是团队开发,最好盘符都指定同样的(如, M 盘)
3 、开发工具还是 source insight 。 understand 也不错。 si 是最常用的 C/C++编辑器。
4 、调试一般是静态 core dump 分析和 gdb 在线调试。这个看情况了。
5 、最好有个小交换机( hub ?),板子的 bootloader 很多是可以用 nfs 或者 tftp 来动态加载内核,调试的时候很方便。
6 、最好的 usb 转串口( 232/ttl )是 ft232 系列的。没有之一…… 45 买一个。
gaoyadianta
2017-04-17 17:41:20 +08:00
@qian19876025 目前主要是应用层开发,之前在 stm32 下,没有依赖库的概念,都是.c .h 文件直接编译,中间过程不了解。
gaoyadianta
2017-04-17 17:49:12 +08:00
@Shazoo 看来是高手!
非常非常感谢,都是干货!
看来以后得多来逛逛,还请多指点~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/355393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX