AD

如何学习嵌入式系统开发

[2019-06-25 00:00:58] 来源:电工学习网 编辑:电工考试 点击量:
评论 点击收藏
导读:嵌入式所涵盖的行业很多,后期会根据工作,只会专注一个方向,从宏观上会为分嵌入式软件开发和嵌入式硬件开发,软件开发主要是基于系统(Linux,VxWorks,WinCE等等)之上的应用软件开发,硬件开发有主板设计,系统移 ...
嵌入式所涵盖的行业很多,后期会根据工作,只会专注一个方向,从宏观上会为分嵌入式软件开发和嵌入式硬件开发,软件开发主要是基于系统(Linux,VxWorks,WinCE等等)之上的应用软件开发,硬件开发有主板设计,系统移植剪裁底层驱动的编写等
我个人经历是从单片机开始的,先是C与C++,数电模电,电力电子,电路设计,单片机原理,FreeRTOS,数据结构,计算机操作系统,后因工作的需求我又把大学自动控制理论,信号与系统,复变函数,线性代数,微积分,统计学,编译器原理重新学了一遍,这些都是基础,一定要学懂学透彻,这会给后期的研发工作带来帮助,还要多画板,打板,多实操,光学不练效率很低,知识有重复性的,只有反反复复看和使用才能明白,可以买一些开发板辅助学习,现在网络发达,网络资源提高自己的学习效率。
嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。
1、基础知识:
目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。
汇编语言、C/C++、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。
方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。
主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。
2、学习linux:
目的:深入掌握linux系统。
方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。
3、学习嵌入式linux:
目的:掌握嵌入式处理器其及系统。
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。
(2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。
(3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。
4、深入学习:
A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。
C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。
说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。
注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的!
技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
Linux系统估计是每一个嵌入式工程师发必经之路,不管你是嵌入式软件开发还是硬件开发,你都的把它弄透彻。
以上是本人个人经历和观点,和成长经历,不一定适合别人,仅供参考,本人是爱好才选择的这条路,若果你没有有这方面的喜好,还是慎重选择。

为您推荐