打印
[嵌入式linux]

工作搞了2年单片机,转LINUX应用开发,如何少走弯路

[复制链接]
5811|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jingjunlai|  楼主 | 2018-6-15 11:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
毕业两年一直都是设计原理图,画PCB,嵌入式一直是STM和一大堆不同厂家的蓝牙芯片的移植和开发,网络上开发的只是简单的NBIOT和GPRS,一直都是C语言为主,系统只接触过TI-RTOS,现在正在啃C++。原本想转LINUX驱动开发,因为感觉驱动的开发更接近我现在所积累的经验。但是看到linux开发板上一个个应用程序,我发现还是应用程序能给我更大的兴趣。以上是我基本情况,想问下各位linux专家几个问题。
1.linux应用开发是指用qt开发界面的基础上+其他功能的实现吗?
2.最关键的问题是,一般公司做应用开发的人都是做些什么工作的?(和第一个问题好像类似)
3.如何少走弯路?完整一套应用开发需要用到哪些软件工具呢?
4.我需要深入boot和内核知识么?因为我看了下真的好繁多,我脑内的RAM不大,实在记不住太多东西
谢谢各位。

相关帖子

沙发
13925089531| | 2018-6-15 16:42 | 只看该作者
你是否考虑,培训呢。

使用特权

评论回复
板凳
大漠之鹰| | 2018-6-15 17:26 | 只看该作者
这个主要是C/C++基础,然后掌握一些常用的库和分析工具。
多任务编程、socket编程、GUI等,基本就是这几个。
编程工具一般用eclipse+gdb调试 或者 qtcreator+gdb调试。
适当了解perf、valgrind等分析工具,对于性能优化、内存泄漏、流程跟踪等有比较大的用处。
没事儿的时候多了解一些开源项目

使用特权

评论回复
地板
Prry| | 2018-6-15 21:48 | 只看该作者
1、Qt基本与系统无关,纯粹是C++,不管是linux还是Windows。
2、带图形界面的,基本是基于qt、minigui等;不带图形,才是真正基于Linux开发,基于Linux的一套机制,如进程、线程、设备管理、网络组建等。
3、如果进芯片原厂就去玩驱动、内核、boot吧,否则建议多花时间在应用,无图形界面,多数应用在网络相关,带图形则是医疗、工控行业。

使用特权

评论回复
5
jingjunlai|  楼主 | 2018-6-16 15:49 | 只看该作者
大漠之鹰 发表于 2018-6-15 17:26
这个主要是C/C++基础,然后掌握一些常用的库和分析工具。
多任务编程、socket编程、GUI等,基本就是这几个 ...

谢谢指导,其实我看很多招聘信息提到很多关键字,音频,网络,多线程,QT这些,大致了解了下大家都在开发些什么应用

使用特权

评论回复
6
jingjunlai|  楼主 | 2018-6-16 15:51 | 只看该作者
Prry 发表于 2018-6-15 21:48
1、Qt基本与系统无关,纯粹是C++,不管是linux还是Windows。
2、带图形界面的,基本是基于qt、minigui等; ...

谢谢指导,请问下第2点里面,这些开发都是C++为主还是C为主呢?还没开始接触到先了解下

使用特权

评论回复
7
lawit| | 2018-6-17 23:21 | 只看该作者
jingjunlai 发表于 2018-6-16 15:51
谢谢指导,请问下第2点里面,这些开发都是C++为主还是C为主呢?还没开始接触到先了解下 ...

图形界面、音视频处理主要是C++为主。

使用特权

评论回复
8
Prry| | 2018-6-18 00:24 | 只看该作者
jingjunlai 发表于 2018-6-16 15:51
谢谢指导,请问下第2点里面,这些开发都是C++为主还是C为主呢?还没开始接触到先了解下 ...

C、C++都会用到,打好C基础。

使用特权

评论回复
9
brandnew| | 2018-6-18 09:58 | 只看该作者
I哥快来,生瓜蛋子一枚,@icecut

使用特权

评论回复
10
icecut| | 2018-6-18 15:41 | 只看该作者
brandnew 发表于 2018-6-18 09:58
I哥快来,生瓜蛋子一枚,@icecut

还是一楼专业啊.一眼就发现是好韭菜...

3.如何少走弯路?完整一套应用开发需要用到哪些软件工具呢?
linux 发展还是比较快的.基本上维护一套版本比较新的非常困难.
当然, 工业级的 linux 都是灰常灰常老的版本
不过感觉你问的这几个问题发现你不太适合 linux 驱动. 做做应用算了吧

使用特权

评论回复
11
foo228| | 2018-6-18 19:59 | 只看该作者
本帖最后由 foo228 于 2018-6-18 20:44 编辑

一知半解的我也来参与一下,分享经验
问题1.Linux运用开发有基于qt图形界面的开发的,但只是linux + xxx 运用开发的一部分。结合你之前的工作经验,如果你之前跟嵌入式操作系统打过很多交道,转Linux开发,稍大一点的项目,都会使用面向对象的语言,啃C++ 是一个不错的选择。学以致用,试着用C++实现你以前的C驱动程序,会有很大的提升。

问题2.一般做应用开发,都是维护代码,添加功能,解决BUG。高级点的开发可能是新平台创建(软硬件),全新项目的实现。再往上可能管理者和专家居多。

问题3.个人感觉少走弯路的做法就是一条道走着,耐得住,随时间的推移,理解的加深,开发是没有出路的。。。。。  开玩笑的。开发软件工具很多,你在学习C++ ,后面如果一直走这个开发,会用到 eclipse CDT,嵌入式ARM开发工具链,还用各种windows与ubuntu交互的工具。涉及内容 一级boot(原厂) , uboot, Linux内核,文件系统, 你的程序。

问题4.你的想法还是蛮不错的,结合实际工作内容,一般情况下不会留给你太多的时间去学习。工作任务会很紧迫的,抓住重点,工作需要的一定要掌握,哪怕加班加点,剩下的就靠兴趣咯!兴趣是深入的基石。





使用特权

评论回复
12
大漠之鹰| | 2018-6-20 09:02 | 只看该作者
jingjunlai 发表于 2018-6-16 15:49
谢谢指导,其实我看很多招聘信息提到很多关键字,音频,网络,多线程,QT这些,大致了解了下大家都在开发 ...

可以尝试接触一些开源项目,这个对自己的代码质量和逻辑设计都会有很大的帮助。
积极参与国产化的项目,国产化发展还不是特别先进,对于一些原理性的东西还是比较容易一窥究竟的。
还有就是上边提到的那些工具尽量都要熟悉,在开发和性能调优的过程中都有非常大的帮助的

使用特权

评论回复
13
yangwenjie4| | 2018-6-22 14:48 | 只看该作者
属于软件工程了,不直接和硬件打交道了,主要用的语言是面向对象的C++

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

65

帖子

2

粉丝