打印

振南启示录 V (振南系列励志**) 致51入门欲提高的广大人群

[复制链接]
7951|55
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
znmcu|  楼主 | 2013-12-18 00:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 znmcu 于 2013-12-18 00:49 编辑

振南启示录 V

作事情和学东西都应该作到灵活变通,这样才可以以不变应万变,悟所学之真谛。这是一个尽人皆知的道理,但要真正作到却非常不易。我认为,活学活用是建立在深厚的知识与经验积累之上的。
我知道很多人都是从51开始学起,一步步地进入单片机及嵌入式领域的。熟悉了51单片机的使用与编程方法,难道就标志着你已经学会单片机了吗?经常会有人问我:“振南,你会不会AVR?你会不会PIC?你会不会ARM?你会不会DSP?……”我反问他:“51你学过没有?”他说:“学过,而且用得还不错,但是我现在的项目用51可作不了,要用更高级的芯片。”我只能告诉他:“你还没真正学会单片机!”
学习51到底是为了什么?难道只是为了学会这一个芯片吗?换个其它类型的单片机就搞不定了?甚至仅仅是更换一下芯片型号。确实有这样的事情,而且不在少数,曾经有人问我:“我会用STC89C52了,AT89S52怎么用啊?为什么用STC-ISP不能给他下载程序呢?”我简直恨得咬牙切齿:“你学半天就学成这样了?动动脑子嘛!”在初学者面前,51应该是一种单片机的模型,通过它我们应该作到触类旁通,举一反三。
实际上,单片机乃至于ARM、DSP在硬件上真得没什么。在51上我们所学到的东西,在它们上面其实基本上都有。只不过是在工作方式、功能强弱、寄存器的定义与配置方法等方面有所不同而已(具体应仔细研读芯片数据手册)。比如PIC、AVR上有定时/计数器,51上有T0;ARM上有总线可扩展ROM与RAM,5、1上有XDATA外部总线;DSP上有乘法运算指令,STC的增强51上也有相关指令;STM32有内置ADC,STC51中也有,只不过位数少一些。所以,如果真得能把51学透学精,单片机中各种常用的概念与功能基本上都能囊括。当然,有些内容确实是比较高级的,比如DMA、LCD控制器、NAND控制器、USB、SDIO、MMC等等,这些正是有待大家水平不断提升后再去研究和使用的。不过说实话,你觉得它高级、深奥、复杂,其实在所谓高手眼里也并没那么简单。有些东西的难度是固有的,搁谁也要花些精力去慢慢消化。
有很多人还分不清芯片与内核的关系。所谓内核,其实仅仅指的是CPU,比如MCS51、ARM7、ARM9、Cortex等等。它们使用的指令集以及硬件架构都完全不同,这一切都源自于内核设计者的创造力,他们的研究成果被称为IP(有些公司专门以设计IP为业,比如ARM)。但是他们通常并不是CPU及芯片的制造者,而是以转让或授权方式交由芯片制造商来进行生产和销售(它从每一块芯片中获取一定的授权费用)。Intel当初在发明了51内核之后,很多厂商都相继推出了相应的芯片,比如Atmel的AT89系列、Cypress的C8051F系列、ADI的ADuC系列、TI的CC系列、SST的SST89系列、Winbond的W78系列等等。同样,近几年被炒得火热的由ARM设计的Cortex内核,也是授权给了很多芯片厂家来进行制造,比如ST的STM32系列、TI的LM3S系列、Nuvoton的NUC系列等等。我们要知道,一个内核不论在谁手上通常都不会被直接制造成芯片,因为内核本身可能并没有ROM、RAM、中断控制器、IO等这些硬件资源,因此它是不能直接拿来跑程序的。芯片厂商会在内核的基础上进行二次开发,将一些必要的硬件外设挂接到内核的总线上来,最终才形成了我们所看到的资源丰富而且实用的芯片。当然,这些挂到CPU总线上的外设大多都是由芯片厂商自己设计的,所以这就造就了各种芯片虽然内核相同,但在使用和配置上可能存在很大差异。比如同样是ARM7内核的芯片,Atmel的AT91系列中操作IO的方式是直接向数据寄存器的相应位写0或1,而NXP的LPC21系列却是要向IO置位与清零寄存器中写1来实现这一操作。我本人就认识一些在国内知名芯片研发单位工作的朋友,他们每天的工作就是向内核挂外设,并进行相关测试工作。因此,我们学习单片机应该学习CPU内核(它涉及到具体的CPU架构、指令集、总线,这些决定了CPU的性能以及如何对它进行编程),而对于片内外设只需要在真正用到的时候仔细参阅芯片手册,配合调试却可。而实际上,很多人却把大部分的精力放在了学习外设上,并把它们当成了芯片的重点。不过,不论学习的侧重点在哪边,是内核或者是外设,随着经验和知识的不断积累,最终都能达到融会贯通、灵活掌握的程度。因为实际上内核与外设是密不可分的,只要功夫到了,你就能成为高手。
以我近10年的研发与学习经验来说,我几乎已经用过了所有的常见CPU芯片,很多时候我都是以玩芯片为乐趣。这使我深刻体会到各种CPU芯片的特点和缺陷,了解到各芯片厂商在芯片设计上的一些特有风格,熟悉和精通了很多外设和总线接口的使用方法。现在,在我眼中各种CPU芯片早已无差别,我也早已不再去专门地学习某款芯片了。在拿到一片自己从未见过的芯片时,哪怕是所有人都未用过的最新型号,只要有它的配套数据手册,就依然可以运用自如。在我的实际工作中,会经常同时横跨好几个项目,每个项目都可能会使用不同的芯片,比如ARM7、Cortex-M3、TMS320F、PIC等等,但我并不会觉得有很大的压力,一切工作都按部就班地进行。要在研发工作中作到游刃有余,能够有的放矢地解决各种技术问题,也许我们还需要继续努力,不断充实自己。
如果你真得想要真正进入到嵌入式领域中来,想成为高手中的高手,就请你时刻不要忘了汲取经验和知识,当你的头脑已经可以强大到成为一个“专家系统”时,你在技术海洋里任意畅游的时刻就到来了。此时你会发现,各种在一般人眼里望尘莫及的新兴思想与高端技术你似乎已经可以接受和消化了。深厚的积累为你打开了一扇窗,来接纳更多的精华。


评分
参与人数 3威望 +10 收起 理由
longfenghugui + 2 赞一个!
Super_ + 3 赞一个!思想的深度,学习了。
autopccopy + 5 非常同意:【在初学者面前,51应该是一种单.

相关帖子

沙发
ballack_linux| | 2013-12-18 00:44 | 只看该作者
支持一个

使用特权

评论回复
板凳
znmcu|  楼主 | 2013-12-18 00:59 | 只看该作者
除了深厚积累,用心学习钻研意外。有一些基础知识和技能必须要扎实,最重要的一点就是"C语言"。我现在对很多初学者,甚至是工程师和从业者的C基础水平非常堪忧。花大力气努力加深对C的理解与应用技能技巧。
牢记:作为行业从业者,你从事的研发任务和项目不是练手的儿戏。做设计就做得像样,写代码就写的专业。努力尽快摆脱技术初学阶段和半吊子工程师的境地。不要再犯低级,基础性,常识性的错误和问题。

使用特权

评论回复
地板
znmcu|  楼主 | 2013-12-18 01:04 | 只看该作者
拿出理解不透不睡觉不吃饭,不解决问题绝不放弃的气魄和精神。做任何事情都需要脾气秉性。既然决定要入行,就要知道要具备的行事风格和品质。我认为很多人在研究和学习,搞技术方面"性子"太软了!!

使用特权

评论回复
5
51armfpga| | 2013-12-18 11:46 | 只看该作者
顶一个

使用特权

评论回复
6
逍遥派掌门| | 2013-12-18 11:50 | 只看该作者
振南所说的“51入门xxx者”,应该说是“51学习者”。

如果还是停留在追求学习什么单片机的阶段,即使“学习”了很多种单片机,也无法解决实际工程中的问题,这种学习简直是浪费生命。

入门者,应该是懂得如何运用该种单片机去解决实际的问题,满足工程的要求。

使用特权

评论回复
7
autopccopy| | 2013-12-18 13:25 | 只看该作者
顶!
非常同意【在初学者面前,51应该是一种单片机的模型,通过它我们应该作到触类旁通,举一反三。】,也非常同意要学好C语言,这样就可以跨平台了。

(72)

使用特权

评论回复
8
znmcu|  楼主 | 2013-12-18 13:49 | 只看该作者
但实际上,大多数人是学了51,以后就只会用51.

使用特权

评论回复
9
人民币的幻想| | 2013-12-18 15:19 | 只看该作者
znmcu 发表于 2013-12-18 13:49
但实际上,大多数人是学了51,以后就只会用51.

实际上,大多数人是学了51,连51都用不好,就急功近利的去学习另一种芯片了。

使用特权

评论回复
10
znmcu|  楼主 | 2013-12-18 15:25 | 只看该作者
像51的XDATA,AVR的XMEM(XRAM),STM32的FSMC,TMS320F的XINTF等等,其实都是一样的东西,只不过可能大家脑子还转不过来
把SPI,I2C放在51上,你就会用,放AVR,STM32上,你就不会用了。我知道,你在用51的时候,用的很多程序其实都是别人写好的,对于寄存器具体如何配置自己是一知半解。所以从根本上来说,从来没有自己亲自配过寄存器,亲自把一个东西调通。

使用特权

评论回复
11
znmcu|  楼主 | 2013-12-18 15:27 | 只看该作者
对于51的UART,虽然非常基础,但有多少人真正全部搞透

使用特权

评论回复
12
znmcu|  楼主 | 2013-12-18 15:28 | 只看该作者
你有水平搞透51,你就有水平搞透ARM,搞透DSP,无非都是一堆寄存器配置。
我问一句,单片机到底有什么可难的呢?

使用特权

评论回复
13
sgj245609615| | 2013-12-18 15:36 | 只看该作者
单片机弄起来不难 外设稳定才是难点

使用特权

评论回复
14
3htech| | 2013-12-18 16:49 | 只看该作者
振南大哥也为初学者着急了啊。

好帖子~

使用特权

评论回复
15
白马王子1| | 2013-12-18 16:54 | 只看该作者
支持一下

使用特权

评论回复
16
江枫渔火| | 2013-12-18 17:05 | 只看该作者
好贴,讲得好,指针见血,独霸令人茅塞顿开,豁然开朗!

使用特权

评论回复
17
a20084666| | 2013-12-18 17:45 | 只看该作者
说得好     可惜我不是高手

使用特权

评论回复
18
shuangchafeng| | 2013-12-18 17:50 | 只看该作者
很想学就是不知从哪下手?!

使用特权

评论回复
19
icecut| | 2013-12-18 18:38 | 只看该作者
最近51比较火了....我基本放弃51了

使用特权

评论回复
20
沉默爱电子| | 2013-12-18 19:48 | 只看该作者
果然是高手中的高手

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:振南的znFAT -- 单片机上上的FAT32文件系统 www.znmcu.cn

4474

主题

5195

帖子

33

粉丝