新書推薦:
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
《
思考的框架3 巴菲特芒格马斯克推崇的思维方式 风靡华尔街的思维训练法 沙恩·帕里什 著
》
售價:NT$
295.0
《
森林疗法:拥抱大自然、获得幸福的季节性方法
》
售價:NT$
340.0
《
希腊人(伊恩·莫里斯文明史系列)
》
售價:NT$
845.0
《
亚马逊六页纸 如何高效开会、写作、完成工作
》
售價:NT$
349.0
《
世界巨变:严复的角色(王中江著作系列)
》
售價:NT$
500.0
《
塔西佗(全二册)(二十世纪人文译丛)
》
售價:NT$
1800.0
|
內容簡介: |
本书从嵌入式基础知识入手,介绍嵌入式系统的定义、基本组成、嵌入式系统最小系统及其工程应用等基本开发技术。全书共11章,内容主要包括嵌入式基础知识、Keil开发环境及调试方法、STM32F40x外设原理及控制方法、μC/OS-III实时操作系统原理及实践、FATFS文件系统、Linux系统开发环境、Linux系统命令及Vim使用、Linux系统应用程序开发基础、嵌入式Linux RK3399开发环境构建、嵌入式Linux系统驱动程序设计、嵌入式Linux Qt应用开发,每章都配有思考题及习题。 本书适合作为高等院校电气与电子信息类“嵌入式原理与应用”课程的教材,也可作为学习嵌入式应用基础的培训教材和自学参考书。
|
關於作者: |
宋跃,东莞理工学院电子工程与智能化学院教授,首届国家级一流本科课程、广东省高等学校本科精品课程、广东省精品开放资源共享课程“微机原理与单片机技术”负责人,一直从事微机原理、单片机、嵌入式等方面的教学与科研工作。
|
目錄:
|
第1章 嵌入式基础知识1.1 嵌入式系统简介1.1.1 嵌入式系统的定义1.1.2 嵌入式系统的组成1.1.3 嵌入式系统的特点1.1.4 嵌入式系统的应用领域1.2 嵌入式处理器基础知识1.2.1 嵌入式处理器分类1.2.2 嵌入式处理器体系结构1.2.3 嵌入式处理器发展方向1.3 ARM系列微处理器介绍1.3.1 ARM系列微处理器分类1.3.2 ARM Cortex系列微处理器1.4 ST公司系列微控制器介绍1.4.1 STM32微控制器简介1.4.2 STM32F1xx系列1.4.3 STM32F2xx系列1.4.4 STM32F4xx系列1.4.5 STM32微控制器芯片命名规则1.4.6 STM32F407ZGT6简介1.5 STM32F40x最小系统思考题及习题第2章 Keil开发环境及调试方法2.1 嵌入式系统开发环境概述2.1.1 MDK5简介2.1.2 基于CMSIS应用程序的基本架构2.2 嵌入式系统开发环境搭建2.2.1 需要安装的软件2.2.2 软件安装过程2.3 嵌入式系统开发环境调试方法2.3.1 创建工程2.3.2 Keil开发环境调试方法思考题及习题第3章 STM32F40x外设原理及控制方法3.1 时钟系统原理3.1.1 STM32F40x框架分析3.1.2 STM32F40x时钟系统分析3.1.3 时钟系统相关寄存器3.1.4 代码配置时钟系统3.2 GPIO模块原理3.2.1 GPIO框架分析3.2.2 GPIO核心寄存器分析3.2.3 位带操作3.2.4 STM32F407ZGT6时钟使能寄存器3.2.5 STM32F40x模块控制寄存器表示3.2.6 GPIO驱动示例3.3 中断模块原理3.3.1 中断的相关概念3.3.2 中断框架分析3.3.3 ARM公司通用的NVIC中断配置函数3.3.4 STM32F40x外部中断3.3.5 STM32F40x外部中断核心寄存器3.3.6 STM32F40x外部中断GPIO映射寄存器3.3.7 STM32F40x外部中断编程3.3.8 按键中断示例3.4 定时器模块原理3.4.1 定时器框架分析3.4.2 基本定时器的核心寄存器3.4.3 基本定时器示例3.5 UART模块原理3.5.1 通信概述3.5.2 UART通信接口3.5.3 UART模块框架分析3.5.4 UART核心寄存器3.5.5 UART模块编程示例3.6 I2C通信模块原理3.6.1 I2C总线概述3.6.2 I2C总线协议3.6.3 I2C总线编程实现3.6.4 I2C总线应用实例3.7 SPI通信模块原理3.7.1 SPI总线概述3.7.2 SPI通信模块框架分析3.7.3 SPI通信模块核心寄存器3.7.4 SPI通信模块示例3.8 ADC模块原理3.8.1 ADC模块介绍3.8.2 ADC模块框架分析3.8.3 ADC模块核心寄存器3.8.4 ADC模块应用示例3.9 DMA模块原理3.9.1 DMA概述3.9.2 DMA主要特点3.9.3 DMA模块框架分析3.9.4 如何使用DMA3.9.5 DMA模块核心寄存器3.9.6 DMA数据流配置流程3.9.7 DMA模块示例思考题及习题第4章 μC/OS-III实时操作系统原理及实践4.1 操作系统基础4.1.1 常见嵌入式操作系统4.1.2 操作系统的分类4.1.3 裸机程序与操作系统的比较4.2 初识μC/OS-III操作系统4.2.1 系统简介4.2.2 源码结构4.2.3 μC/OS系统裁剪4.2.4 任务优先级4.2.5 任务调度法则4.2.6 程序模板4.3 μC/OS-III任务使用4.3.1 任务的基本概念4.3.2 定义任务栈4.3.3 定义优先级4.3.4 定义任务控制块4.3.5 定义任务函数4.3.6 创建任务4.3.7 μC/OS-III时间管理4.3.8 μC/OS-III任务通信4.3.9 μC/OS-III临界区、调度器上锁思考题及习题第5章 FATFS文件系统5.1 文件系统概述5.2 FATFS文件系统概述5.3 FATFS文件系统的移植5.3.1 FATFS文件系统的移植准备5.3.2 FATFS文件系统的资源包5.3.3 FATFS文件系统的源码文件介绍5.3.4 FATFS文件系统的移植5.3.5 编写移植FATFS文件系统的主函数5.3.6 测试FATFS文件系统5.4 FATFS文件系统的API函数5.4.1 f_mount函数5.4.2 f_open函数5.4.3 f_close函数5.4.4 f_read函数5.4.5 f_write函数5.4.6 f_lseek函数5.4.7 f_sync函数5.4.8 f_mkdir函数5.4.9 f_opendir函数5.4.10 f_readdir函数5.5 FATFS文件系统使用示例思考题及习题第6章 Linux系统开发环境6.1 Linux系统简介6.1.1 Linux系统特点6.1.2 Linux系统安装6.2 VMware的安装6.2.1 VMware的下载6.2.2 VMware的安装6.3 Ubuntu安装到VMware6.3.1 创建虚拟机6.3.2 安装Ubuntu系统6.3.3 安装VMware Tools6.3.4 配置Windows共享目录6.3.5 安装常用的软件思考题及习题第7章 Linux系统命令及Vim使用7.1 Linux系统使用基础7.1.1 Linux系统基本使用方法7.1.2 命令终端的快捷键7.1.3 桌面/窗口的快捷键7.1.4 gedit文本编辑器的快捷键7.1.5 Linux系统使用注意事项7.2 Linux系统常用命令7.2.1 Linux系统命令使用基础7.2.2 Linux系统管理命令7.2.3 Linux文件管理命令7.2.4 Linux网络管理命令7.3 Vim文本编辑器7.3.1 Vim的安装7.3.2 Vim的启动7.3.3 Vim的工作模式7.3.4 Vim的配置思考题及习题第8章 Linux系统应用程序开发基础8.1 Linux系统应用程序设计8.1.1 Linux系统中C程序标准main函数8.1.2 GCC编译器8.1.3 GCC编译应用程序8.2 静态库和动态库8.2.1 静态库和动态库相关选项8.2.2 静态库的创建及使用8.2.3 动态库的创建及使用8.2.4 动态库与静态库的比较8.3 make工程管理器和Makefile文件8.3.1 Makefile文件的语法格式8.3.2 Makefile编译C程序示例8.3.3 Makefile文件的变量、规则与函数8.3.4 Makefile函数使用8.4 Linux系统文件I/O编程8.4.1 Linux系统文件分类8.4.2 Linux系统I/O分类8.4.3 Linux系统非缓冲I/O操作8.4.4 Linux系统缓冲I/O操作8.4.5 Linux系统文件信息获取8.4.6 Linux系统目录操作8.4.7 Linux系统时间和日期相关函数思考题及习题第9章 嵌入式Linux RK3399开发环境构建9.1 RK3399开发环境及系统烧写9.1.1 RK3399开发板平台介绍9.1.2 USB升级固件9.1.3 启动模式说明9.1.4 Parameter参数设置文件说明9.2 RK3399 U-Boot裁剪和编译9.2.1 Linux系统组成9.2.2 U-Boot源码获得9.2.3 U-Boot目录介绍9.2.4 ARM Linux GCC交叉编译器安装9.2.5 U-Boot裁剪和编译过程9.3 RK3399 Linux内核裁剪和编译9.3.1 Linux内核源码获得9.3.2 Linux内核源码目录结构9.3.3 Linux内核使用帮助说明9.3.4 Linux内核裁剪9.3.5 Linux编译内核9.3.6 烧写内核到开发板思考题及习题第10章 嵌入式Linux系统驱动程序设计10.1 Linux设备驱动基础10.1.1 Linux系统调用接口10.1.2 Linux系统设备分类10.1.3 Linux系统设备文件10.1.4 Linux系统内核框架10.1.5 Linux字符设备文件操作方法结构10.2 Linux系统内核模块编程10.2.1 Linux内核模块代码模板10.2.2 Linux内核模块编译10.2.3 Linux内核模块相关命令10.3 Linux杂项设备驱动模型10.3.1 Linux设备驱动基础知识10.3.2 杂项设备的核心结构10.3.3 杂项设备号10.3.4 杂项设备驱动模型特征10.3.5 杂项设备驱动注册/注销函数10.3.6 杂项设备驱动代码模板10.4 用户空间和内核空间的数据交换10.4.1 从用户空间复制数据到内核空间10.4.2 从内核空间复制数据到用户空间10.5 Linux GPIO内核API函数10.6 Linux GPIO LED驱动10.6.1 硬件原理图分析10.6.2 软件分析10.6.3 LED读写测试步骤10.6.4 LED读写测试结果10.7 Linux按键中断编程10.7.1 中断驱动编程基础10.7.2 Linux内核中断API函数10.7.3 RK3399虚拟中断编号10.8 Linux GPIO按键中断驱动10.8.1 硬件原理图分析10.8.2 按键中断服务程序的实现10.8.3 按键中断测试步骤10.8.4 按键中断测试结果思考题及习题第11章 嵌入式Linux Qt应用开发11.1 Linux系统安装Qt软件11.1.1 Qt软件下载11.1.2 安装Qt Creator11.1.3 安装格式化工具11.2 移植Qt到RK3399开发板11.2.1 制作精简的根文件系统11.2.2 移植tslib库到RK3399开发板11.2.3 移植Qt5.12.0到RK3399开发板11.3 配置RK3399 Qt编译环境11.3.1 增加RK3399 Qt配置11.3.2 交叉编译Qt应用程序11.3.3 测试编译Qt应用程序思考题及习题参考文献
|
|