嵌入式linux怎么学
你装一个linux系统。
当然虚拟机就行。
先学习标准C、然后学习linux的Unix C当然这种C很相似。
就是函数不太一样。
思想都是一样的。
上面两个网上都有教学视频。
把网上的教学视频看完就差不多了。
当然教程中要求练习的地方必须要动手做。
只想大体思路是绝对不行的,这样学到的东西很不扎实。
这两个学习差不过了。
就可以买一块开发板玩了。
如果你趋向于裸跑的程序,可以买一个arm7、arm9的板子,当然可以用cortex-m系列的也就是stm32系列的单片机开发板。
裸跑和单片机没什么区别了。
就是arm的cpu比单片机寄存器复杂一些。
这就看你阅读cpu芯片手册的能力了。
当然这个平台上也能跑一些系统比如uCOS就是个很好的实时操作系统。
如果你趋向于操作系统,你可以上cortex-a8 、a9系列的cpu了。
这个需要学习的东西比较多。
学习操作系统的启动代码必须要学。
现在最流行的是u-boot。
然后学习一下系统移植方面的东西:
1、文件系统制作 。
流行的软件是busybox
2、系统裁剪。
这个你买的开发板都会带平台代码。
也可以在上下载源码自己编译。
这个时候你就可以用u-boot(类似我们常见的主板bios)启动你的系统。
加载你自己编译好的linux内核。
系统就启动起来了。
最难学的是你要搞嵌入式系统的开发。
基本要了解linux内核了。
自己学的话需要在网上找一找相关教程看看。
(这个我不知道有没有视频教程),没有的话要买一个《linux内核高级编程》学习。
这本书太难啃了。
要学习带操作系统的嵌入式开发,还远不止我说的那些。
还有库移植、makefile脚本也要学习。
linux内核启动原理(启动过程加载那些文件、启动参数)。
arm启动原理等等。
你可以边工作边学习,从事嵌入式周边行业的(嵌入式应用方面)所以可以学一学嵌入式的图形开发工具:QT,这个很有意思。
然后慢慢的想嵌入式方向发展。
这是一个漫长的过程。
如果想速成也可以报班学习。
另外就是Unix c部分的网络编程很重要这个地方要学好。
学好了也可以从事linux的网络协议栈相关工作。
我想参加嵌入式linux培训,参加那个培训班好呢?
我见粤嵌教育有这个嵌入式linux培训班,嵌入式linux应用开发就业班课程和嵌入式linux系统就业班课程
具体可以去官网看啊
参考 嵌入式linux ics/Linux/
如何快速学习嵌入式linux?
先学LINUX的操作,基本命令要会用,LINUX的整个系统结构要非常清晰,尤其文件系统.
在有了上面的基础之后,如果只是做软件,可以从LINUX上的C编程开始,SHELL程序编写,总之嵌入式LINUX软件工程师,肯定是UNIX程序员.然后再学QT.基本就差不多了,然后就开始找实际项目提升了.
如果还要碰硬件,那就是ARM体系结构加驱动程序及系统移植,还有TCP协议及相关串系总线,太多了,后面看具体用什么学什么
如何学习嵌入式linux?
嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式Linux方向发展的话,关于这个方向,我认为大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发
嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等
Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
你可以尝试以下路线:
(1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。
(2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
推荐书籍:《UNIX环境高级编程》(第2版)
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。
而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。
在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。
只要能坚持下来一定会取得成功!
其实LZ可以到一些嵌入式培训机构的网站上看一下他们的课程设置,就会在脑子里有个清晰的思路,比如华清远见的官方网站,上面的嵌入式内容很丰富,嵌入式方面的信息更新也很迅速,没事可以去转转。