gzyueqian
13352868059
嵌入式Linux及物联网系统开发课程
  ----基于 Cortex-A53 和 Cortex-M4 ARM 处理器
----基于嵌入式 Linux 和 uC/OS-III 操作系统

一、课程的特点和优势
广州粤嵌通信科技股份有限公司的实训课程采用 Cortex-A53+嵌入式 Linux 及Cortex-M4+uC/OS-III 双平台双系统,全面深入地对行业内广泛使用的嵌入式技术进行深入的学习和项目实践;使学员在学习过程中通过实操对全行业嵌入式技术有深刻的理解和掌握。通过本课程的学习,使学员可以在电视机机顶盒、多媒体广告机、平板电脑、手持移动终端、通信服务器、网络摄像头、流媒体服务器、四轴飞行器、车载导航、汽车行驶记录仪、智能机器人、工业现场控制等行业大显身手。

1.粤嵌实训内容

粤嵌自主研发与设计的双平台双系统嵌入式实训课程。



2.粤嵌的实训平台

1)Cortex-A53 平台






GEC6818 实验开发平台由嵌入式开发平台、液晶板、实验主板三大块组成,核心板采用8层板工艺设计, 确保稳定可靠,可以批量用于平板电脑、车载多媒体、学习机、POS 机、游戏机、行业监控等多种 领域。该平台搭载三星 Cortex-A53 系列高性能处理器 S5P6818,八核,最高主频高达 1.4GHz,可应用于嵌入式操作系统的高端应用开发。改平台支持千兆以太网、板载 LVDS 接口、MIPI 接口、PCIE 接口等。



GEC6818 实验开发平台支持三大操作系统,具备完整的教学资源和教学内容,包括:ARM 微处理器系统驱动的实验、嵌入式实时操作系统 Linux 开发、嵌入式 Android 系统开发、嵌入式 Android 应用开发、嵌入式系统项目实战开发等内容。



2)Cortex-M4 平台




二、课程适合的学员
· 应用电子技术、通信工程、电子信息工程、计算机应用、物联网、自动化技术、机电一体化技术等相关专业的毕业生。
· 有电子设备维护、维修等经验,并准备嵌入式硬件开发方向转型的工程师。
· 有软件测试、软件维护等经验,并准备向嵌入式软件开发方向转型的工程师。
· 有 51 单片机基础,准备向 Cortex-M3/M4 方向发展的工程师。
· 有 51 单片机基础,准备向 Linux 设备驱动开发方向发展的工程师。
· 有一定嵌入式硬件开发经验,准备从事嵌入式 Linux 应用开发的工程师。
· 有一定的嵌入式开发基础,有志于向 ARM 高性能处理器及嵌入式 Linux 操作系统开发方向发展的工程师。



三、课程实训目标
· 熟练掌握 C/C++编程语言,对数据结构有一定的了解。
· 掌握 Cortex-M4 开发工具及设计流程。
· 掌握 Cortex-M4 的外围接口使用,如:GPIO、中断、定时器、ADC、DAC、UART、看门狗等。
· 熟练掌握现场总线设计与应用,如:I2C 总线、SPI 总线、CAN 总线、RS485 总线等。
· 熟练掌握 linux 系统使用,并可以熟练地使用 linux 系统的开发、调试工具。
· 熟练掌握嵌入式 linux 应用编程,如:I/O 编程、多进程编程、多线程编程等。
· 熟练掌握嵌入式 linux 高级编程技术,如:串口编程、数据库编程、V4L2 编程等。
· 掌握嵌入式 linux GUI 设计方法。
· 熟悉嵌入式 linux 内核移植、uboot 移植及 rootfs 制作。
· 深刻理解嵌入式 linux 设备驱动开发。
· 对嵌入式 linux 系统在视频监控、网络通信、多媒体处理及智能控制领域有深入的理解。



四、职业规划目标
· C/C++软件开发工程师
· 嵌入式 linux 应用开发工程师
· 嵌入式 linux 驱动开发工程师
· 嵌入式 GUI 开发工程师
· Linux 网络应用开发工程师
· 嵌入式 linux 系统移植与裁剪工程师
· 嵌入式 linux 多媒体研发工程师
· 基于单片机、Cortex-M4 研发工程师
· 现场总线控制、现场总线通信应用开发工程师
· 嵌入式 uC/OS-III 开发工程师



五、课程大纲

第一阶段 嵌入式开发技术基础课程 (课程时长:3周)
本阶段课程帮助开发工程师快速了解嵌入式开发的基本要素,熟练使用 linux 操作系统,熟练掌握嵌入式 C 语言编程,对数据结构有一定的理解,更够熟练掌握一种嵌入式开发平台的使用和开发环境的搭建,为进一步学习嵌入式物联网应用开发打下良好的基础。
序号 课程子阶段 课程内容说明 课日
1 Linux 系统基础入门 Linux 各种发行版本与 Ubuntu
Linux 系统启动过程和基本安装步骤
vim 编辑器入门与提高
APT 软件包管理系统
Linux 基本shell命令
Linux 系统的文件与目录
Linux编译器的使用
1
2 搭建嵌入式 linux 开发环境 粤嵌 Cortex-A53 平台介绍及使用
嵌入式 Cortex-A53 平台的工作流程
如何安装嵌入式交叉工具链
嵌入式开发工具链的使用方法
搭建 NFS、TFTP 及 Samba 服务器
嵌入式 linux 应用程序开发流程
2
3 嵌入式 C 语言编程 C 语言基本数据类型
运算符,表达式和语句
C 基本控制流语句
函数的实现与使用
指针含义、指针运算、指针应用
指针与数据,二级指针与二维数组
字符串与字符串函数
结构体与地址对齐,复杂结构体
共用体、枚举与位段
条件编译、宏与带参宏的编写
变参函数、回调函数和内联函数
6
4 高质量的编码规范 常见的 C 语言编码规范
Makefile 文件
动态库与静态库的生成与使用
1
5 数据结构 单向链表
单向循环链表
双向循环链表
Linux 内核链表
顺序栈与链式栈
循环队列与链队列
排序算法、软件滤波算法
3
6 阶段项目开发与实现(一)《 超市购物计价系统》 本项目通过对 linux 系统开发环境的熟悉,采用基础的 C 语言编程知识,灵活巧妙的运用,完成超市购物计价系统的商品添加、计价消除、消费总价等功能,并且能够实现商品的存量查看与购物清单的生成。
目的是通过该项目能让工程师熟悉 C 语言各种常用语法、基本 数据结构,培养良好的编程思维。
3

第二阶段 嵌入式 linux 应用开发基础 (课程时长:2周)
当前主流的嵌入式设备中均运行架构复杂的操作系统,操作系统提供了多任务的实现机制,为了能让嵌入式设备实现更高效的运作,必须掌握嵌入式操作系统中最核心的系统编程技巧,包括:多进程编程、多线程编程、进程管理,进程间通信机制,线程间同步互斥机制、线程池机制等。
序号 课程子阶段 课程内容说明 课日
1 Linux IO 编程 Linux 系统 IO 编程
Linux 文件和目录操作方法
多路复用
Linux 标准 IO 编程
时间及日期编程实例用
2
2 Linux 多进程编程 Linux 进程环境
Linux 进程控制编程
Linux 进程间通信之管道
Linux 进程间通信之信号
Linux 进程间通信之 System V IPC
Linux 守护进程设计
3
3 Linux 多线程编程 LINUX 线程基本概念
线程同步与互斥之互斥锁
线程同步与互斥之读写锁
线程同步与互斥之信号量
线程同步与互斥之条件变量
线程属性与线程池
多线程并发拷贝
2
4 阶段项目开发与实现(二)《多媒体广告发布终端》 将 jpg 格式的广告图片及 mp3 格式的背景音乐存放在 SD 卡中,插入 SD 卡后自动播放广告。此产品可以应用在电梯候梯间、产品展示橱柜、校园信息发布等场合。用户也可以通过触摸屏与广告机产品进行交互,查阅设备中的广告信息。
3

第三阶段 Cortex-M4 应用开发 (课程时长:3.5周)
Cortex-M4 是 ARM 公司针对嵌入式微控制器应用开发的 MCU 内核,具有低成本、高性能 的巨大优势,在众多领域已经取代了 51 单片机,成为嵌入式微控制器应用领域的主流控制芯片。
本阶段课程将讲述 Cortex-M4 微控制器和 uC/OS-III 嵌入式操作系统,并使二者完美结合,使工程师可以尽快进入智能家居、工业控制、四轴飞行器、智能穿戴、汽车电子等领域的项目开发。
序号 课程子阶段 课程内容说明 课日
1 Cortex-M4 开发基础 ARM 系列芯片介绍
Cortex-M4 体系结构
粤嵌 Cortex-M4 平台介绍
Keil MDK 开发环境及 J-Link 仿真器使用
Cortex-M4 时钟体系及时钟管理
Cortex-M4 GPIO 配置及使用
Cortex-M4 中断实现流程及编程实例
Cortex-M4 System Tick 定时器使用
Cortex-M4 PWM 定时器
Cortex-M4 UART 原理及蓝牙通信模块应用
Cortex-M4 看门狗原理及应用编程
Cortex-M4 RTC 原理及应用编程
6
2 Cortex-M4 高级开发 ADC 原理、控制编程及传感器使用
DAC 原理、控制编程及传感器使用
I2C 总线原理及应用编程
SPI 总线原理、控制编程及 RFID 读卡器编程
通信协议定制方法及数据收发
RS485 总线原理及组网编程技术
CAN 总线原理及组网编程技术
LWIP 移植与使用
5
3 uC/OS-III 操作系统开发 uC/OS-III 操作系统原理
uC/OS-III 在 Cortex-M3/M4 平台上的移植
uC/OS-III 多任务编程
uC/OS-III 多任务间通信
uC/OS-III 同步与互斥
uC/OS-III 中断处理
uC/OS-III 系统时钟应用
2
4 阶段项目开发与实现(三)《智能家居报警系统》 使用人体红外传感器、可燃气体传感器、火焰传感器、指示灯、直流电机、步进电机、GPRS 模块实现家居智能远程控制及报警功能产品。
4

第四阶段 嵌入式 linux 应用高级开发 (课程时长:3周)
计算机网络在嵌入式 Linux 系统应用开发过程中使用非常广泛,本阶段课程从 Linux 网络发展、TCP/IP 协议、socket 编程、TCP 网络编程、UDP 网络编程、Web 编程开发等方面入手,全面讲解 Linux 网络应用程序开发。Linux 的串口编程、音视频编程、嵌入式数据库编程等技术也是嵌入式高级应用开发常用的技术。
序号 课程子阶段 课程内容说明 课日
1 Linux 串口编程 Linux 串口编程原理
Linux 串口编程方法
select()函数的使用
串口通信应用协议及示例
1
2 Linux 网络编程 TCP/IP 分层思想、TCP/UDP 用途
socket、ip 地址、端口号
TCP 编程 API 及 IO 模型
UDP 编程 API
网络工具 wireshark 用法
数据包传输
网络属性设置和超时检测
TCP 带外数据及编程方法
广播和组播
非阻塞和异步 I/O
网络编程实例 1---获取网络时间
网络编程实例 2---获取网络天气信息
网络编程实例 3---大文件的断点续传
4
3 嵌入式数据库编程 数据库系统概述及关系数据库
关系数据库标准语言 SQL
sqlite3 的 C/C++接口函数
sqlite3 的编程与使用
sqlite3 移植到嵌入式平台
数据采集、存储及检索方法
2
4 linux shell 编程 shell 编程基础
环境变量与 shell 变量
shell 特殊字符
shell 的流程控制
shell 程序运行于调试
2
5 Linux 音视频编程 音频接口 ALSA 应用编程
V4L2 视频采集方法
视频编码格式及视频流
视频编码解码库 ffmpeg 移植及应用
2
6 嵌入式 web 服务器搭建及开 发 嵌入式 web 服务器原理
嵌入式 web 服务器移植
CGI 程序设计
1
7 阶段项目开发与实现(四)《基于 H.264 的视频监控系统》 嵌入式平台采集摄像头视频,并将视频采用 H.264 编码进行压缩,压缩后将视频流发送给客户端显示。
3

第五阶段 嵌入式 GUI 系统编程开发 (课程时长:2.5周)
熟悉掌握 GUI 系统编程是嵌入式系统开发的用户体验的一个重要环节。在实训过程中将引入真实案 例、传授大量实战技巧和开发经验。使学员完成此课程后将具有主流嵌入式图形系统开发应用的能力。
序号 课程子阶段 课程内容说明 课日
1 C++语法及编程提高 C++ 基本程序的书写
C++ 数据类型和变量、运算符的使用
C++ 控制流、数组的使用
C++ 对象的本质、类和对象的关系
C++ 的封装、类的继承、多态性
5
2

QT 应用开发进阶

Qt 应用编程主要方法、Qt 的主要控件、Qt 的信号与槽
常用图形界面组件、事件处理方法
QPaintter 与画笔特效、分组布局、切分窗口、滚动区 域
Qt 的容器、文本与目录操作、数据库操作
Qt 的多进程、Qt 多线程、Qt 的网络通信
嵌入式 QT 的移植
QT 的安卓特性应用
5
3 阶段项目开发与实现(五)《餐厅自助点菜系统》 该项目可以应用于中西餐饮酒楼、大中型美食广场、连锁快餐、茶餐厅、咖啡厅、火锅店、酒吧、西式汉堡、奶茶饮品、面包、早茶店等酒店餐饮场合。 完成用户自动下单,自动结算。
3

第六阶段 嵌入式 linux 系统移植及驱动开发(课程时长:3.5周)
本阶段课程使工程师们深入理解嵌入式硬件平台的系统框架、熟悉 ARM 平台的硬件设计 原理、理解 uboot 移植、内核配置与移植、rootfs 制作等方法。
Linux 设备驱动程序是嵌入式操作系统和嵌入式硬件沟通的桥梁,没有设备驱动,应用 程序就是空中楼阁,嵌入式 linux 设备驱动开发课程深入地讲解了在嵌入式平台中,linux 系统控制硬件的方法和框架。可以使工程师深入理解 linux 系统内核的架构,并可以熟练设 计 linux 设备驱动程序,掌握 linux 设备驱动移植方法。
序号 课程子阶段 课程内容说明 课日
1 嵌入式平台软硬件框架分析 Cortex-A53 硬件平台的架构
Cortex-A53 软件层次分析
粤嵌 Cortex-A53 平台启动过程分析
1
2 系统移植 u-boot 原理与工作过程
u-boot 编译与使用方法
u-boot 移植过程
linux 内核源码架构
嵌入式 linux 内核编译方法
嵌入式 linux 内核的移植过程
嵌入式 linux 根文件系统工作原理
根文件系统的制作过程
如何将 uboot、内核映像及根文件系统写入开发平台
如何开机自启动应用程序
4
3 Linux 设备驱动开发 Linux 的内核模块
字符设备驱动模型
MMU 与 IO 内存映射
misc 设备驱动模型
内存管理与分配
Linux 内核中断驱动设计
内核同步机制—自旋锁、信号量、互斥锁与等待队列等
Linux 内核时间管理
设备驱动的 platform 模型
内核设备驱动管理—如何将设备驱动编译到内核。
linux 输入子系统模型
linux IIC 子系统
无线 wifi 驱动移植
LED 灯、蜂鸣器、按键驱动设计实例
温湿度传感器、可燃气体传感器驱动设计实例
ADC 驱动设计实例
人体红外传感器设计实例
10
4 阶段项目开发与实现(六)《智能云教室》 智能云家居网关通过物联网技术将家中的各种设备(如 音视频设备、照明系统、窗帘控制、空调控制、安防系统、 数字影院系统等)连接到一起,提供家电控制、照明控制、 远程控制、防盗报警、环境监测、以及可编程定时控制等 多种功能和手段。
3

第七阶段 创客孵化综合项目 (课程时长:3周)
序号 课程子阶段 课程内容说明 课日
1 《可视对讲系统》  
2 《智慧农业系统》  
3

《智能管家机器人》

 
4

《智能小车》

基于 Cortex-M4 平台的智能小车,可以自动避障、超声波测距、手机蓝牙远程控制能功能。  
5

《汽车行驶记录仪》

汽车行驶记录仪的主要功能有:GPRS 传送信息,刷卡登录、监控车速、监控油量、业务单打印等。  
6

《个人健康助手》