嵌入式发展如此的快,可以说是现在最热的IT技术之一了,很多人加入嵌入式的行业,但是对于刚进入嵌入式或者刚接触嵌入式的人来说,学习嵌入式还是有一定的难度的,我跟前就有很多这样的人,下定决心想要去学嵌入式,但是不知道从何学起,今天我这只老鸟就分享一些嵌入式学习方法,快快搬小板凳来听。
对于嵌入式新手来说,知道一点嵌入式,知道嵌入式大概是做什么的,不是很懂,所以要熟悉掌握嵌入式的概念。我们可以看到网上或者书上很多解释:嵌入式系统是针对某个应用,软硬件可裁减的,对体积,功耗,成本等等有严格要求的一个计算机系统。看起来是很复杂的,其实我们来总结一下就是两点:
第一,嵌入式系统是一个计算机系统
第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。
其实再说的通俗易懂点就是针对某个应用的计算机系统!这样的话就很好理解了。
那么重点来了,那就是要学什么,对于嵌入式来说,不要觉得他学很多东西,你就会没有目的的学这学那的,这样只会让自己更加迷茫,不知道要学哪个了,你要知道,嵌入式也就是软件,硬件,编程这些方面的,最基础的也就是C语言了,那刚开始接触,你就需要先从C语言入手。
1、C语言,关于C语言要知道基本的语法,什么是结构体,什么是共同体,有的东西也不用一定要记忆,因为在实际中很少用到;
2、嵌入式最核心的操作系统,所以操作系统原理也应该是要有所了解的,比如时间片、任务调动等等;
3、Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),现在很多的人对鼠标早是情有独钟了,很少用到命令,在学习嵌入式Linux可要改改这个习惯了,Linux用命令操作具有效率高、功能强大的特点,这个是图形界面无法取代的,其实平时的图形界面操作都要转化为命令传输给硬件的。
4、Linux设备驱动的架构要了解,结合原理图和Linux设备驱动相关书籍把每一行代码分析清楚。
上面只是一些简单的嵌入式学习要点,你要先掌握这些,才能再继续后面的,在这里要切记你不要心急,心急吃不了热豆腐,不要希望看什么或者学什么一次就能会,而且记住要理解,不要死记硬背,要理论与实践相结合,实践的多了,那自然而然也就会弄了。还有,不要直接阅读Linux内核源码,看一些自己撞破头也想不明白的东西只能是浪费时间,要循序渐进。
对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!!”然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。
记住每个人都有每个人的方法,就是要勤于练习,不要懒惰,你可以根据我上面的学习方式来进行学习,这个方法就是我在我学习工作中总结的,还是很受用的,希望你和我一样从新手到老鸟,这是一个困难的过程,好好努力最重要。
Linux 是一个开源、免费的操作系统,主要应用于服务器(网站服务器、云计算集群、DNS 等)和嵌入式,同时也被很多程序员用作个人操作系统。Linux 使用 GPL 许可证,允许任何人以任何形式传播其源代码。GPL 许可证的内涵很简单:你随意使用我的代码,只要标明这是我的代码就可以了。想学会linux?那么这份嵌入式linux学习路线分享给大家。
1、嵌入式高级C语言
Linux系统
Linux Ubuntu操作系统安装、使用、Linux常用命令、samba服务器、SSH远程登录GCC编译器、GDB调试器、VI编辑器
1、嵌入式C语言高级编程
1、C数据类型、控制语句
2、C程序结构设计、数组、函数、预处理:
3、指针及字符串操作
4、结构体、共用体、宏、枚举
5、文件I/O操作
数据结构及算法
1、数据结构之单向链表、双向链表
2、数据结构之队列、栈
3、数据结构之树、图
4、算法之各种排序(选择法、冒泡法、插入法等)
5、递归
6、算法之二分查找
2、嵌入式设备及GUI开发
嵌入式环境配置与开发工具学习
1、Linux下项目管理工具Make以及Makefile工作原理及其编写
2、Linux下shell脚本相关知识及其编写
3、嵌入式开发环境的基本概念及其搭建
4、A53开发板介绍、设备使用、A53开发板与电脑通信、交叉编译
GUI图形界面开发
1、常用控件——button、label、text edit等
2、常用布局方式——水平布局、垂直布局、固定布局、网格布局、相对布局等
3、常用事件及信号处理技术——信息回调、鼠标、键盘事件等
4、时间编程、数据存储、绘图机制、定时器处理、多任务处理等
3、嵌入式Linux高级程序设计
嵌入式Linux系统编程
1、Linux系统调用概念
2、进程相关概念、多进程实现多任务开发
3、进程间通信:无名管道、命名管道、信号、消息队列、共享内存等
4、多线程实现多任务开发
5、多任务的同步互斥开发:互斥锁、信号量
4、Linux高级网络程序设计
Linux高级网络编程
1、网络相关概念及网络发展
2、TCP/IP协议
3、socket编程、TCP网络编程、UDP网络编程、Web编程开发等
4、Linux网络应用程序开发,Linux网络编程相关API
5、TCP协议服务器的编程方法和并发服务器的实现
6、HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计
7、IPv6与IPv4协议,及其编程接口
8、网络数据通信过程
9、网络原始套接字概念及编程接口
学习完后,你可以了解到Linux操作系统的基础知识,进行简单的Linux命令操作。另外,学习时,建议配合实践进行巩固练习,以便能更好的理解记忆。
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/6057.html