您的位置:首页 > 其它

对初学单片机的同学们的几点建议

2010-01-05 13:34 288 查看
看到不少学弟的帖子都是询问如何学单片机,想进入嵌入式开发这个领域又不知道如何入手,觉得有责任和大家分享一下个人的一点心得体会,抛砖引玉吧,尽管可以讨论。
学校的教材一般都是讲51单片机的,以后大家真正再用上51单片机的机会并不大。这些年做硬件开发使用到各种不同的MCU,比如Power PC,ARM,MSP430,AVR以及高端的Intel Xscale(现在为Marvell PXA系列)等,感觉得心应手,并没有太大的障碍。这得益于当年学习51单片机时候比较认真,把细节都搞的很清楚,以至于后来写点小程序的时候,宁愿用汇编去实现,感觉更能掌控从指令到功能实现这个过程。
51单片机体系清晰明了,结构完整,以后大家再遇到的高级点的单片机可能就复杂多了,寄存器和外设都远远超过51单片机。如果任务繁忙,可能根本没有时间去把单片机的所有功能研究透彻。随便一个MSP430的单片机,手册就得六七百页。
所以建议的第一点:51单片机的基础一定要扎实。就那么薄薄一本教材,啃透了也花不了多少时间。
很多初学者都希望从获取一个开发板入手,希望通过在开发板上的演练就能大幅提高嵌入式开发水平。我的看法是开发板只是MCU通用功能的展示板,如果只局限在将Demo程序反复编译以复现预计的功能,那将大大的束缚学习者的创新思想。我更倾向于用开发板(我更经常用Demo板来称呼)来作为验证其他功能模块的工具。比如需要用到一个GPS模块,我就将开发板上MCU的UART口连到GPS模块上,比如要用到Wifi模块,就将MCU的SD接口连到模块上,然后写一段小程序来验证模块的可用性或测试模块的性能。
建议第二点:是用开发板勿局限于板上可演示的功能,熟悉了开发环境有了基本的语言能力,抛开演示程序,亲自操刀去写几个外设的驱动程序。
有些兄弟们的实验室条件比较好,导师有项目,有资金,学生有环境进行实际的开发工作,这当然是最好的。而那些没有条件参加实际项目开发的兄弟们怎么办呢。如果是读研究生的兄弟,我建议能主动去找找实习单位。我想实验室没项目的导师应该不太会阻拦学生去外面实习吧。另外一个渠道就是找缺人手的实验室或开发团队,去打下手,报酬就不要看太重,因为如果是经验尚浅,估计刚开始也给人创造不了什么效益。从网上,从同学那里都多打听打听,主动一些。从无到有做几个板子,尤其是使用从未用过的MCU,那成就感和能力的收获是非同寻常的。
建议第三点:实际动手做单板,调程序。
有的企业里做单板的和写嵌入式程序的是同一拨人,称作前台开发,而PC上的应用称为后台开发。还有的公司里设计单板的是一拨人,写嵌入式程序的是另一波人,前者称硬件开发,后者称前台软件开发。基本上嵌入式电路和嵌入式编程是密不可分的,把单板做好做稳定和写出简洁、高效率的嵌入式程序是同样重要的。要想独挡一面,最好能够两手都要抓,两手都要硬。即使是在硬件和嵌入式软件开发分开的环境下,做硬件的了解软件可以做什么,需要多少资源等,做软件的了解硬件的接口、协议等,能大大加快开发的进度。
建议第四点: 硬件电路知识和嵌入式编程技能都要加强。
很多人经验还很浅的时候,就被那些玄之又玄的EMC、可靠性、信号完整性方面的东西吸引,借书翻专注,彷佛不把这些拿下就不能开始其他的学习似的。我个人觉得对于低频的电路,50MHz以内的吧,信号完整性之类的理论可以先不用关注,按照一些常识和推荐的电路做,一般出不了大问题。但是还是有必要去获取一些现有的结论,再设计中注意去实施。随着实践的丰富,在解决问题的过程中自然会逐渐对信号完整性、电源完整性、EMC、可靠性等方面的知识更加关注,设计水平也会越来越高的。
建议第五点:可先接受和应用信号完整性等方面的结论,早期即不必畏惧也不要过分沉醉在高深的理论中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: