计算机小白嵌入式Linux学习规划——自用

前言:本人目前机械工程在读,希望能够在毕业时进入嵌入式行业工作。没有相关基础,从0开始自学,并打算不定期写博客做知识回顾,督促自己。


学习目标:

  • 拥有扎实的嵌入式软件开发基础知识
  • 能独立完成几个综合项目
  • 找到相关工作

学习内容:

一共分为四个部分:基础入门、编程进阶、ARM开发高阶、终极深入


基础入门

  1. linux基本操作:
    学习书籍:
    《Linux命令行大全》——人民邮电出版社
    需要掌握的知识如下:
    环境的搭建;
    Linux目录结构;
    文件类型;
    基本目录操作,文件操作,vim,ifconfig,ping,cd,cp,mv,mkdir等,最关键是gcc命令要会用;
    一些简单的shell脚本;
    Makefile的编写。

  2. c语言:
    学习书籍(C语言三剑客):
    《C和指针》、《C陷阱与缺陷》、《C专家编程》、《C Primer Plus》
    学习方式:
    看书 + 课后代码练习 + 写知识的回顾博客笔记

  3. 数据结构:
    学习书籍:
    《数据结构与算法_c语言描述》、《大话数据结构》
    掌握常见的算法比如:冒泡排序、直接插入排序、快速排序、二叉树等。
    链表操作,创建、增删改查。(要求理解并记忆代码)

  4. 基础阶段项目
    从0开始写,用链表实现一个简单的《电话本管理软件》,包括增、删、改、查、排序等操作,把所有的知识点融会贯通起来。


编程进阶

  1. Linux系统基础学习
    学习书籍:
    《Linux Tools Quick Tuturial》、《ARM嵌入式Linux系统开发详解》、
    《鸟哥的Linux私房菜》

  2. Linux环境高级编程学习
    学习书籍:
    《Linux程序设计》、《Unix环境高级编程》、《Unix网络编程》

学习方式:写知识回顾笔记 + 项目练习

  1. 进阶项目
    综合项目《多线程聊天室》,实现公聊、私聊、注册登录,互相发送文件等功能。

ARM开发

学习书籍:
《嵌入式Linux开发应用开发完全手册_韦东山》、《Linux设备驱动程序》

  1. ARM
    arm架构、arm的模式、arm指令,寻址,异常,中断,异常向量表,
    伪指令、C语言和汇编代码的互相调用、内联汇编;
    常见的外设的裸机驱动开发,led、key、adc、pwm、rtc、看门狗、i2c、spi等
    这个阶段的内容,对于了解整个计算机软件的工作原理非常重要,Linux内核的很多机制都要依赖汇编指令,尤其ARM工作模式、寻址、异常,中断,异常向量表这些概念。

  2. 系统移植
    uboot移植、rootfs制作、内核剪裁移植,
    usb、网卡驱动移植,
    uboot、linux启动流程,
    自己添加uboot命令
    这一阶段的内容对于嵌入式工程师来说,在做实际项目的时候,会经常用到,各个厂家的移植步骤会有所差异,但原理基本相同,熟练掌握这些操作,非常必要。

  3. Linux驱动
    字符设备架构、inode、cdev、file_operations、file之间关系;
    platform总线、设备树;
    同步互斥机制,自旋锁、信号量、互斥体,原子操作;
    中断、中断底半部;
    等待队列,poll的实现;
    常见设备的驱动的编写,key,led,gpio,adc、pwm、i2c、mpu6050;
    网络设备:网卡驱动分析、netfilter使用;
    usb架构。


学习时间:

开始于2020年11月13日:《Linux命令行大全》


参考自一口Linux: https://blog.csdn.net/daocaokafei/article/details/108513929

你可能感兴趣的:(嵌入式)