零基础要怎么样学习嵌入式希望可以通过这一篇帖子让大家走进嵌入式,对嵌入式的学习不再那么陌生。
嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!),之后基本就不再用过的情况,建议零基础学习嵌入式的朋友们在学习之前先复习一下C语言基础这块。要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。
此外,在时间允许的情况下,对于零基础学习嵌入式建议大家看一下有关计算机操作系统工作原理以及计算机组成原理等方面的专业书籍。对于进程、线程、任务调度、总线、I/O等基本概念及工作原理有一个初步的了解和掌握,这部分知识的准备对于后续更好地学习嵌入式Linux系统开发将会起到很好的帮助作用。
下面就介绍一下Linux的学习:
一、从零基础开始:
常常有些大学生在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些
问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而大多数同学们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基
基础;
二、Linux命令是必须学习:
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令
有许多强大的功能:从简的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你
一旦学会就爱不释手.它的功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.
不同版本的Linux命令数量不一样.
三、选择一本好的工具书:
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多,建议阅读影印本的“O’Reilly原版Linux图书;
四、选择一个适合你的Linux发行版本
目前全球有超过1百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,主要还是看具体应用背景和需求。不然用了一个不常用的Linux的版本就不合适了。
五、养成在命令行下工作:
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。
六、没事多逛逛Linux相关的社区和论坛,学习一下大神们的经验,该记录记录,该收藏收藏别看了有些帮助看完就看完了,后头你还是不知道咋搞:
找相关论坛的话这个就比较好说了,网上一搜一大堆,这些都可以逛并不是固定于某一个论坛或网站。
七、勤于实践:
要增加自己Linux 的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个
Linux发行版本,然后进入精彩的Linux世界。相信对于你自己的 Linux 能力必然大有斩获。
七、如何得到联机帮助:
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
1.主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
2. 查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
八、在Linux论坛获取帮助:
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
九.用Unix思维学习Linux:
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
十.学习专业英文:
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
十一.Linux学习的路线图:
1.掌握至少50个以上的常用命令。
2.熟悉Gnome/KDE等X-windows桌面环境操作。
3.掌握.tgz、.rpm等软件包的常用安装方法
4.学习添加外设,安装设备驱动程序(比如网卡)
5.熟悉Grub/Lilo引导器及简单的修复操作。
6.熟悉Linux文件系统和目录结构。
7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器。
8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9.学习Linux环境下的组网。
十二.有机会有条件的情况下可以找个专业的培训机构:
选择一家先关的教育培训机构的确可以达到事半功倍的效果。不仅能大大缩短学员自行摸索和自我积累的时间,而且能帮助学员在更高的起点上超越,从而在“前人”的肩膀上未雨绸缪,少走弯路。
基于ARM的嵌入式学习,技术基础是关键。
首先学习相关的基本硬件知识,例如一般处理器及接口电路(Flash/SRAM/SDRAM/EEPROM/Cache、UART、Timer、GPIO、Watchdog、USB等)等硬件知识,至少了解一种CPU的体系结构;至少了解一种操作系统(中断、优先级、任务通信、同步等)。
对于应用编程,要掌握C、C++和汇编语言程序设计(至少会C语言),对处理器的体系结构、组织结构、指令结构、编程模式和应用编程要有了解。在此基础上,还需要在实际工程实践中掌握一定的实际项目开发技能。
其次,嵌入式学习要有一个较好的嵌入式开发教学平台,也就是开发板。
再次,必须对基本内容有深入的了解。在处理器指令系统和应用编程学习的基础上,重点是加强外围功能接口应用的学习。主要是人机接口和通信接口。如:USB接口、AD转换、GPIO、以太网、IIC串行数据通信、音频接口和触摸屏知识。
最后,熟悉至少一种嵌入式操作系统,熟练裁剪、定制及移植、设备驱动程序和应用程序的开发。
给大家一些视频教程
走进嵌入式
http://www.makeru.com.cn/live/1392_303.html?s=45051
概念这么多,我该如何学
http://www.makeru.com.cn/live/4034_1461.html?s=45051
如何做好精准职业规划
http://www.makeru.com.cn/live/4006_1429.html?s=45051
释放潜能:学习效率提升、编程能力提升