怎样自学嵌入式开发?
来源:互联网 发布:html5商城网站源码 编辑:程序博客网 时间:2024/05/01 11:21
搜索学习嵌入式就业前景广泛,你可以做手机、PDA、MP3、MP4、遥控玩具、psp、相机、家电控制(洗衣机、电饭煲等)、汽车导航仪,只要跟电子控制相关的。此外,嵌入式这个行业也利于个人创业,这也是为什么越来越多的人参加嵌入式培训的原因。那么,如何学习嵌入式???
如何学习嵌入式?相信是困扰所有嵌入式初学者的难题,下面课程是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路&数字电路。
1、c\c++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装 turbo c编译器为开发环境,联系C语言编程; 安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmware work station,然后在vmware work station里安装一个linux(redhat 企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着 《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在最流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧!
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了
8、模拟电路&数字电路,硬件的基础,如果可以的话,学习下protel ,自己做个硬件pcb板试试。
注重动手能力
搜索计算机这行都是偏向于实践的课程,所以要注重动手能力,学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路&数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm
搜索嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前最常见的是
嵌入式Linux+ARM方向,关于这个方向,大概分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脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要很强的学习能力和专业功底。当然你也可以选择和尚观的学员一起在老师的带领下,从零开始,循序渐进,四个月成就你的未来!
文章来源:尚观嵌入式研究室
- 怎样自学嵌入式开发?
- 怎样学习嵌入式开发
- 怎样学习嵌入式软件开发
- ARM嵌入式应用开发完全自学手册
- 嵌入式自学
- 嵌入式系统开发怎样快速度入门
- 嵌入式开发中怎样正确配置内核?
- iPhone兴起零基础菜鸟怎样自学iOS开发
- 嵌入式系统开发自学好还是参加培训好
- 怎样自学c语言
- 嵌入式linux自学过程
- 智能嵌入式如何自学?
- 从余业自学到专业开发出嵌入式操作系统之路(前言)
- 从余业自学到专业开发出嵌入式操作系统之路(2)
- 从余业自学到专业开发出嵌入式操作系统之路(3)
- 从余业自学到专业开发出嵌入式操作系统之路(4)
- 90后从余业自学到专业开发出嵌入式操作系统之路(5)
- 90后从余业自学到专业开发出嵌入式操作系统之路(6)
- 什么是sku和spu
- Thymeleaf教程 (十) 属性的优先级列表
- Java中的instanceof关键字
- 排序算法
- INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB
- 怎样自学嵌入式开发?
- poj 2689 Prime Distance
- 透过简单案例熟知状态模式(一)
- Xcode插件
- STM32中关于串口通信的printf()函数重定向问题
- oracle导出数据库的方法
- java反射——实现程序的动态性
- 同步与异步,阻塞与非阻塞1
- mysql配置主从库