《STM32嵌入式系统开发实战指南》是2013年机械工业出版社出版的图书,作者是李志明,檀永,徐石明,丁孝华,桑林。
该书适合已熟悉STM32的操作、掌握基于STM32官方驱动库的前后台模式套用软体开发的读者或初级嵌入式软体开发工程师阅读。
基本介绍
- 书名STM32嵌入式系统开发实战指南
- 作者李志明,檀永,徐石明,丁孝华,桑林
- ISBN9787111417163
- 页数320
- 定价69.00元
- 出版社机械工业出版社
- 出版时间2013-5
- 副标题FreeRTOS与LwIP联合移植
内容简介
《STM32嵌入式系统开发实战指南》以一款轻量级嵌入式实时作业系统为样本,阐述了嵌入式实时作业系统任务管理、时间管理、资源共享、记忆体管理等机制,介绍了核心及TCP/IP的移植和具体使用方法。为了避免枯燥的理论阐述,本书辅以适量的例程帮助大家学习。,本书还简要阐述了硬体平台设计、项目开展的一般步骤和注意事项。
《STM32嵌入式系统开发实战指南》适合已熟悉STM32的操作、掌握基于STM32官方驱动库的前后台模式套用软体开发的读者或初级嵌入式软体开发工程师阅读。本书由李志明,檀永,徐石明,丁孝华,桑林编着。
图书目录
序言
前言
第一篇 平台篇
第1章 ARM处理器简介
1.1 ARM核心处理器沿革
1.1.1 传统ARM处理器
1.1.2 Cortex核心处理器
1.2 Cortex核心系列处理器技术特点
1.2.1 ARM Cortex-M系列处理器
1.2.2 ARM Cortex-R系列处理器
1.2.3 ARM Cortex-A系列处理器
1.3 STM32互联型嵌入式控制器
1.4 微控制器选型
1.4.1 选型因素
1.4.2 选型示例
第2章 基于STM32F107的开发板
2.1 STM32F107开发板
2.2 主要板载资源
2.2.1 10/100M乙太网接口
2.2.2 CAN汇流排接口
2.2.3 RS485汇流排接口
2.2.4 其他汇流排接口
2.3 硬体设计要点
2.3.1 电磁兼容问题
2.3.2 信号完整性
2.3.3 电源完整性
第3章 开发环境
3.1 开发环境及搭建
3.1.1 常见开发环境
3.1.2 IAR EWARM安装
3.1.3 RealView MDK安装
3.2 相关开发工具
3.3 创建工程
第4章 编程规范
4.1 ST固件库编程规范
4.1.1 缩写
4.1.2 命名规则
4.1.3 编码规则
4.2 基于C语言的嵌入式编程规范
4.2.1 原始码的排版
4.2.2 原始码的注释
4.2.3 标识符命名
4.2.4 代码可读性
4.2.5 变数、结构
4.2.6 函式、过程
4.2.7 可测性
4.2.8 程式效率
4.2.9 质量保证
4.2.10 代码编辑、编译、审查
4.2.11 测试与维护
4.2.12 宏定义
第5章 项目规划
5.1 概述
5.2 系统分析
5.3 系统设计
5.4 系统製造
5.5 系统运用及反馈
5.6 开发团队
5.6.1 团队负责人
5.6.2 调研人员
5.6.3 开发人员
第二篇 RTOS篇
第6章 作业系统原理基础知识
6.1 前后台模式应用程式
6.2 嵌入式作业系统
6.2.1 相关基本概念
6.2.2 系统调用
6.2.3 作业系统结构
6.2.4 进程与任务
6.2.5 进程间的通信
6.2.6 进程调度
6.2.7 存储管理
第7章 FreeRTOS嵌入式作业系统
7.1 FreeRTOS特色
7.2 任务管理
7.2.1 任务函式
7.2.2 基本任务状态
7.2.3 任务创建
7.2.4 任务的优先权
7.2.5 非运行状态
7.2.6 空闲任务及回调函式
7.2.7 改变任务优先权
7.2.8 删除任务
7.2.9 调度算法概述
7.3 伫列管理
7.3.1 概述
7.3.2 使用伫列
7.3.3 大型数据单元传输
7.4 中断管理
7.4.1 延迟中断处理
7.4.2 计数信号量
7.4.3 在中断服务例程中使用伫列
7.4.4 中断嵌套
7.5 资源管理
7.5.1 基本概念
7.5.2 临界区与挂起调度器
7.5.3 互斥量
7.5.4 互斥的另一种实现
7.6 记忆体管理
7.6.1 概述
7.6.2 记忆体分配方案範例
7.7 常见错误
7.7.1 概述
7.7.2 栈溢出
7.7.3 其他常见错误
第8章 基于STM32F107的FreeRTOS移植
8.1 概述
8.2 FreeRTOS移植
8.2.1 portmacro.h头档案
8.2.2 port.c源档案
8.2.3 portasm.s彙编源档案
8.2.4 其他问题
8.3 创建测试任务
第三篇 LwIP篇
第9章 TCP/IP协定栈介绍
9.1 引言
9.2 网路分层
9.2.1 OSI七层参考模型
9.2.2 TCP/IP分层
9.2.3 TCP/IP协定簇的协定
9.3 IP协定
9.4 ARP协定与RARP协定
9.5 ICMP
9.6 TCP协定
9.7 UDP协定
9.8 FTP协定
第10章 LwIP轻量级TCP/IP协定栈
10.1 LwIP进程模型
10.2 LwIP缓冲与记忆体管理
10.2.1 LwIP动态记忆体管理机制
10.2.2 LwIP的缓冲管理机制
10.3 LwIP网路接口
10.4 LwIP的ARP处理
10.5 LwIP的IP处理
10.6 LwIP的ICMP处理
10.7 LwIP的UDP处理
10.8 LwIP的TCP处理
10.8.1 TCP处理流程概述
10.8.2 TCP控制块
10.8.3 LwIP的TCP滑动视窗
10.8.4 LwIP的TCP逾时与重传
10.8.5 LwIP的TCP拥塞控制
10.8.6 LwIP的TCP定时器
10.9 LwIP的应用程式接口简介
10.9.1 RAW API接口
10.9.2 Sequential API接口
第11章 基于STM32F107的LwIP移植
11.1 etherif.c档案的移植
11.1.1 etherif_init函式
11.1.2 low_level_init函式
11.1.3 etherif_input函式
11.1.4 low_level_input函式
11.1.5 low_level_output函式
11.2 网路驱动移植
11.2.1 乙太网控制器概述
11.2.2 乙太网控制器硬体配置
11.2.3 乙太网控制器硬体的引脚配置
11.2.4 乙太网驱动之接收
11.2.5 乙太网驱动之传送
11.2.6 其他注意事项
11.3 基于RAW API接口的HelloWorld例程
第四篇 移植篇
第12章 基于FreeRTOS的LwIP协定栈移植
12.1 概述
12.2 FreeRTOS下乙太网驱动程式的移植
12.3 LwIP程式移植
12.3.1 乙太网接口档案etherif.c的移植
12.3.2 作业系统模拟层档案sys_arch.c的移植
第13章 工业通信网关解析
13.1 概述
13.2 编码实现
13.3 通信测试
附录A 开发板原理图
附录B 专业术语
参考文献
前言
第一篇 平台篇
第1章 ARM处理器简介
1.1 ARM核心处理器沿革
1.1.1 传统ARM处理器
1.1.2 Cortex核心处理器
1.2 Cortex核心系列处理器技术特点
1.2.1 ARM Cortex-M系列处理器
1.2.2 ARM Cortex-R系列处理器
1.2.3 ARM Cortex-A系列处理器
1.3 STM32互联型嵌入式控制器
1.4 微控制器选型
1.4.1 选型因素
1.4.2 选型示例
第2章 基于STM32F107的开发板
2.1 STM32F107开发板
2.2 主要板载资源
2.2.1 10/100M乙太网接口
2.2.2 CAN汇流排接口
2.2.3 RS485汇流排接口
2.2.4 其他汇流排接口
2.3 硬体设计要点
2.3.1 电磁兼容问题
2.3.2 信号完整性
2.3.3 电源完整性
第3章 开发环境
3.1 开发环境及搭建
3.1.1 常见开发环境
3.1.2 IAR EWARM安装
3.1.3 RealView MDK安装
3.2 相关开发工具
3.3 创建工程
第4章 编程规范
4.1 ST固件库编程规范
4.1.1 缩写
4.1.2 命名规则
4.1.3 编码规则
4.2 基于C语言的嵌入式编程规范
4.2.1 原始码的排版
4.2.2 原始码的注释
4.2.3 标识符命名
4.2.4 代码可读性
4.2.5 变数、结构
4.2.6 函式、过程
4.2.7 可测性
4.2.8 程式效率
4.2.9 质量保证
4.2.10 代码编辑、编译、审查
4.2.11 测试与维护
4.2.12 宏定义
第5章 项目规划
5.1 概述
5.2 系统分析
5.3 系统设计
5.4 系统製造
5.5 系统运用及反馈
5.6 开发团队
5.6.1 团队负责人
5.6.2 调研人员
5.6.3 开发人员
第二篇 RTOS篇
第6章 作业系统原理基础知识
6.1 前后台模式应用程式
6.2 嵌入式作业系统
6.2.1 相关基本概念
6.2.2 系统调用
6.2.3 作业系统结构
6.2.4 进程与任务
6.2.5 进程间的通信
6.2.6 进程调度
6.2.7 存储管理
第7章 FreeRTOS嵌入式作业系统
7.1 FreeRTOS特色
7.2 任务管理
7.2.1 任务函式
7.2.2 基本任务状态
7.2.3 任务创建
7.2.4 任务的优先权
7.2.5 非运行状态
7.2.6 空闲任务及回调函式
7.2.7 改变任务优先权
7.2.8 删除任务
7.2.9 调度算法概述
7.3 伫列管理
7.3.1 概述
7.3.2 使用伫列
7.3.3 大型数据单元传输
7.4 中断管理
7.4.1 延迟中断处理
7.4.2 计数信号量
7.4.3 在中断服务例程中使用伫列
7.4.4 中断嵌套
7.5 资源管理
7.5.1 基本概念
7.5.2 临界区与挂起调度器
7.5.3 互斥量
7.5.4 互斥的另一种实现
7.6 记忆体管理
7.6.1 概述
7.6.2 记忆体分配方案範例
7.7 常见错误
7.7.1 概述
7.7.2 栈溢出
7.7.3 其他常见错误
第8章 基于STM32F107的FreeRTOS移植
8.1 概述
8.2 FreeRTOS移植
8.2.1 portmacro.h头档案
8.2.2 port.c源档案
8.2.3 portasm.s彙编源档案
8.2.4 其他问题
8.3 创建测试任务
第三篇 LwIP篇
第9章 TCP/IP协定栈介绍
9.1 引言
9.2 网路分层
9.2.1 OSI七层参考模型
9.2.2 TCP/IP分层
9.2.3 TCP/IP协定簇的协定
9.3 IP协定
9.4 ARP协定与RARP协定
9.5 ICMP
9.6 TCP协定
9.7 UDP协定
9.8 FTP协定
第10章 LwIP轻量级TCP/IP协定栈
10.1 LwIP进程模型
10.2 LwIP缓冲与记忆体管理
10.2.1 LwIP动态记忆体管理机制
10.2.2 LwIP的缓冲管理机制
10.3 LwIP网路接口
10.4 LwIP的ARP处理
10.5 LwIP的IP处理
10.6 LwIP的ICMP处理
10.7 LwIP的UDP处理
10.8 LwIP的TCP处理
10.8.1 TCP处理流程概述
10.8.2 TCP控制块
10.8.3 LwIP的TCP滑动视窗
10.8.4 LwIP的TCP逾时与重传
10.8.5 LwIP的TCP拥塞控制
10.8.6 LwIP的TCP定时器
10.9 LwIP的应用程式接口简介
10.9.1 RAW API接口
10.9.2 Sequential API接口
第11章 基于STM32F107的LwIP移植
11.1 etherif.c档案的移植
11.1.1 etherif_init函式
11.1.2 low_level_init函式
11.1.3 etherif_input函式
11.1.4 low_level_input函式
11.1.5 low_level_output函式
11.2 网路驱动移植
11.2.1 乙太网控制器概述
11.2.2 乙太网控制器硬体配置
11.2.3 乙太网控制器硬体的引脚配置
11.2.4 乙太网驱动之接收
11.2.5 乙太网驱动之传送
11.2.6 其他注意事项
11.3 基于RAW API接口的HelloWorld例程
第四篇 移植篇
第12章 基于FreeRTOS的LwIP协定栈移植
12.1 概述
12.2 FreeRTOS下乙太网驱动程式的移植
12.3 LwIP程式移植
12.3.1 乙太网接口档案etherif.c的移植
12.3.2 作业系统模拟层档案sys_arch.c的移植
第13章 工业通信网关解析
13.1 概述
13.2 编码实现
13.3 通信测试
附录A 开发板原理图
附录B 专业术语
参考文献