第1章 概述 1
1.1 什么是.NET Micro Framework 1
1.2 .NET Micro Framework的架构 2
1.2.1 Hardware Layer(硬件层) 3
1.2.2 Runtime Component Layer(执行组件层) 3
1.2.3 Class Library Layer(类库层) 3
1.2.4 Application Layer(应用层) 4
1.3 .NET Micro Framework与嵌入式系统的比较 4
1.4 .NET Micro Framework与其他.NET平台的比较 5
1.5 开发工具 6
1.5.1 Visual Studio 6
1.5.2 Real View MDK 8
1.6 硬件平台 9
1.7 闲谈.NET Micro Framework的适用范围 14
第2章 开发环境 15
2.1 .NET Micro Framework Porting Kit概述 15
2.2 安装.NET Micro Framework Porting Kit 15
2.3 了解文件类型 18
2.3.1 命令文件:*.cmd 18
2.3.2 工程文件:*.proj 21
2.3.3 分散加载文件:*.xml 24
2.3.4 源代码文件:*.s,*.c,*.cpp,*.h 25
2.4 编译MFDeploy 26
2.5 C#程序开发 29
2.5.1 安装SDK 29
2.5.2 第一个C#程序 32
2.5.3 查看帮助文档 35
第3章 移植初步 42
3.1 Solution Wizard创建新方案 42
3.2 探究处理器数值设置 47
3.3 .NET Micro Framework工程 54
3.3.1 典型工程概述 55
3.3.2 断点调试NativeSample 59
3.4 ST函数库 65
第4章 向量表和启动 74
4.1 向量表 74
4.2 启动代码 75
4.3 .NET Micro Framework的启动流程 78
4.4 修改.NET Micro Framework的启动流程 80
4.5 使向量表正常工作 81
4.6 将向量表移至内存 86
4.7 不可或缺的PrepareImageRegions 89
4.8 修正PrepareImageRegions 90
4.9 INTC驱动 92
4.9.1 驱动概述 92
4.9.2 搭建工程 92
4.9.3 动态设置中断函数 93
第5章 SysTick驱动 97
5.1 驱动概述 97
5.2 建立工程 100
5.3 使用ST函数库的定时器 101
5.4 驱动实现 102
5.5 中断函数 106
第6章 串口驱动 110
6.1 驱动概述 110
6.2 建立工程 111
6.3 寄存器概述 112
6.4 ST函数库的使用 117
6.5 中断函数 119
6.6 PAL层驱动 122
6.7 NativeSample测试 122
第7章 USB驱动 126
7.1 驱动概述 126
7.2 PC端驱动 128
7.3 建立工程 131
7.4 插入检测 135
7.5 Endpoint0的设备枚举 138
7.5.1 设备描述符 138
7.5.2 初始化 144
7.5.3 中断函数 146
7.5.4 控制传输 150
7.5.5 安装PC端驱动程序 156
7.6 Endpoint1和Endpoint2的数据传输 161
7.7 MFDeploy测试 164
第8章 FLASH驱动 166
8.1 驱动概述 166
8.2 增加NAND FLASH设备 170
8.2.1 建立工程 170
8.2.2 添加设备的代码 171
8.2.3 初始化BLOCK_CONFIG 172
8.2.4 初始化BlockDeviceInfo 172
8.2.5 初始化BlockRegionInfo 176
8.2.6 初始化BlockRange 178
8.3 FSMC NAND 179
8.3.1 FSMC简介 180
8.3.2 建立工程 181
8.3.3 适用性判断 183
8.4 NAND FLASH驱动 184
8.4.1 建立工程 184
8.4.2 代码概述 185
8.4.3 地址转换 188
8.4.4 读取 192
8.4.5 写入 196
8.5 增加NOR FLASH设备 199
8.5.1 建立工程和增加设备 199
8.5.2 初始化信息 200
8.6 FSMC NOR 205
8.7 NOR FLASH驱动 207
8.7.1 读取 207
8.7.2 写入 210
8.8 NativeSample程序验证 212
第9章 Power驱动 216
9.1 驱动概述 216
9.2 建立工程 216
9.3 驱动实现 218
9.4 调试C#程序 218
9.5 调试探秘 219
第10章 GPIO驱动 222
10.1 驱动概述 222
10.2 建立工程 223
10.3 ST函数库的使用 224
10.4 外部中断释疑 225
10.5 中断函数 229
10.6 .NET Micro Framework和ST函数库的GPIO标识映射 232
10.7 在C#程序中调用GPIO 235
第11章 LCD驱动 239
11.1 驱动概述 239
11.2 控制器驱动 240
11.2.1 建立工程 240
11.2.2 范例函数 242
11.2.3 硬件设计 243
11.2.4 字体 247
11.2.5 代码完善 253
11.3 显示驱动 254
11.3.1 建立工程 254
11.3.2 代码完善 256
第12章 调试异常与解决 258
12.1 CheckMultipleBlocks函数引发的异常与解决 258
12.2 TinyCLR的this赋值语句的缘起与解决 260
12.3 MDK指针赋值操作的bug 264
12.4 & Load $$ ER_RAM $$ Base赋值语句的崩溃 266
12.5 闲谈赋值的出错 269
12.6 灵活使用ARM汇编的WEAK关键字 269
附录A 代码包快速上手指南 273
附录B BIN文件的烧录 279
参考文献 285
后记 授之于渔:写在.NETMicro Framework 4.2RC发布之际 286