内容简介
【答读者问】如何入门和提高嵌入式
嵌入式可以说是目前涵盖面最广,最火的职业
今天有位读者朋友给小编发邮件,小编立马回复了。然后觉得也许回复对大家也有用,就写出来看看。彼此学习:
你好,首先恭祝你踏入了编程这个奇妙的世界,会很有意思的,不过要注意锻炼身体。
1.嵌入式软件的话不一定需要学很多硬件知识的(有的话当然是多多益善)。会用一些烧写工具,编译,调试工具(比如JTAG)就可以了,到时候要用了现学。开发工具也没什么固定的,一般也不一定要IDE,用文本编辑器就可以写代码(比如Vim,Emacs)了。反正编译一般用GCC的变种。
2.嵌入式一般要学C语言(去看看我的《C语言探索之旅》(
http://blog.csdn.net/column/details/explorelanguagec.html)+《C语言深度解剖》,《C程序设计语言》这两个PDF,见附件。也可以继续深入看《C语言专家编程》等等),Linux也最好学一下(因为编译经常要用到Linux系统,即使在Windows下也要用到Cygwin这类的) 。
3.Linux可以看小编的《Linux探索之旅》(
http://blog.csdn.net/column/details/explore-linux.html)入门,当然要更深入提高须要看鸟哥的《鸟哥的Linux私房菜》http://linux.vbird.org ;中国Linux公社(http://www.linuxfans.org/);还有《Unix环境高级编程》。还有一个《猪哥的嵌入式Linux公房菜》还行,没看完,感觉有点小乱(当然他比我厉害多了),没有鸟哥的文笔那么流畅清晰。
4.最好花点时间学一下汇编,对理解计算机的原理,特别是内存,指针,二进制,十六进制都有很好帮助,不需要学很深。推荐王爽老师的《汇编语言》入门绝佳教程,还有相应论坛:
http://www1.asmedu.net:8086/bbs/forum.jsp (各课的答案都在那里,不过先做了题目再去对答案)。
5.嵌入式目前主流的处理器架构是ARM(以前是ARM7,ARM9,ARM11,现在都Cortex系列了)。手机,平板,大部分开发板都是ARM的天下。所以需要学一下ARM架构,有个了解。一开始对ARM不需要太深入,视以后情况而定。ARM的集成开发环境有ADS(ARM Developer Suite)是ARM处理器下最主要的开发工具。
6.嵌入式你可以去买一块便宜的开发板来开始学习(我觉得自学嵌入式唯一的花钱之处,也就几百元就很好了),现在什么树莓派(
https://www.raspberrypi.org/
http://www.raspberrypi.com.tw/)有点贵,Arduino(https://www.arduino.cc/)什么也可以。你也可以买国内一些厂商自己的开发板(便宜),不要买太烂的就行。
7.如果你买了开发板的话,可以去开发板对应的论坛。比如我以前买的是天嵌的TQ2440(现在早就升级到不知道什么了吧,天嵌的论坛还是有很多不错的资料:http://www.armbbs.net/);还有参加嵌入式Linux竞赛获得的一块Mini2440(德国的友善之臂FriendlyArm,论坛可以去看看。中文论坛是http://www.arm9home.net/)。国嵌的论坛(www.enjoylinux.cn/bbs/)有不少好的学习资料。嵌入式Linux论坛(
http://www.embeddedlinux.org.cn/),华清远见的论坛(http://bbs.embedu.org/)也有很多免费资料。电子工程世界论坛(
http://bbs.eeworld.com.cn/)。当然了国内最大的IT社区CSDN的论坛和博客也都是不错的学习区,51CTO也不错,ChinaUnix也不错。实验楼(www.shiyanlou.com)有很好的在线实验环境,是Ubuntu这个Linux发行版的。
8.把英语学好,对编程很有裨益。你会慢慢发现的。所以千万不要荒废英语。
9.可以看的书很多,主要要要选好书,看得有效率。《深入理解计算机系统》非常好,算是入门的。其他也有很多嵌入式书籍。慢慢来。先把基础打好了。嵌入式这个领域太广了,可以学的东西太多,现在技术又日新月异,把基础打好学什么新知识都快。有一本《Orange'S:一个操作系统的实现》的书很推荐,跟着作者一步步写自己的操作系统,帅到掉渣,热血沸腾哦。
10.假如你以后学更有难度的嵌入式实时(Real Time)系统(VxWorks,ecos,ucos,等等。国人也写了几个不错的RTOS,例如:Raw-OS(http://www.raw-os.org),djyos(http://www.djyos.org)),驱动开发之类的,那就要C(和汇编)的功底比较强啦,要看更深入的书。不过暂时先入门嵌入式,这些领域看兴趣,不学也罢。
11.要什么编程书的PDF可以来问小编要(我一路以来在电脑里收集了很多编程的PDF,很多都上传到了程序员联盟的QQ群,还有自己的百度云盘)。到时你指定哪本书我可以给你百度云盘的共享链接。不过最好自己先去百度找啦,获取程序员联盟的QQ群文件和公共百度云盘找,实在找不到再来问小编,不然我忙不过来的 :P
总之一句话,现在学编程几乎不用花钱,大多是免费资源。如果花大钱去读培训班,就有点亏了(假如没有培养自学的能力,去了培训机构基本也是没什么意义)。编程完全可以自学。
暂时只想到这么多,有些点没谈到,抱歉。希望不要误导。有什么问题欢迎交流指教。
有什么问题可以发送到小编的个人邮箱(电脑上打字比在手机上舒服多了):
enmingx@gmail.com
程序员联盟微信公众号:ProgrammerLeague
官网和论坛
coderunity点com
coderunity点com/bbs/
微信号:frogoscar
邮箱:enmingx@gmail.com