目录
第一阶段:夯实基础。掌握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-