首先,以我本人的经历,我可以肯定的告诉你:肯定可以的。
我也是去年大三刚刚开学的时候,跟着老师做项目,做了差不多4个多月的样子,我主要是负责做底层的固件开发,包括内核移植、内核驱动的开发、文件系统的制作等等;刚刚接触嵌入式Linux的时候,也是零基础,要学的东西很多,当时也看了很多书,我觉得首先要熟悉Linux开发的流程。
学ARM的话,我个人觉得还是要以嵌入式Linux为主,毕竟不跑系统就觉得很浪费资源,学Linux要熟悉一些常见的shell命令、Kbuild和Kconfig规则(内核的Document目录下面有相关的介绍)。最常用的shell命令不是很多,前期入门的时候,不要花太多时间去学shell,熟悉最常用的十几个命令就可以了,后面遇到不懂得再去查。
嵌入式Linux,主要分为用户空间的应用程序开发和底层固件开发。一般而言,固件工程师的要求要高于应用软件工程师的层次,而其中的 Linux 设备驱动编程又是 Linux 程序设计中比较复杂的部分,究其原因,主要包括如下几个方面:
a. 设备驱动属于 Linux 内核的部分,编写 Linux 设备驱动需要有一定的 Linux 操作系统内核基础;
b. 编写 Linux 设备驱动需要对硬件的原理有相当的了解,大多数情况下我们是针对一个特定的嵌入式
硬件平台编写驱动的;
c. Linux 设备驱动中广泛涉及到多进程并发的同步、互斥等控制,容易出现 bug;
d. 由于属于内核的一部分,Linux 设备驱动的调试也相当复杂。
方向 : 系统应用 底层驱动 网络编程 内核定制
我也是去年大三刚刚开学的时候,跟着老师做项目,做了差不多4个多月的样子,我主要是负责做底层的固件开发,包括内核移植、内核驱动的开发、文件系统的制作等等;刚刚接触嵌入式Linux的时候,也是零基础,要学的东西很多,当时也看了很多书,我觉得首先要熟悉Linux开发的流程。
学ARM的话,我个人觉得还是要以嵌入式Linux为主,毕竟不跑系统就觉得很浪费资源,学Linux要熟悉一些常见的shell命令、Kbuild和Kconfig规则(内核的Document目录下面有相关的介绍)。最常用的shell命令不是很多,前期入门的时候,不要花太多时间去学shell,熟悉最常用的十几个命令就可以了,后面遇到不懂得再去查。
嵌入式Linux,主要分为用户空间的应用程序开发和底层固件开发。一般而言,固件工程师的要求要高于应用软件工程师的层次,而其中的 Linux 设备驱动编程又是 Linux 程序设计中比较复杂的部分,究其原因,主要包括如下几个方面:
a. 设备驱动属于 Linux 内核的部分,编写 Linux 设备驱动需要有一定的 Linux 操作系统内核基础;
b. 编写 Linux 设备驱动需要对硬件的原理有相当的了解,大多数情况下我们是针对一个特定的嵌入式
硬件平台编写驱动的;
c. Linux 设备驱动中广泛涉及到多进程并发的同步、互斥等控制,容易出现 bug;
d. 由于属于内核的一部分,Linux 设备驱动的调试也相当复杂。
一周热门 更多>