空杯心态,是成功的开始!

大家好,本期创客学员故事的主角,是来自创客学院「嵌入式双师1901班」的刘同学,从刚开始对嵌入式的知之甚少,经过数月的努力学习,到完全掌握企业所需的核心技能、高薪就业,他用事实证明了功到自然成的真理。接下来,让我们一起来看刘同学关于嵌入式学习的总结心得。

?

嵌入式学习,整个体系可以划分四个阶段,语言基础、应用层、底层和项目,要做到心中有数,有框架。

?

语言基础

?

学习嵌入式,语言基础很重要,可以说是整个嵌入式的根本。c基础、shell和数据结构:学习一门语言,最好要有空杯心态,对于它的概念、语句用法、知识点细节,要做到熟悉牢记

?

对于较难理解的概念,可结合例子加深,语言本身是死的,要精准记忆。至于编程时的活学活用,则靠点点滴滴的积累,尤其是指针、数组和函数(笔试题基本出自这里)

?

shell则是很多命令的介绍,只能记忆了,重点是结构体的掌握,结合体用的不多,对于Makefile,会写简单的,会看复杂的即可;另一个重点是shell脚本的编写,注意和函数的比较;

?

数据结构就相对简单了,两种存储方式,即顺序和链式,二者都适用于表、栈和队列,对这六种,要学会节点的结构体封装,以及增删改查,基本思想是一致的,至于树和图,知道它们的创建与遍历。

?

应用层

?

应用层主要包含IO、进程线程和网络编程。

?

IO看似很多函数,对于每个函数的返回值参数不要去记忆只记功能即可;具体的头文件,完整表达式通过“man”来查询,并复制粘贴,用途有两个,一个是网络编程中的数据发送和接收,另一个是打开硬件设备节点,并对它进行读写(作为函数接口);

?

进程线程,要掌握二者的区别,以及和程序的区别,重点则是进程间通信(七种,掌握消息队列,共享内存和信号量),以及线程间的同步和互斥;

?

网络编程,就是TCPUDP两个框架的掌握。

?

?

底层

?

底层主要包含ARM裸机、系统移植和驱动

?

ARM裸机主要分两部分,一个是汇编,会看就行,另一个则是重点,裸机编程,此部分基本就把开发板上的外设都跑起来了,这个阶段要培养如何看懂芯片手册;

?

系统移植,首先会用tftpnfs,然后就是本章的重点,ubootkernel的配置、编译和启动,注重流程的掌握,因为这个流程适用于大部分,还有就是根文件系统的制作

?

驱动,则是对内核源码的更深层次的追溯,本章的框架比较多,驱动的基本框架以及字符设备驱动的三要素编写则是最为基础的,更进一步的则是platform框架和IIC框架,额外的SPI框架和input框架,剩下的就是内核竞态的处理方式(自旋锁,信号量,互斥体和原子操作,注意和线程间的同步互斥做区别联系),IO多路复用的接口(与应用层的selectpollepoll的结合区别联系),最后就是中断与中断底半部与内核定时器、gpio子系统的结合应用。

?

项目阶段

?

此阶段是对以前知识的综合运用,重点是上行和下行两条线是否理解,和跑通;其实这个阶段做项目是其一,还有就是对自己知识体系的优化和升华经过所做项目与总结,让自己的经验得以增加,让我们的知识更容易活学活用。


?

结语:正如刘同学所说,学习是一个循序渐进,踏踏实实前行的过程,把心态放空,有一个空杯心态,才能把新的知识体系、前辈的经验技能掌握在自己手中!

?

the end

评论(0)