搜索
bottom↓
回复: 60

写给新手,从不懂到入门,一只老鸟的嵌入式入门心得

  [复制链接]

出0入0汤圆

发表于 2013-5-26 15:20:15 | 显示全部楼层 |阅读模式
本帖最后由 qietingfy 于 2013-5-27 07:47 编辑

  本人大学学的是电子信息科学与技术专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了,char,int,string等占几个字节,if, for, while循环什么的,感觉也就能算一些小学就会的题目,全国计算机等级二级也就糊涂的过了。我这个专业没学过C++,一开始不知道什么是向对象,什么叫面向过程,这可能让大家笑话了。不过这说的是实话,大学的时候比较喜欢动手,喜欢硬件方面的东西,也喜欢看书。在大一的时候就听学长说,单片机很难学,在没事的时候就从图书管借了本关于51的书,一开始还真是不怎么懂,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构也画一遍,然后就不觉得51有什么难了。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。我们学习51芯片,是为了以后的打基础,知道是怎么通过配置寄存器来实现功能。

  大二下学期的时候,我们开了51的课,这个课几乎就没怎么去,因为我认为没有必要去听自己会的东西了。后来听别人说avr的资源会比51的丰富的很多,所以就想试试,看看有什么难的,就从网上买了本马潮老师《AVR单片机嵌入式系统原理与应用实践》,一边看书,一边想自己画一个板了,一开始想实现一个点阵屏,实现滚动效果,后来想想做个板也花不少钱呢,为什么不多加一些功能呢,还能多学到些知识,所以就加了温感,红外,铁电存储器等并把所有的扩展口都扩展了出来,备以后用,那时还挺自豪的呢,同学们都很羡慕,不过现在想想其实也没什么了。

  大学也听说过嵌入式这个词,不过不太明白是什么意思,09年的时候从网上找到中嵌视频,有四张DVD(大约13G),下载下来后,从头到尾的看了一遍,没什么印象,只记得讲一些不知所云的函数,然后莫名其妙的讲怎么使用那个44b0的开发板,不过听完了,还是有很大收获的,就有一种想装一个linux的冲动,我是大二下学期才有的自己电脑,不过电脑的配置比较低,1g内存,跑虚拟机就像个蜗牛,所以就想着怎么才能装个linux,自己用XP习惯了,如果全换了又舍不得,那时从书上知道linux的文件系统和windows不一样,只有一个根分区,所以也害怕一装linux全盘就被格式化了,不过最后还是欲望战胜了担心,买了张redhat 9的光盘,小心的装这个系统,里边的英文也不是太难,还是知道大概意思的,所以一步步的装,最后装到我的硬盘的最后空间,重新启动,竟可以选择进入哪一个系统了,从这之后,自己就不害怕怎么装系统了,应了那句言,纸上得来终觉浅,绝知此事要躬行。所以我认为,买一个开发板是完全有必要的,拿到实物操作一下就不会感觉太抽象了。

        后来也想学学arm,但不知道arm是什么东西,所以就买了本《从51到arm》,讲的是关于arm的大体结构,看完后感觉,原来arm就是一个速度更快,接口更丰富的单片机啊。
如果想做linux设备驱动的同学应该对arm硬件有一些了解。如果对驱动不感兴趣,完全没有必要去看。交叉编译器会帮我们做好这些事情,他比我们更了解arm结构。

  大三下学期开始准备考研了,所以自己这些兴趣就先放下了,报的北邮的信通学院通信专业,当时就是想一定要上个好学校好专业,也没想太多,结果考了的成绩差了点,没有被录取,也不想调剂一个二流的学校,然后就参加工作了,工作中每天都用的到开发板,当我看到一个小板上还可以跑系统的时候感觉很不可思议,以为要很大工程。后来边工作边学习,每天都要看电脑看到眼发疼,晚上也都差不多十二点时才睡觉。感觉到累,不过也感觉到自己在进步。

  闲话有点多了,说了很多都是自己大学那点破事。

  听很多的初学者说不知道从哪里开始,学习嵌入都要学哪些东西,从网上搜了一下,一大堆的东西要学,一下就推荐十几本书,说看完这本书怎么怎么样,看完那本书怎么怎么样,一下子就给初学者给吓住了,其实完全没必要把网上的那些东西全部看一遍,那样又费时,又感觉工程太大,让初学者没有信心去把每一种都看完。网上说的些方面都要知道,不一定全部都掌握,我们可以退成求其次,每一个都知道一些,当然会的越多越好。今天学点这个明天学点那,换着样来也不会觉得烦。而且还能感觉到每天都有收获。

  下面给嵌入式初学者一些自己的我个人建议。

  1嵌入式涉及到很多的基础知识:
  c语言,关于C语言要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些二级考的东西,因在实际中用的很少。
  c++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。
  操作系统原理也应该知道基本的原理的,我记得我大学没这个课还是去电信学院蹭别的专业的课呢,后来学习发现很多的东西都是在这个课上学到的。什么时间片啊,任务调度啊,都是在那里知道的。
  Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我们学习嵌入linux可要改改这个习惯了,linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。
  Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等
  Shell编程也要了解一些,在这给大家推荐一个教程,周朝剑的 shell编程,也就七八讲吧,讲的很全面。初学者看前4讲就可以了。
  Linux设备驱动的架构要了解,初学者可以以飞凌的OK6410开发板上的led驱动分析一下,结合原理图和linux设备驱动相关书籍把每一行代码都分析明白。关于驱动给大家推荐一本书《LINUX设备驱动程序》中国电力出版社出版的,很经典的,初学者看可能看不太明白,不过要坚持看,最次也得把前6章看完了。

  2 看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读linux内核源代码,看一些自己把头撞破也想不明白的事,会打击初学者的积极性,要循序渐进,今天学个做个led,明天做个串口,后天说不定就做硬件编解码了。

  3、你可以不接受培训,但是不能不买开发板。
  如果你想学习嵌入式一定要买块学习板,现在的开发板很便宜了,给我们初学者减轻了很多经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写led的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。
  还有关于培训,现在的培训机构很多,讲的也不错,老师也很好,但是有一个问题,太集中了,而且学生动手的机会也不太多,记得我们公司还招了一个在北京某个培训机构培训半年的员工呢,花了一万多,来了之后也没感觉有多高,问他都学了什么,也就是我前边说的那些基础知识,很多的东西还是不知道的,照着书弄个helloworld模块驱动两天没搞定。不是培训不好,但我个人见解效果并不是很好。记住:只有自己动手做过的东西才是自己的。
  现在买一块开发板很便宜,飞凌的OK6410的开发板就不错,源码完全开放,而且资料也很丰富,完全能满足初学者学习用,有人说友善的板子也不错,我个人觉得友善的板子不错,但是不适合初学者,因为他的很多的东西是不给代码的,用过友善的板子的同学经常有这样的痛苦,想学一个东西,去找他的代码的时候,却找不到,很多友善提供的代码中很多的都是封装好的,只提供给客户一个库,初学者想要找代码的时候就不知道怎么办了。
  4 不要好高骛远,要脚踏实地

  对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴, “那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!!”然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。

  5 多看代码,多写代码

  见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。
   
  写完已经晚上两点了,思路有些乱,有些也是个人的见解,在有些人看来可能是错误的,每个人有每个人的学习方法,但是我们的目的只有一个——希望我们学到更多的知识。

                                                                                                                                                                                                                                                                          --纪念一下曾经活跃在坛子里的SL大神。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-5-26 15:23:28 | 显示全部楼层
帮你顶顶,算你自己的总结吧

出0入0汤圆

发表于 2013-5-26 15:50:46 | 显示全部楼层
学习了,挺好的。

出0入22汤圆

发表于 2013-5-26 16:25:15 来自手机 | 显示全部楼层
楼主挺好的了,我毕业的时候,全专业最好的电脑才512内存

出0入0汤圆

发表于 2013-5-26 16:25:30 | 显示全部楼层
支持原创感言

出0入0汤圆

发表于 2013-5-26 16:37:37 | 显示全部楼层
zwgmail 发表于 2013-5-26 16:25
支持原创感言

+1               

出0入0汤圆

发表于 2013-5-26 16:51:00 | 显示全部楼层
支持楼主原创

对于上不上培训班,有些不同意楼主的意见。对于有经济实力的,上个培训班还是能收获不少的

寒假我有同学上了华清远见的培训班回来之后,好像比我们这些人懂了不少东西

开发板确实需要买一块,最火的还是2440,但听说停产了。现在看了看友善的mini210很想买一块来用。

最近看飞凌也要出210开发板了,很感兴趣。

正在犹豫买哪家的呢.

还有一家叫保定芯灵思的公司,出了一款399元的210,太便宜了。简直不敢相信。

我觉得不管怎么样,都要像楼主一样,自己动手做实验,多写代码。

希望以后楼主多多分享点经验

出0入0汤圆

发表于 2013-5-27 07:25:39 | 显示全部楼层
说的对,做嵌入式一定要多动手才行,顶!

出0入0汤圆

发表于 2013-5-27 13:01:51 | 显示全部楼层
自己动手做过的,才能算是自己学到的!

出0入0汤圆

发表于 2013-5-27 13:12:56 | 显示全部楼层
脚踏实地,每天都在进步最重要

出0入0汤圆

发表于 2013-5-27 15:27:00 | 显示全部楼层
看看,帮顶。

出0入0汤圆

发表于 2013-5-27 20:23:06 | 显示全部楼层
jiaohaitao 发表于 2013-5-27 13:12
脚踏实地,每天都在进步最重要

是的。。。。

出0入0汤圆

发表于 2013-5-27 20:44:30 | 显示全部楼层
多看代码,多写代码

出0入0汤圆

发表于 2013-5-27 21:30:50 | 显示全部楼层
本来打算买友善之臂的6410,听你这么一说,代码资源很少的样子,看来我要重新考虑了。有过51单片机基础,c语言也会但是不精,c++没学过,目前在看linux实用教程,为下学期的培训做准备,自学太枯燥也没人讨论,还费时。。。

出0入0汤圆

发表于 2013-5-27 22:02:43 | 显示全部楼层
学微电子的表示基础很差的飘过。。。

出0入0汤圆

发表于 2013-5-28 10:12:41 | 显示全部楼层
1G内存的机子跑虚拟机足够了,我当年是512+128的两根内存,分了64M给集显,分128M给了虚拟机linux,xp和linux跑的杠杠滴,linux是fedora9,没装图形界面

出0入0汤圆

发表于 2013-5-28 12:08:29 | 显示全部楼层
帮顶啊,      

出0入0汤圆

发表于 2013-5-28 12:15:43 | 显示全部楼层
大体同意,难也没想象中难,只是资料很多,需要学习的很多,坚持下去的,没几个人。

出0入0汤圆

发表于 2013-5-28 12:34:38 | 显示全部楼层
不错,支持一下。

出0入0汤圆

发表于 2013-5-28 12:38:40 | 显示全部楼层
哥当年没电脑,所以没能混进嵌入式

出20入70汤圆

发表于 2013-5-28 12:42:42 | 显示全部楼层
支持原创!  

出0入0汤圆

发表于 2013-5-28 12:43:19 | 显示全部楼层
支持LZ,我现在就当玩一样的在学,就空的时候看看

出5入42汤圆

发表于 2013-5-28 13:14:31 | 显示全部楼层
支持原创 我就是学51开始搞起的。

现在感觉还是编程水平有点吃力。特别是从51转到linux下,那些函数封装的太深了,很不习惯

出0入0汤圆

发表于 2013-5-28 13:16:02 | 显示全部楼层
顶一个~!

出0入0汤圆

发表于 2013-5-28 13:51:25 | 显示全部楼层
多练习是毫无疑问的,我觉得这才是提升最快的方法。。。

出0入0汤圆

发表于 2013-5-28 15:02:53 | 显示全部楼层
兴趣是最好的导师。

出0入0汤圆

发表于 2013-5-28 15:07:34 | 显示全部楼层
要坚持不懈。

出0入0汤圆

发表于 2013-5-28 15:42:17 | 显示全部楼层
脚踏实地,好好学习,天天向上。

出0入0汤圆

发表于 2013-5-28 15:48:48 | 显示全部楼层
写的很好,学习了

出0入0汤圆

发表于 2013-5-28 21:35:44 | 显示全部楼层
脚踏实地。好好学习

出0入0汤圆

发表于 2013-5-28 22:00:49 | 显示全部楼层
踏踏实实,一步一步来吧!谢谢

出0入0汤圆

发表于 2013-5-30 08:12:41 | 显示全部楼层
写得好,多动手练习才行。

出0入0汤圆

发表于 2013-5-31 17:25:05 | 显示全部楼层
我真处在学习嵌入式的迷茫期,学习了

出0入0汤圆

发表于 2013-6-13 09:37:24 | 显示全部楼层
多谢分享,受益匪浅。

出0入0汤圆

发表于 2013-6-19 23:41:06 来自手机 | 显示全部楼层
谢谢分享,我还在犹豫自己能不能学会

出0入0汤圆

发表于 2013-6-20 00:04:32 | 显示全部楼层
呵呵,搞了快一年的stm32了,还在入门当中~~~

出0入0汤圆

发表于 2013-6-20 12:26:51 来自手机 | 显示全部楼层
感谢楼主分享

出0入0汤圆

发表于 2013-6-20 12:48:24 | 显示全部楼层
很好!一步一个脚印!加油!

出0入0汤圆

发表于 2013-6-20 13:51:49 | 显示全部楼层
静下心来,脚踏实地

出0入0汤圆

发表于 2013-6-20 14:17:18 | 显示全部楼层
支持楼主。

出0入0汤圆

发表于 2013-6-20 16:01:39 | 显示全部楼层
学习了,挺好的!

出0入0汤圆

发表于 2013-6-21 16:09:06 | 显示全部楼层
正准备学习arm,来学习一下

出0入0汤圆

发表于 2013-6-25 15:16:40 | 显示全部楼层
MARK                              

出0入0汤圆

发表于 2013-6-26 15:06:26 | 显示全部楼层
支持原创

出0入0汤圆

发表于 2013-6-26 16:30:58 | 显示全部楼层
支持经验总结,其实每天都进步才是最重要的

出0入0汤圆

发表于 2013-6-26 20:12:07 | 显示全部楼层
顶一个!!!!!!!!!!!!

出0入0汤圆

发表于 2013-6-26 21:21:52 | 显示全部楼层
看了之后很想学

出0入0汤圆

发表于 2013-8-14 08:11:35 来自手机 | 显示全部楼层
mark……
顶一个…

出0入0汤圆

发表于 2013-8-15 10:59:37 | 显示全部楼层
谢谢楼主分享

出0入0汤圆

发表于 2013-8-15 12:28:58 | 显示全部楼层
支持原创,谢谢分享

出0入0汤圆

发表于 2013-9-13 17:23:31 | 显示全部楼层
学习了,谢谢楼主

出0入0汤圆

发表于 2013-9-14 16:17:00 | 显示全部楼层
我也刚毕业,但是工作不需要我用我买的板子,所以干着不开心。现在我要换工作了,一顶要换一个自己想要的工作,就是嵌入式方向。到那时候,我要好好的玩一下我的板子!

出0入0汤圆

发表于 2013-9-15 09:03:44 | 显示全部楼层
顶楼主,顶

出0入0汤圆

发表于 2013-9-15 09:03:59 | 显示全部楼层

出0入0汤圆

发表于 2013-9-15 09:04:24 | 显示全部楼层

出0入0汤圆

发表于 2013-9-15 10:08:14 来自手机 | 显示全部楼层
学习了

出0入0汤圆

发表于 2013-9-15 10:15:32 | 显示全部楼层
Linux其实可以先不了解,裸机更容易学习

出0入0汤圆

发表于 2013-9-15 10:33:21 | 显示全部楼层
楼主是用心写的,不过下面的过程应该再多些就好了,由中的感谢

出0入0汤圆

发表于 2013-9-15 18:24:31 | 显示全部楼层
搞电子的要是停止了学习,早晚会被淘汰。

出0入0汤圆

发表于 2013-9-15 20:02:16 | 显示全部楼层
顶楼主,有很多相似的经历

出0入0汤圆

发表于 2013-9-15 21:12:09 | 显示全部楼层
刚买了一块飞凌的210,板子明天到手,先谢谢楼主的建议。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 01:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表