STM32嵌入式系统开发实战指南附光盘FreeRTOS与LwIP联合移植* o5 @. a) ~5 i& r3 w# {4 v 作 者:李志明//檀永//徐石明//丁孝华//桑林4 j9 E! \$ Q* h7 T' S5 }: G2 F8 R 出 版 社:机械工业3 }! Q2 |1 ], Y$ W& a; ^- {# Z 出版时间:2010-05-01/ g4 W! K4 m' r! O+ m7 U: U 内容推荐+ h, r: r3 Q6 A7 j; b6 S* ~6 S! t4 l 嵌入式实时操作系统可以将产品的应用开发和底层开发有效分层,这样在产品更新的过程中,仅仅需要更改底层接口。这样做不仅可以增强代码可读性,而且可以加快产品的开发周期。因此。掌握嵌入式实时操作系统和网络应用开发相关技术已经迫在眉睫。 《STM32嵌入式系统开发实战指南》以业界最流行的微处理器STM32为平台,详细剖析了开源嵌入式实时操作系统FreeRTOS和TCP/IP开源协议栈LwIP的移植过程,为想要学习嵌入式系统开发的读者扫清了学习这两门关键技术的障碍。本书由李志明,檀永,徐石明,丁孝华,桑林编著。0 X& x% B! y5 q* N! w K$ L3 {& G 目录2 e; p' A5 T5 L; P7 k9 B" s3 ] ( u2 {- H; m- Q ?- M( ?# K9 c! | 序言+ s; c% k% Z+ c; c: E+ _6 k 前言 第一篇 平台篇' G* E" B( Z! ^9 ~' }5 C4 u1 L 第1章 ARM处理器简介$ q0 K; O u$ J9 x 1.1 ARM内核处理器沿革9 c" I. E- c4 s2 `7 Y$ P 1.1.1 传统ARM处理器 1.1.2 Cortex内核处理器" s, N5 h _9 N% r& z 1.2 Cortex内核系列处理器技术特点 1.2.1 ARM Cortex-M系列处理器( v4 i& V+ M* b/ S 1.2.2 ARM Cortex-R系列处理器 1.2.3 ARM Cortex-A系列处理器9 x+ {' \8 Z) O8 } 1.3 STM32互联型嵌入式控制器 1.4 微控制器选型 1.4.1 选型因素: M+ e. I! x& K( J$ N) K1 v% U 1.4.2 选型示例 第2章 基于STM32F107的开发板 2.1 STM32F107开发板 2.2 主要板载资源 2.2.1 10/100M以太网接口, S Z2 V/ N8 X3 X v. E) F 2.2.2 CAN总线接口* ~/ P# P* J; Y9 U 2.2.3 RS485总线接口 2.2.4 其他总线接口; h1 Z. B" {: {3 \' o5 P6 S* Z 2.3 硬件设计要点% A- y5 B& b. ^+ a p# [ 2.3.1 电磁兼容问题9 w' W8 U9 A- J2 _0 _ 2.3.2 信号完整性 2.3.3 电源完整性 第3章 开发环境" C1 l7 h" K% Z+ o# {& t 3.1 开发环境及搭建4 s4 c, }% C: j! R! @, N0 v( x 3.1.1 常见开发环境 3.1.2 IAR EWARM安装) g; E3 K3 i) }( k5 X# Q5 |0 x3 m 3.1.3 RealView MDK安装 3.2 相关开发工具 3.3 创建工程, T0 }% ^3 Z* H7 O1 z @3 I$ X5 P 第4章 编程规范# n+ d3 i3 f1 P Q+ B 4.1 ST固件库编程规范! b. E; }, i1 u7 k- q6 D7 i, d 4.1.1 缩写- C8 k- q. _: M! k. [0 N 4.1.2 命名规则 4.1.3 编码规则9 ^ l% H" i8 A2 ?' d3 K9 V 4.2 基于C语言的嵌入式编程规范 4.2.1 源代码的排版' L) [4 V$ l8 J; y: ^ 4.2.2 源代码的注释 4.2.3 标识符命名1 {. y% _4 \! K3 i* C5 a 4.2.4 代码可读性# ~( W+ Z; a6 K# {; v9 S1 \ 4.2.5 变量、结构 4.2.6 函数、过程; r3 e" {) r P% O7 p5 T 4.2.7 可测性 4.2.8 程序效率: ]/ h R+ C# L8 Y V1 k1 d6 U- P 4.2.9 质量保证, c) e) _0 ]! @" E# D# c 4.2.10 代码编辑、编译、审查. T. j7 J; _0 I" C8 y: E& g' g 4.2.11 测试与维护4 j8 O& O F2 X 4.2.12 宏定义8 A" Q1 |3 d0 @% j7 o& I 第5章 项目规划 5.1 概述; k$ T0 \" Y2 M+ ]! @ 5.2 系统分析+ k" k: p! o' D; H9 C: d9 @% g0 ]8 s 5.3 系统设计 5.4 系统制造 5.5 系统运用及反馈- v: Y# m2 v& i: K 5.6 开发团队 5.6.1 团队负责人 5.6.2 调研人员$ s D* P. e p4 K! ^* y! b9 P/ M9 M 5.6.3 开发人员 第二篇 RTOS篇' O+ J# A" p3 w9 s; W8 E N6 } 第6章 操作系统原理基础知识* V6 ?- m2 @6 k6 u1 \ 6.1 前后台模式应用程序 6.2 嵌入式操作系统1 H: a* {$ E- _9 w' O% O 6.2.1 相关基本概念* l; A+ f& X( [$ Q) a c9 r+ X 6.2.2 系统调用 6.2.3 操作系统结构 6.2.4 进程与任务 6.2.5 进程间的通信 6.2.6 进程调度- R- a( {' m- \$ J& t 6.2.7 存储管理% }2 H9 q5 e9 c/ r* r: Q 第7章 FreeRTOS嵌入式操作系统9 N& B* V7 J2 [+ O8 k: e 7.1 FreeRTOS特色3 ^# h: u/ m3 i 7.2 任务管理 7.2.1 任务函数; d; S, U9 p4 x! A. F' R$ A 7.2.2 基本任务状态. m1 a2 ?, D0 Q' n0 l 7.2.3 任务创建 7.2.4 任务的优先级1 Z1 O" Q9 u j$ H& w# D i B* { 7.2.5 非运行状态 7.2.6 空闲任务及回调函数 7.2.7 改变任务优先级 7.2.8 删除任务 7.2.9 调度算法概述) \# J* E ?' ~& d0 q% s& T 7.3 队列管理1 H) ]" f( X" B8 y' @1 [ 7.3.1 概述 7.3.2 使用队列 7.3.3 大型数据单元传输 7.4 中断管理! h* i0 r) b( {+ X 7.4.1 延迟中断处理 7.4.2 计数信号量0 F. T1 M$ {; E) H9 i) ]; C3 A 7.4.3 在中断服务例程中使用队列$ v' M& J. e( W" U 7.4.4 中断嵌套 7.5 资源管理 7.5.1 基本概念( z$ z0 Z7 R! p7 c 7.5.2 临界区与挂起调度器/ j7 v4 C6 ]0 x: D 7.5.3 互斥量% ^/ f! B+ Q$ z* y( j 7.5.4 互斥的另一种实现 7.6 内存管理1 d4 s' t7 @% H G! r% W 7.6.1 概述8 R/ Q: Q* x) n6 D0 Y2 c 7.6.2 内存分配方案范例* \% z% z) M& R l1 P/ l( b$ V4 v2 i 7.7 常见错误 7.7.1 概述* Q' Q/ p9 c6 Q# @0 U% q; u; ~ 7.7.2 栈溢出 T I" O. q/ \, P/ X7 d1 \. b; f 7.7.3 其他常见错误. P0 b& [1 O* \0 x, ?2 l- z0 J 第8章 基于STM32F107的FreeRTOS移植! t, m% f. Q4 D 8.1 概述4 ^& c! q; p6 _5 v) U9 l, C 8.2 FreeRTOS移植 8.2.1 portmacro.h头文件* H$ h1 g+ X! K6 G$ l 8.2.2 port.c源文件# b$ V' A" a) s; Y3 x! e3 m 8.2.3 portasm.s汇编源文件) G' m& H9 R- v3 x 8.2.4 其他问题- u5 u# T! a" D7 N0 G7 H 8.3 创建测试任务 4 s `6 s @. v# c- Q* T4 A 第三篇 LwIP篇 第9章 TCP/IP协议栈介绍$ t% T/ G* d2 N4 ?# X( `; D, Z 9.1 引言 9.2 网络分层 9.2.1 OSI七层参考模型 9.2.2 TCP/IP分层 9.2.3 TCP/IP协议簇的协议& P- d W- a& R6 v+ l% B 9.3 IP协议 9.4 ARP协议与RARP协议& l+ X+ C' |0 }6 f) A$ @( Z 9.5 ICMP: R8 R2 b2 h4 z. Y5 e# }2 y) F4 }8 f 9.6 TCP协议 9.7 UDP协议 9.8 FTP协议% T% l3 ^# A& m- |* M 第10章 LwIP轻量级TCP/IP协议栈 10.1 LwIP进程模型 10.2 LwIP缓冲与内存管理, o7 o8 u/ c! v$ J4 J 10.2.1 LwIP动态内存管理机制 10.2.2 LwIP的缓冲管理机制 10.3 LwIP网络接口 10.4 LwIP的ARP处理& H% x7 A+ `. q5 |& L" F, { 10.5 LwIP的IP处理 10.6 LwIP的ICMP处理9 ], M; _* `" U6 a- ^9 p7 A 10.7 LwIP的UDP处理 10.8 LwIP的TCP处理 10.8.1 TCP处理流程概述 10.8.2 TCP控制块3 d1 c2 Q8 f& f2 m' U+ \ 10.8.3 LwIP的TCP滑动窗口 10.8.4 LwIP的TCP超时与重传 10.8.5 LwIP的TCP拥塞控制 10.8.6 LwIP的TCP定时器* g) N* W- J8 p. g0 v$ @, c- M# M 10.9 LwIP的应用程序接口简介" o3 u% `/ J- Q, n: }7 B+ V 10.9.1 RAW API接口 10.9.2 Sequential API接口 第11章 基于STM32F107的LwIP移植% V3 z% C. s" ~2 C* X# b+ x0 a 11.1 ethernetif.c文件的移植7 i0 P9 ?( T7 B4 {0 L 11.1.1 ethernetif_init函数0 Z2 ~$ K! \) x2 v5 m 11.1.2 low_level_init函数 11.1.3 ethernetif_input函数 11.1.4 low_level_input函数! w3 i4 A4 N) w' V$ N4 A 11.1.5 low_level_output函数2 ?/ I m% S, [0 ]/ `+ \" r$ | 11.2 网络驱动移植$ C. N. Z' D e9 W m 11.2.1 以太网控制器概述 11.2.2 以太网控制器硬件配置: ]6 A6 n7 o/ w! {; Y1 Q 11.2.3 以太网控制器硬件的引脚配置' d. w" A9 s6 b0 y 11.2.4 以太网驱动之接收4 ^1 a' ~* k2 V& @6 w% e 11.2.5 以太网驱动之发送- ^& \9 A' H3 @! x5 r5 q' N7 X7 w8 ^ 11.2.6 其他注意事项$ b% p) {; d0 s& Q1 A 11.3 基于RAW API接口的HelloWorld例程/ \: K8 V% B7 x7 g# s& } . B; N# B( X) h/ W5 { 第四篇 移植篇 第12章 基于FreeRTOS的LwIP协议栈移植 12.1 概述4 E1 |. U' C( Y7 S: ` 12.2 FreeRTOS下以太网驱动程序的移植: h ?7 v- c% c! O1 \5 b 12.3 LwIP程序移植 12.3.1 以太网接口文件ethernetif.c的移植5 j) u9 f6 x$ B" Q. c. p8 j 12.3.2 操作系统模拟层文件sys_arch.c的移植9 X# C- e! k; J5 ]6 H- X' D+ ^ 第13章 工业通信网关解析 13.1 概述 13.2 编码实现 13.3 通信测试 附录A 开发板原理图 附录B 专业术语 参考文献/ C' |4 x9 I$ N9 w2 f6 i" h1 W 4 _5 c2 W0 S( h" v! [5 u 当当网购买地址5 s- M' q2 ^0 \; u4 j+ d: M n& N3 a/ A+ e- y4 U 亚马逊购买地址 " C7 b6 f- C5 ~& ?1 r( F& j 京东 推荐理由:这书主要讲“FreeRTOS与LwIP联合移植”方面的东西,目前市场上讲freertos和lwip在stm32上应用的书我只找到这本,ucos的就多,但ucos商业收费,学这个的人可以参考一下。 4 o z& J$ C& t& a# r 继续阅读 三十四本STM32图书分享集锦(推荐可获赠ST图书) ! E8 z: q" G" Z |
RE:【STM32图书分享三十二】—《STM32嵌入式系统开发实战指南附光盘FreeRTOS与LwIP联
RE:【STM32图书分享三十二】—《STM32嵌入式系统开发实战指南附光盘FreeRTOS与LwIP联
RE:【STM32图书分享三十二】—《STM32嵌入式系统开发实战指南附光盘FreeRTOS与LwIP联