嵌入式Linux开发找工作这么难么?
在我看来,嵌入式开发是一项技术含量很高的职业。
在广州这边,作嵌入式开发都是非常抢手的。
对于新人而言,C语言是最基础,有了他,你可以写硬件测试,也可以嵌入C++代码。
那么有了C++,你的薪水就可以加两百。
如果你懂Linux,薪水再加300。
我之前是在广州粤嵌学习嵌入式Linux我认为最重要的是学到了很好的学习方法,我自学期间学习是没有方向的,效率很低。
但是在这有老师指导,进步很快。
作为一个新人,怎样学习嵌入式Linux
嵌入式linux学习路线:
一:C语言
嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域最重要也是最主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及高级编程知识。
包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。
二:Linux基础
Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具,
Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。
三:Linux系统编程
重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
四:Linux网络编程
计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。
重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
五:数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。
此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
六:C++ 、QT
C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。
图形界面编程是嵌入式开发中非常重要的一个环节。
由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。
包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。
七:Cortex A8 、Linux 平台开发
通过基于ARM
Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand
flash控制器等模块,为底层平台搭建做好准备。
Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。
同时了解Android操作系统开发流程。
Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
八:驱动开发
驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。
本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。
熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM
Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。
有去培训嵌入式linux本人的亲身经历吗?学习情况 以及学习后的就业情况如何?
建议你别去。
学费是不是10K?
你可以拿这10K,自己先找份工作,无聊的那种工作,边混边学习,培训学校4个月完了,看似啥都会了,其实还啥都不会。
自己花钱买几本书,买个板子,好好研究,上论坛。
我感觉我那1W多钱被坑惨了。
而且出来后,找工作,别人只是推荐,可不是包分配。
嵌入式不是一蹴而就的。
但是你必须打好基础:C语言编程和数据结构,第二是linux<不一定要精通,但要和这个系统成为熟人>。
然后就是ARM 9或者 arm 7,stm32之流的硬件。
自己理一个清单,半脱产式的学习。
脱产学习,自己感觉太亏了。
顺便为自己的QQ群做个广告,里面都是一批linux嵌入式的学员,都开始在找工作,你可以进来和我们一起交流技术上的问题 125309656<注意:不是培训学校的QQ群>
初学者自学嵌入式Linux要怎么学比较好啊?有没有人可以推荐几个合适的网站啊,多谢了
要做嵌入式Linux,无疑就是把Linux系统移植到其他硬件平台,要求对Linux环境下的编程能力,要是搞驱动开发(很值钱)必须学好c语言,要熟练使用Linux,其他就是移植问题,不同硬件平台不同的知识,现在先玩Linux,之后在学c语言,然后再学移植(嵌入,可以用skyeye模拟硬件平台),所以找各个方面的网站。
如chinaunix(linux+c)(嵌入式)。
学习要循序渐进。
自学嵌入式Linux
自学嵌入式Linux
入式定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
由于嵌入式系统通常具有低功耗、体积小、集成度高等特点,因此随着消费家电的智能化和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。
那么如何才能学好嵌入式呢?
步骤/方法
C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》中译版本。
操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。
而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。
在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
注意事项
学习嵌入式不仅仅在于学习理论,更重要的是实践。
庈任侌珋北侎櫡庸椸樈妫冠侙氩殩
如何学好嵌入式LINUX?
linux常用命令、shell编程、和gdb工具、进程线程、socket等等
建议还要学习linux平台下的c混编等
linux想深入学习的话需要很大的毅力与精力投入才行,Unix的变体,水深,无毅力者还是放弃算了