如何学习嵌入式软件开发?

向上2020


学习嵌入式软件开发,首先要了解常用电子元件的工作原理。例如,电阻、电容、电感、LED发光管、二极管、三极管等。

了解基本电路知识,能看懂电路图,由浅入深。

学习基本c语言。对于初学者,不需要学的太深,了解基本语句,学会使用keil编译软件使用方法即可。在实际应用过程中,遇到问题,再不断学习完善自己。

购买51单片机学习开发板,或者有自动下载功能的单片机最小系统板,用这两种学习工具,可以免去购买烧录器的额外费用,使用起来也很方便。

总之,对于嵌入式软件开发的学习,要勤于动手,精于实战。通过不断的应用练习,完善自己。






USD3


嵌入式软件和互联网或者信息系统纯软件有较大区别,它是嵌入在某种硬件平台上的软件,脱离硬件平台软件将无法正常工作。学习嵌入式软件开发需要先学习以下的基础知识和技能:

1.熟悉计算机基础理论知识。如计算机体系结构,数据结构,操作系统原理,编译原理。

2.熟练掌握C/C++需要。

3.熟悉linux操作系统。

4.熟悉shell或者python脚本。

5.具备数字电路基础知识,至少要能看懂原理图。

那么,怎么去学习嵌入式软件开发呢?

1.先从编程语言C/C++入手。多练习编写小程序,掌握基本的编程语言语法知识。

2.如果掌握了编程语言,则可以多看技术网站和论坛,看一些其他人做过的开源小软件或者软件的一小部分,来加强一下编程逻辑。

3.自己买个开发板动手从gpio跑马灯驱动开发。开发板要选择所带外围设备或或模块较多,有详细使用指导手册和demo的开发板。

4.从简单模块入手,一边查看datasheet学习模块或外设的工作原理一边编写驱动程序。

5.如果各模块都能驱动起来,则可以研究或者写bootloader启动程序。

6.练习linux 系统移植,内核裁剪,文件系统精简,内核下的驱动开发等。

7.学习简单电路设计,来增强对原理图的理解。

8.开始构建自己的嵌入式小产品。

9.基本功具备后要选择方向,朝某一方向的嵌入式软件深入,突出行业深度。如音视频编解码,物联网,人工智能软件等方向。

学习嵌入式软件要多动手实践,同时要多了解行业技术规范和协议。


情绪需要管理


大家都知道这个领域人才非常稀缺,但是,学习周期比较长,需要的知识面也比较广,所以不要心急。先看看下面的几个问题,了解一下你现在的知识水平:

(1)你用VC++或BC++编写过应用程序吗?

如果编写过应用程序,那就做好了,如果你没有做过上层应用程序,那么又如何能够去理解更深的更高深的底层程序呢,那就赶快补上这一课吧!!!

(2)你曾经编写过单片机或者DSP的程序吗?

我们把类似51单片机或者DSP上面跑的没有操作系统的程序叫做“代码裸奔”,我们也都曾经编写过裸奔的代码。因为有的时候比如我们编写一个简单的程序,就只需要点几个LED检测几个按钮的状态,那么“代码裸奔”弄一个while(1)的死循环就足够了,杀鸡何必用牛刀。

编写这种裸奔的代码,也是学习嵌入式的必由之路,因为,你将会用C语言去对寄存器写控制字,这就是以后写驱动程序的基础呀。

另外需要说明的是,从概念上说,“代码裸奔”也已经属于嵌入式开发的范畴。

(3)到了最后一个阶段,你就可以开始找一个方向(uCos、Linux、VxWorks、WindowsCE、Palm等等等等),学习有操作系统的嵌入式开发了。

嵌入式操作系统的种类也是无法计数的,有一些我连名字也叫不上来,太多太多了。但是值得庆幸的是,这些操作系统大同小异,相通的。

你正在在读书,建议学习uCos操作系统(看邵贝贝的《UC/OS操作系统》);如果你不喜欢这么Basic的操作系统,VxWorks也是一个不错的选择,VxWorks进入中国已经好多年了,国内出版的书也都很好,尤其推荐陈智育的《VxWorks程序开发实践》和周启平的《VxWorks下设备驱动程序及BSP开发指南》;Linux简直是恶梦,但是如果你能够走出这个噩梦,你也就成了高手了。

就说这么多吧,路漫漫其修远,祝你成功!!!


饭饭H


嵌入式软件开发大致方向可以分为驱动开发和系统应用开发。

(1) 基础知识:需要学习C和Shell语言,操作系统基本原理,程序的编译过程与内存分布,Makefile编写等。

(2) 驱动开发:内核基础,内存管理,设备管理,中断处理,与用户态的通信方式,调度策略,锁同步等,还需要对硬件知识有一定的了解,最起码能看懂硬件原理图。

(3) 系统应用开发:进程间通信方式,多线程编程,TCP/IP网络编程,性能调优等。

最后:

多看多练多总结

多看多练多总结

多看多练多总结


牧世


嵌入式Linux与ARM处理器发展得如火如荼,风头几乎盖过了互联网相关的应用开发。但接下来的十几年,互联网、移动应用开发、H5热潮、微信小程序,一个又一个的新概念不断涌现,但似乎与嵌入式关系都不大。自然,“学嵌入式不如学计算机编程有前途”,“嵌入式底层面窄,不如做上层应用机会多”等一系列问题开始困扰嵌入式学习者。


瑞波嘞


嵌入式自学的话非常难,因为嵌入式需要学习的东西很多而且很难,如果你没掌握学习嵌入式的方法的话,可能1-2年都只能入门,如果你掌握嵌入式的学习的方法的话,半年就能学会嵌入式。………………………………………… 看你问的问题,应该是对嵌入式很感兴趣,其实你可以自学嵌入式。关于如何学习嵌入式,我刚才看到一篇很不错的文章,是一个专科生介绍自己如何自学嵌入式,并找到嵌入式的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。 先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学了。 退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘做技术的,可是处处碰壁。 一次偶然的机会,我才听到嵌入式这个行业。那天我去新华书店,在计算机分类那边想找本书学习。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习嵌入式,然后给我介绍了一下嵌入式现在的火热情况,告诉我学嵌入式多么的有前景,给我了一份传单,嵌入式培训的广告。听了她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。 回家后,我就上网查了下嵌入式,确实是当今比较热门的行业,也是比较好找工作的,工资也是相对比较高。我就下决心想学嵌入式了。于是我去找嵌入式培训的相关信息,说真的,我也很迷茫,我不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。 后来,我在百度知道看到一篇让我很鼓舞的文章,是一个嵌入式高手介绍没有基础的朋友怎么自学入门学嵌入式,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。 我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会我再去培训。 主意一定,我就去搜索嵌入式的视频,虽然零星找到一些嵌入式的视频,但是都不系统,我是想找一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教,不懂可以请教的。 后来我又找到一份很好的视频,是在IT学习联盟网站推出的一份视频《零基础嵌入式就业班》(喜欢《零基础嵌入式就业班》的可以复制 sina.lt/qKh 粘贴浏览器地址栏按回车键即打开)。里面的教程还不错,很完整,可以让我从基础的开始学起。视频比较便宜。 下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。 收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C语言视频教程学起,话说简单,其实我还是很多不懂的,我只好请教他们,他们还是很热心的,都帮我解决了。C语言我差不多学了一个礼拜,接下来我就学了linux的基本命令,我在他们提供linux虚拟机上都有做练习,敲linux的基本命令,写简单的C语言代码,差不多也就三个礼拜。我每天都在不停的写一些简单的代码,这样一月后我基本掌握了C和linux的基本操作。 接下来我就去学习了人家的视频的培训教程,是整套的,和去参加培训没有多大的区别,这一看就是两个月,学习了ARM的基本原理,学习嵌入式系统的概念,也掌握了嵌入式的环境的一些搭建,对linux也有更深层次的理解了,明白了嵌入式应用到底是怎么做的,但是驱动我只是有一点点的了解,这个相对难一点,我想以后再慢慢啃。 这两个月,除了吃饭睡觉,我几乎都在学习。因为我知道几乎没有基础,比别人差劲,我只能坚持努力着,我不能放弃,我必要要靠自己来养活自己,必须学好这门技术,然后我就把不懂的问题总结记下来,这样慢慢积累了一段时间,我发现自己真的有点入门了。 最后的一个月,我就去看关于实践部分的内容,了解嵌入式项目具体的开发流程,需要什么样的知识,我就开始准备这方面的知识,也就是学习这方面的视频,同时他们建议我去找了找一些嵌入式面试的题目,为自己以后找工作做准备。我就到网上找了很多嵌入式的题目,把他们理解的记下来,这样差不多准备了20天左右 我觉得自己差不多入门了,会做一些简单的东西了。我就想去找工作看看,于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。 后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是嵌入式linux应用开发,做安防产品的应用的。我想我也比较幸运,经理很看重我的努力,就决定录用我,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。 把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。……………………………………………… ------------- 如果我回答对你有帮助,请关注我一下。或有其他问题也可以关注我,给我发私信


分享到:


相關文章: