如何学嵌入式?

1-浅谈嵌入式

今天我们就嵌入式这个话题来讲讲嵌入式吧。薪资什么的不说,因为研究的方向不一样,薪资水平也不一样。
咱就说说该怎么入门吧,还有就是不要相信那些培训机构说多少天成为高手,这些是不可信的。
成为高手的前提是:
第一、你的语言基础要过关(不是书上的那些,书上那些也就是一些语法介绍啥的),如果有人告诉你会点C语言或者其他语言就能成为高手还有做项目啥的,这明显是不可能的,如果可能其他行业岂不是没人做了。所以,你会C语言或者VHDL语言只能说是你入门的基础,并不能说你会了就能是高手。这东西都是不断地积累的。做嵌入式这个行业靠的就是平时的项目经验以及你对代码的理解能力还有对数据手册的敏感性。所以,这里说的语言过关就是常用的关键字、指针、数组、结构体等,比如我给你个结构体

struct QQ{
  unsigned m;
  unsigned n: 4;
  unsigned char ch: 6;
}

就上面这个结构体位域,你能说出分别占几位不。大多数初学者都不知道吧。
所以会C语言和掌握以及熟练掌握是不同的概念。还有数据结构你也要会。
第二就是看自己的学习能力了,其实也不是学习能力,能读大学的或者混到现在水平的,能力都不会太差(当然极个别牛逼的除外)。既然大多数人都一样,那就看谁下的功夫深,看谁去做的多,而不是开发板买了,报个培训班,往哪一放,哎呦,好了,我会了。你这就是给你自己找安慰。然后去找工作说这不行那不行,啥都是公司不行(极个别公司确实不咋地),但是如果你学会了,比他们要求的还要好一点不就是你想去就去了吗。

2-嵌入式分类

嵌入式分好多类别,嵌入式只是一个总成而已。方向也特别多,咱就说说我知道的几个吧。
FPGA这个大家都应该知道,这个是非常接近硬件语言的,学这个也是要用最深的功夫去学习的,首先示波器、频谱、信号发生器、矢量网络分析仪等这些基础的仪器你要会用,还有就是硬件除了问题你自己要会修(我做过两个月,刚入门我就放弃了,实在是 有点难)。
Linux这个大家都知道,这个难度也有点大,但是还可以。
然后就是最简单的单片机。像STM32、51、STM8、S32、CH32之类的。其实以上这些都叫做单片机,只不过是用的语言或者系统不一样而已。

3-该怎么入门呢

咱就从让简单的来说吧,太复杂的说了你们也惆怅,像Linux、FPGA、PLC咱不说。当然直接学习这三个我个人认为是没啥问题的不一定非要按照我这个路线来。
就32位单片机来说吧。有人说先学51,我觉得没有必要,你直接从32位开始就行了,至于项目中用到的寄存器什么的,这个也完全不用担心,这就是看你C语言的功底了。当然从51学习也没坏处(我是觉得没有必要,因为51肃然是直接操作寄存器,但是吧对你帮助不大)
咱就说市面上常用的STM32吧,这个资料多,教程也多。会这个其他单片机你都不用去挨个学习。功能都一样无非就是各个厂商的库函数或者内存空间地址不一样而已。学习单片机不是说遇见一个学一个。首先你没有这么多的时间、其次这有点浪费精力。

首先你需要一个开发板(自己画也好,买也行)。当你有开发板之后你就开始进入第一步学习的阶段了(前提C语言或者C++,你一定要会,至少书本上的东西你要知道,谁告诉你C语言会一点就行,上去揍他,这是不负责任的表现,这简直是误人子弟)。
有了之后,你就开始看视频,怎么看呢,首先你先把基础部分看看,知道外设有哪些,能做那些东西等,当你看完一个视频或者一个外设模块之而后,你先不要着急看下一个,比如我今天看了中断这个章节,你你就下去写写用中断控制按键、LED等啥的。如果你之间看完中断就去看下一个。你这看完前面的你也忘了吧。回头你还是不会。然后就这样看。然后你就看一些常用的外设就行了,特殊的不用看,等做项目用到了再去看,这样效果更好。
还有就是学习不要犹豫。想做就去做。
我看到一个帖子写的就挺好:
这样说的:
每当我们在入门之前(ARM是这样,DSP也一样),总会会有很多疑问,会有很多顾虑。我们渴望知道学习STM32前景如何?需要啥基础?难不难?适不适合我?但是什么时候能心潮澎湃地、相当着急地开始学STM32?日子在一天一天过去!你开始行动了吗?没有行动的思索,永远都不可能入门!把这些时间用来看书吧,效果能好一万倍。
大家可能是从51单片机过来的,回想一下,我们之前学单片机时如何入门呢?实际上都是先看书(理论),再玩板子(实践)。严格地说,应该是模仿实验。熟悉之后才会自己写程序代码实现某个功能。因此,如果你正在咨询STM32;如果你正对STM32心潮澎湃;如果你想入门STM32;那么,从现在开始,不要犹豫了,不要想再详细地了解STM32的前景了。做一个可能影响你一生的决定吧!不用咨询,不用兴奋,开始看书籍(文档)吧!!每个人都是这么走过来的。
这里所谓的“资料”包括STM32书籍、文档。因为STM32有个特点,datasheet很多都是中文的,有些同学就没有去买书籍,直接看STM32的用户手册,也是可以的。但是不管看书籍还是文档,我们是需要计划的。不是今天看3页,明天看5页。一本书看了两个月,还在磨蹭。请记住,你学的不是寂寞,是STM32!

看书或文档不是用来消遣时间的。背水一战吧,给自己规定一个底线:两周内把一定粗略地过一遍!不要求都看懂,事实上,不可能都看懂。但我们必须理解基本知识,对难度高的知识有一个印象,至少以后碰到问题的时候,我们会似曾相识,感觉在哪里见到过,于是翻资料上网找答案——带着问题的时候,效率才是超高的。

两周过去了,STM32的知识你过一遍了吗?没看完?那么,你应该考虑这些天中,你是否尽力了?是否真的想学STM32?或者还是看到STM32人气很高,也想跟下时髦?是不是碰到问题没法解决就想放弃了?现在是你做第二个决定的时候了,请决定你是否继续攻读STM32。如果是一时冲动想跟时髦,请马上放弃——你已经浪费两周时间了,你还想再浪费14天吗?如果想吃得苦中苦,方为人上人,OK,请继续往下看:)

国内用户有一个普遍现象:用户拿到开发板后,不知道如何下手。由于没有自己的思路,又是初学者,也没有好的突破口,因此,买来开发板后,开机,看看触摸屏,感叹“好漂亮”的屏幕显示,然后就迷茫了。开发板是不会告诉你如何使用它的。开发板的光盘?光盘里放置一大堆资料——我该先看哪个?后看哪个?总之,我如何开始STM32的入门学习??

从拿到开发板后需要了解如何安装J-Link、MDK(keil)调试软件,一直到STM32上的UCOS移植,配合专门的教程,会在学习STM32的过程中少走许多弯路,提高学习效率了。

2.2我的时间如何安排?

笔者做任何事情前,习惯写一个计划——可能是在公司的时候,每天、每周、每月必写计划和总结养成的“毛病”,呵呵。正如在上一节中提及:我们要用一个月内上手STM32!我们开始考虑,如何更好地利用好这一个月的时间呢?

我想起了第一天公司入职的情景。我的工作导师让我先领一台PC,安装必要的软件,然后告诉我近一个月的任务是什么。当时我很不屑,因为刚参加了公司组织的培训,以为自己啥都会,但是失败了。原因:盲目进行项目,没有一个计划。

没有计划的日子会很惨。就像每天早上醒来睁开眼睛,却不知道自己今天要干啥。闲话不说,我们谈一谈计划和时间安排。

笔者认为,学习STM32,实际上也是进行项目的过程。进行项目,就必须有项目进度文档,至少需要预计项目的耗时。虽然没有那么规范,但建议大家至少要给自己一个时间表:告诉自己从2012年x月y日至2012年m月n日,必须能够进行独立的项目开发。比如定为30天,把这个时间分三个阶段:

第一阶段:找感觉——谈及STM32,立即反应到调试的方法如何。

第二阶段:修改例程——按自己的意愿修改例程,让自己有点成就感。

第三阶段:主动攻击——给自己找一个小项目,把它实现出来。

每个阶段有一个目标后,再细化该目标到每天,写出每天要完成的任务。注意,每天的任务不可太多,否则时间太紧,完成不了当天的任务,反而会进入恶性循环,导致第二天、第三天,以后的任务也将无法完成。最终导致整个计划的失败。

每天的任务需要根据自己的具体情况来定。如果有充足的时间,可以安排多一些任务。如果每天只有2个小时,切记,宁可少安排任务,也不可追求加快项目进度。当然,心中有事情后,每天自然就会忙碌起来!你的学习生活会更加充实!

2.3碰到问题怎么办?

学习难免会遇到问题。在公司参加培训的时候,学员被告知:困难即机会。

所以希望大家坦然面对问题,不能逃避。一小部分同学在遇到问题的时候,总是想:能否避开走另一条路?比如调试程序,某一个程序的语法不太懂,就想用另一种表示方法来代替,或者直接注释掉。——这是很可怕的。因为你现在一旦放过一个问题,可能意味着你一辈子可能都没有机会去碰这个问题。那么你的技术无法进入最高境界。我们是为学习而来,说难听点,我们现在的付出,是想以后能有更好的回报的。

此外,碰到问题,不能马上就到处求助。原因:

1、这个问题可能是你的疑问,但它还不具体,你无法用最好的语言让别人接受、理解,并且回答它。很多网友看到模凌两可的问题,是不会回答的。比如Linux如何移植?这个问题,如果详细说,需要用半本书来解释——没有人愿意花两三个小时告诉你如何移植。所以这时候,你要做的,是先去查资料,自己试图解决它。当碰到某一个具体的步骤,实在想不通的时候,比如Linux移植过程中,文件挂载打印卡住了。这个现象,可能对有经验的人来说,一句话就能点破。而你因为有先前研究的基础,一听即可知道哪里出问题。这样的方式,学习效率是最高的。

2、CPU是相通的,相信大部分的同学都学习过单片机,是有一定基础的。如果你碰到问题,去尝试了,自己把问题解决了,你会很有成就感!!因为这是你独立思考的结果!!当然,你应该写一个总结文档,收藏在PC中备忘。也可以把总结文档发帖到论坛上,这样的原创文档,跟帖率是最高的。慢慢地,你在这个领域,有了网络知名度。——这绝对是一笔财富。

当然,笔者在此并不是不让大家使用别的方式讨论问题。相反,我提倡大家踊跃发言讨论。刚才是就事论事,也是笔者自己的一点小经历。经历了,才发现如何做才更有效率。

我觉得人家说的就挺好。你看你一天到晚想这个那个,快速成为高手,地基还没起来,你就想成为高手咋可能。
切入正题,学习这玩意,如果你用心,两个周入门是完全可以的,最长两个月。一年能独立开发项目也是没有问题的。
关键就看你对钱的欲望多大了。
就这吧。
我这有个大致的框架。忘记从哪找的了。

3-路线图

嵌入式路线图
设置的是0积分,不知道官方会不会调整
如果不清晰或者无法下载,请关注微信公众号获取

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南山府嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值