目录

第一阶段:夯实基础。掌握C语言,理解基本电路理论知识。

第二阶段:基础学习。通过C语言学习51单片机,了解裸机编程概念与汇编语言。

第三阶段:基础进阶。学习STM32单片机,理解数据结构相关知识。

过度阶段:RTOS学习。(选)学习实时操作系统,对操作系统基础概念进行一定的了解。

第四阶段:嵌入式学习。学习Linux基本操作、开发环境配置。

第五阶段:嵌入式进阶学习。学习Linux高级编程,驱动开发、应用开发。

一、夯实基础:C语言、电路理论

1、掌握C语言

C语言基础部分主要包括几个核心知识点:语法结构、数据类型、函数、结构体、指针等。对于C语言基础学习,一定要重点熟练掌握,根基的牢固直接决定了我们的代码质量。

图片

书籍:谭浩强《C语言程序设计》,

对刚接触C语言的同学来说,一本基础知识全面的书籍才是最合适的。不存在完全没有错误的书籍,但是如果你能发现并验证核实书上写错了的知识点,那么恭喜你,你的C语言已经很熟练了。

软件:VS、VC、VScode(三选一即可)。

C语言代码运行软件,VC内存小功能少,VS功能多但是有十几G大小,VScode上手有一定难度,体积较小。

2、理解基本电路理论知识。

书籍:邱关源《电路》,要能够学会基本的电路分析,认识基本的元器件。

电路知识点:认识基本元器件(电阻、电容、电感)、常用电路理论知识(欧姆定律、基尔霍夫定律、等效定律)。

图片

二、基础学习:51单片机、汇编

1、掌握51单片机,

主要知识点有:输入输出(流水灯、按键)、通讯协议(IIC、SPI、USART)、定时器、中断等。

开发板:普中科技

51单片机的属于8位的单片机,是最初级的控制器。普中科技的51单片机开发板价格大概在一百元以内,有着配套的视频与资料,比较全面,适合初学者。

软件:keil

Keil软件是单片机程序编写与编译的常用软件,开发板都会有配套的安装包与教程。

2、了解裸机编程概念与汇编语言。

单片机的控制逻辑其核心还是电平信号的控制,虽然我们是使用的C语言进行控制,但是其底层还是进行寄存器的操作。而了解汇编语言更能直观的感受寄存器操作。或者可以看看Keil51单片机工程中通常都要包含的reg52.h文件中的程序。

三、基础进阶:STM32、数据结构

1、掌握STM32单片机,

基础知识点有:输入输出(流水灯、按键)、通讯协议(IIC、SPI、USART)、定时器、中断等。

进阶知识点:DMA通信、CAN通信、ADC、DAC、显示屏、STM32时钟架构、总线架构、电源管理、功耗模式

开发板:正点原子

STM32单片机的属于32位的单片机,是较为常见的控制器。正点原子的STM32单片机开发板有着配套的视频与资料以及论坛,比较全面,适合初学者。

OpenEdv-开源电子网-正点原子论坛

软件:keil

Keil软件是单片机程序编写与编译的常用软件,开发板都会有配套的安装包与教程。

图片

2、理解数据结构相关知识。

书籍:程杰《大话数据结构》、严蔚敏《数据结构(C语言版)》等

数据结构是一门对于编程来说可以受益终身的课程,它可以让你的思维从如何写出代码到如何写出效率高的代码转变。《大话数据结构》主要以通俗易懂为主,但是可能讲的不算太深,如果对数据结构理解起来比较吃力的话可以先看《大话数据结构》,再循序渐进阅读其他深入一点的数据结构书籍。

过度阶段:RTOS学习。(选)

图片

如果担心自己基础不好的话,可以考虑先学习一下RTOS实时操作系统,它的内核比操作系统的内核小很多,可以理解为简易版的操作系统,但是其核心还是用单线程模拟多线程,有很多的概念与操作系统大同小异。

主要学习:移植Ucos系统、多任务管理、调度算法、消息队列、信号量互斥量、事件、内存管理等。

书籍:《野火-RT-Thread内核实现与应用开发实战指南(基于STM32)》

开发板:正点原子潘多拉开发板。

四、嵌入式学习

开发板:韦东山开发板(都有配套视频与资料)

网站:百问网嵌入式专家-韦东山嵌入式专注于嵌入式课程及硬件研发 (100ask.net)

书籍:韦东山《嵌入式Linux应用开发完全手册》

1、学习Linux基本操作、开发环境配置。

主要学习:Linux常用命令、VIM学习、Linux的Shell编程、Gcc编译、Makefile等。

软件:虚拟机软件VM、ubuntu系统

开发环境、嵌入式裸机开发在开发板中有配套视频与资料。

图片

2、学习Linux驱动开发。

Linux应用开发、驱动开发、内核移植、文件系统等。

主要学习:内核模块编译原理、字符设备驱动框架、平台设备驱动、设备树、Pinctrl子系统、I2C子系统、中断子系统、块设备驱动框架、Bootloader等

图片

3、学习Linux内核。

主要学习:系统调用、存储管理、进程管理、内存管理、文件管理等。

图片

4、学习Linux应用开发。

主要学习:QT编程、TCP/IP协议、HTTP协议等。

图片

-END-

作者 隔壁老王

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注