01.嵌入式开发路线
目录介绍
- 01.嵌入式开发大纲
- 02.C/C++基础技能
- 03.操作系统与Linux基础
- 04.Linux编程基础
- 05.嵌入式Linux应用开发
- 06.开发涉及到技术点
01.嵌入式开发大纲
1、C语言(熟悉,因为很多库都是基于C写的,调用或者移植需要)
2、C++语言(精通,开发使用的主要语言)
3、Linux操作系统(系统构成、启动原理、命令、权限、文件管理、驱动、进程、网络、服务管理、软件管理、各种系统api调用等)
4、嵌入式Linux应用开发(环境搭建、IDE使用、项目构建、模拟调试、真机调试等)
Android进阶提升
模块 | 描述 | 预计时间 |
---|---|---|
C语言 | 基础语法,输入输出,函数,结构体,指针,预处理,文件操作等 | 大概3天 |
C++语言 | 基础语法,函数,指针,引用,类,多线程,锁,内存分配,异常 | 大概4天 |
Linux操作系统 | 系统概念,文件系统,进程线程,网络,权限,指令,各种api | 大概5天 |
Linux应用开发 | 结合一本入门书籍,熟悉开发环境,GUI图形编程,综合案例学习 | 大概10天 |
02.C/C++基础技能
2.1 C基础技能
01.基础语法。熟悉C语言基础语法,运算,表达式,编译原理。
02.变量和数据类型。熟练基本数据类型,变量和常量,枚举和派生类型,字符串类型。
03.循环和选择。选择结构,循环结构,跳转语句等。
04.输入和输出。缓存和字节流,print输出数据,scanf,getchar等。
05.数组和容器。熟练使用数组和一些常见的容器。
06.函数和返回值。熟练c中函数定义,调用,值传递,函数模版,作用域等。
07.结构体。熟练使用结构体,定义,访问等。熟悉共用体,位域。
08.指针。熟悉指针使用,指针运算,指针数组,函数指针,指针传递等。
09.预处理。熟悉预处理器的使用。
10.文件操作。熟悉文件操作,文件读写,追加等操作。
11.应用调试。熟悉c语言断点调试,单步调试,断言函数,调试信息输出等。
2.2 C++基础技能
01.基础语法。数据类型,常量,变量,字符串,C++编译规范和原理。
02.运算符和表达式。算术,赋值,比较,逻辑,位,等各种运算符和表达式。
03.判断和循环。选择结构,循环结构,跳转语句等。
04.函数实践。函数调用,常见样式,值传递,函数声明,模版函数等。
05.指针和引用。指针定义,占用内存,空指针和野指针,指针和数据,指针和数组。
06.数组和容器。数组定义和使用,序列容器,关联容器,无序容器使用等。
07.输入和输出流。基本输入和输出,文件操作,IO读写等。
08.类和对象。结构体定义,结构体参数,对象的创建。
09.继承和派生。熟悉继承,重载函数,多态实践,抽象类和数据抽象。
10.多线程和并发。熟悉线程创建,取消,连接和分离,线程休眠和唤醒,并发编程。
11.线程安全锁。搞懂同步机制,线程安全锁使用,互斥锁mutex使用,解决并发问题。
12.内存分配堆和栈。动态内存分配,指针内存管理,内存分区模型等。
13.异常处理。熟悉异常声明和处理,定义异常,异常捕获设计等。
14.STL标准模板库。熟悉STL算法,迭代器,适配器,函数对象等。
03.操作系统与Linux基础
Linux基础:学习Linux的基本命令、文件系统、权限管理、文本处理工具(如grep、sed、awk等)。
操作系统概念:学习操作系统的基本概念,如进程、线程、内存管理、文件系统、I/O操作等。
04.Linux编程基础
系统编程:学习Linux系统编程,掌握文件I/O、进程控制、线程编程、IPC(进程间通信)等。
网络编程:学习套接字编程,理解TCP/IP协议,掌握基本的客户端和服务器编程。
嵌入式Linux:学习嵌入式Linux的基本架构,理解交叉编译、Bootloader、内核裁剪、根文件系统制作等。
05.嵌入式Linux应用开发
01.嵌入式系统基础。熟悉嵌入式系统概念,结构,操作系统,软件开发流程。
02.嵌入式C/C++语言基础。预处理,程序可移植,C和汇编接口,内核常见数据结构。
03.嵌入式Linux开发环境。环境搭建,开发环境配置,内核和移植,文件系统构建。
04.嵌入式文件IO编程。调用编程接口,系统IO概述,底层文件IO操作,串口应用,标准IO编程。
05.嵌入式Linux多任务编程。多任务,进程编程,熟悉进程通信,编写进程通信案例。
06.嵌入式网络编程。网络编程知识,Web服务器,NTP客户端实现。
07.QT图形编程学习。嵌入式GUI熟悉,窗口部件,界面编程,对话框等。
08.嵌入式应用程序练习。结合GitHub上一些优秀案例,找一到两个案例学习和练习一下。
06.开发涉及到技术点
1.数据处理:IO流,日志文件保存,文件处理,数据库使用等
2.网络:网络请求(Https),json数据解析,数据运用,网络连接
3.通信:进程间通信熟练使用,信号,共享内存,消息队列,管道等
4.UI相关:窗口部件,界面,文本,图片,熟悉LVGL框架,熟悉QT界面编程
5.硬件:音量调节,摄像头取流,图片编解码,传感器,补光灯,音频播放,网络,蓝牙
6.应用:应用打包,更新升级,应用重启
7.硬件交互:USB,串口通信,韦根
8.安全:包权限,签名
9.ROM相关:烧录,开机动画