小菲愿与嵌入式初学者朋友共同学习,一起进步O(∩_∩)O

时间:2021-02-03 19:10:18
小菲愿与嵌入式初学者朋友共同学习,一起进步O(∩_∩)O

下面的文章是从上次发的连接中整理出来的,写的挺好。拿出来和初学者朋友们一起学习,希望大家可以早日学好嵌入式技术。 

嵌入式资深工程师白话说“嵌入式” 

本文转引自 飞凌嵌入式 技术文章专区 www.witech.com.cn 

从事嵌入式开发有些年头,将自己理解的一些嵌入式,把自己的感受写出来,另外谢谢自己的感受,给后来者一点经验了! 
  
      1、什么是嵌入式 
      嵌入式根据字面的意思就会知道个大概,嵌入式就是将一个东西,嵌入到另一个中间,这就会有两层意思, 
      一个是硬件的嵌入式:将一个硬件嵌入到另一个中间,使得原本没有智能的产品变得智能; 
      一个是软件的嵌入式:将一个软件嵌入带另外一个软件里面,一般这个软件是一个应用软件,而对象是操作系统。 
      因此,很多东西都回被称为嵌入式,而不仅仅是ARM等32位平台,还包括DSP,FPGA,51,甚至4位机都是可以的。 

      2、操作系统 
      操作系统有很多,大家天天用的windows,认为很高深的linux,微小的uCos,可裁减的eCos,……世界是多彩的,操作系统也一样。 
      有人就会说了,……好用,……不好,……对……好不好!这个问题对于真正的行家来说,你就像一个孩童问大人电视剧里面的这个人是好人还是坏人。只有合适的没有什么是最好的!曾经看过ubuntu的wiki里面说过一句话:不要因为它和你的习惯不一样就说它不好。 

     3、硬件平台 
     目前世界上的芯片公司有很多,因此硬件平台可以选择的有很多,但是近些年来,国人将嵌入式=ARM,这是狭隘的,不利于学生的发展,应该告诉学生,除了ARM还有很多很多。不然会发现,学生的眼光会被限制。通过对比学习,他们将会有更多的是以一种批判的精神,吸收各家所长! 平台现在来说比较有前途的是作消费电子类的,因为国家强调扩大内需,内需如何扩大,现在大家基本都是衣食无忧了,剩下的那就是娱乐了。 

     4、学习芯片的选择 
     很多人问我,我们现在学习的是ARM11,你们的是多少,我会告诉他我们是ARM9,还有一些ARM7。其实这已经是足够的了,无论我们学习的哪个平台,学习的关键不是学会这个芯片怎么用,而是学习他的精髓:这类芯片的设计构架,开发流程,然后就是查字典一样的学习它数据手册了。无论在哪里,学习不一定要学习最先进的,因为你没有把握住它的发展历史,和内部原理,一个先进的庞杂的系统对于你来说是很难理解的。 
     
    如果想成为一个全面的嵌入式开发人员,我的建议是可以遵循这个步骤: 
      基础:嵌入式C 
     这里的C不是大家学习的那个谭浩强的C,而是嵌入式C,谭的C只是一些肤浅的应用,没有讲到根本,C的根本就是要把握住指针和一些将来编译的过程!作为一个嵌入式比较底层的工程师,需要了解更多的关于你的程序是如何运行的,你的程序是如何加载的,以及各种资源的调度和使用,而这一切很多时候都要拜托你的C完成,因为毕竟汇编的难度还是比较大,而且完成的功能有限。 

    第一步:熟悉硬件 
    首先学习单片机,关键是学习总线结构,扩展的一些问题,还有建立起来一些汇编的知识 
    第二步:熟悉高级芯片架构 
     8086(很古老的芯片)但是很有必要了解,可以说他是一切X86(电脑)和ARM体系的根本,当将这个根本拿捏住了,你就像武侠小说里面讲的,你掌握了一门功夫的总纲,万变不离其宗! 
    第三步: 
     如果时间容许,可以使用(上面是学习)一个16位单片机凌阳的SPCE061A,这是一个很有意思的芯片,他既有一些单片机的东西在里面,还有一些嵌入式32位的东西在里面,真正的使用它不是很难,因为资料还是比较多的,但是从中可以学习到一些基本的嵌入式理念。 

    第四步:嵌入式平台选择 
    开始使用嵌入式平台,目前平台很多,有的还很便宜,作为学生,也许会选择一些价格便宜的,不过建议大家要更注意一个问题:支持的问题。 
目前基本来说平台的已经都是很多了,有些抄来的板子目前也是满天飞,由于没有研发成本和后期支持,造成成本比较低,同样的原因,让我们遇到问题,只能四处的提问,而往往得不到系统的答案。 
所以选择平台很重要,有人说,网上全是资料了,但是说句实话,由于嵌入式是一个结合多学科的庞大系统,因此从网上找到很多资料,你会发现我们找到的是一张张拼图的小块,在拼这个大图的时候,很多人在这个过程中失去了信心,离开了嵌入式开发者的行列,那是很可惜的。最好找一个比较资料全面系统的开发平台。 

      第五步: 
      看完基础,然后实实在在的开发一个或大或小的项目,在这个项目中不仅仅是写出程序,要学会项目的规划,还有程序编写的重构性等软件编写的问题。 

     总之:无论学习什么,都要比较系统的慢慢的做,相信大家坚持了总是会成功的。

6 个解决方案

#1


写的很概括……

#2


嗯,写得还可以,经验之谈

#3


看来是个从草根干起的老鸟写的。

#4


写的还不错。
支持一下。

#5


顶一个。。。

#6


共同学习了。

#1


写的很概括……

#2


嗯,写得还可以,经验之谈

#3


看来是个从草根干起的老鸟写的。

#4


写的还不错。
支持一下。

#5


顶一个。。。

#6


共同学习了。