一、嵌入式系统
-
专业定义:
以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统 -
简单理解:
除PC外,一切针对控制类的硬件设备开发都可以称嵌入式开发,嵌入式系统往往是要包含一个可用于编程控制的开发板(32、51等)及外围器件(温度、湿度传感器等)组成。
二、课程内容
(一)嵌入式的Linux基础
-
Linux基础指令
-
嵌入式C语言编程
- 基础:变量、数据类型、运算符、流程控制.......
- 高阶:数据结构与算法(单向链表、双向链表、二叉树、栈、队列......)、工程管理、 工程调试
- 核心:指针、构造类型、文件流、预处理......
- 进阶:数组、函数
(二)嵌入式Linux应用开发
-
Linux系统IO
-
Linux多进程/多线程
-
Linux网络编程
-
Linux数据库编程
(三)嵌入式Linux高级开发
1.C++(面向对象)
- 面向对象思想
- 面向对象三大特征(封装、继承、多态)
- 泛型编程
- STL编程
- IO流、异常处理
- ......
2. C(面向过程)
3. QT GUI编程
- 信号与槽机制
- 基础组件、布局
- 主窗口设计
- 对话框
- 网络数据库编程
- .......
(四)STM32开发
1. 基础(标准外设)
GPIO、中断、定时器、PWM......
2. 高级
传感器、总线、实时系统
(五)嵌入式Linux驱动开发(扩展)
内核架构 、内核剪裁、内核编译、字符设备、块设备......
三、为什么选择Linux
Linux是一个操作系统,开源的、免费的、可裁剪的,是一个基于文件的操作系统,所有的一切都是针对文件进行。在嵌入式开发中,扮演了非常重要的角色。
-
主要是由嵌入式产品特点来决定
-
内部是基于一个控制器
-
体积一般比较小(决定了嵌入式产品,它的硬件资源一般比较紧缺)
-
对功耗有要求
-
特定的应用
-
越来越智能化
四、操作系统
- 定义:操作系统就是运行在系统平台上的一套软件。可向应用程序提供访问硬件的接口,并可直接控制操作硬件运行。应用程序是运行在操作系统上的。