第一部分 简介篇 2
第1章 AWorks简介 2
1.1 诞生的背景 2
1.2 基本概念 4
1.3 硬件平台 5
1.4 AWorks OS 7
1.4.1 特点 8
1.4.2 架构 9
1.4.3 发布形式 12
1.4.4 使用方法 13
1.5 云接入 14
第二部分 硬件篇 16
第2章 Cortex-M系列无线核心板 16
2.1 M105x无线核心板(M7核) 16
2.1.1 概述 16
2.1.2 产品特性 17
2.1.3 产品功能框图 18
2.1.4 产品选型 18
2.1.5 I/O信息 19
2.2 AW54101无线核心板(M4核) 24
2.2.1 概述 24
2.2.2 产品特性 24
2.2.3 产品功能框图 25
2.2.4 产品选型 25
2.2.5 I/O信息 26
2.3 AW412无线核心板(M4核) 28
2.3.1 概述 28
2.3.2 产品特性 28
2.3.3 产品功能框图 29
2.3.4 产品选型 29
2.3.5 I/O信息 30
2.4 Cortex-M系列无线核心板快速选型 32
第3章 ARM9、DSP、Cortex-A系列核心板 34
3.1 A280核心板(ARM9核) 34
3.1.1 概述 34
3.1.2 产品特性 35
3.1.3 产品功能框图 35
3.1.4 产品选型 36
3.1.5 I/O信息 36
3.2 AW6748核心板(DSP核) 42
3.2.1 概述 42
3.2.2 产品特性 43
3.2.3 产品功能框图 44
3.2.4 产品选型 44
3.2.5 I/O信息 45
3.3 M28x-T核心板(ARM9核) 51
3.3.1 概述 51
3.3.2 产品特性 52
3.3.3 产品功能框图 53
3.3.4 产品选型 53
3.3.5 I/O信息 54
3.4 M6G2C核心板(A7核) 60
3.4.1 概述 60
3.4.2 产品特性 60
3.4.3 产品功能框图 61
3.4.4 产品选型 61
3.4.5 I/O信息 62
3.5 M3352核心板(A8核) 67
3.5.1 概述 67
3.5.2 产品特性 68
3.5.3 产品功能框图 68
3.5.4 产品选型 69
3.5.5 I/O信息 70
3.6 核心板快速选型表 76
第4章 ARM9、Cortex-A无线核心板 78
4.1 A280无线核心板(ARM9核) 78
4.1.1 概述 78
4.1.2 产品特性 79
4.1.3 产品功能框图 80
4.1.4 产品选型 80
4.1.5 I/O信息 81
4.2 A287无线核心板(ARM9核) 87
4.2.1 概述 87
4.2.2 产品特性 88
4.2.3 产品功能框图 89
4.2.4 产品选型 89
4.2.5 I/O信息 90
4.3 A6G2C无线核心板(A7核) 95
4.3.1 概述 95
4.3.2 产品特性 95
4.3.3 产品功能框图 97
4.3.4 产品选型 97
4.3.5 I/O信息 98
4.4 A3352无线核心板(A8核) 103
4.4.1 概述 103
4.4.2 产品特性 103
4.4.3 产品功能框图 104
4.4.4 产品选型 105
4.4.5 I/O信息 105
4.5 无线核心板快速选型表 111
第5章 ARM9、Cortex-A工控主板 114
5.1 i.MX28x无线工控板(ARM9核) 114
5.1.1 概述 114
5.1.2 产品特性 115
5.1.3 产品选型 116
5.2 IoT-3968L网络控制器(ARM9核) 116
5.2.1 概述 116
5.2.2 产品特性 117
5.3 Cortex-A7无线工控板(A7核) 118
5.3.1 产品特性 119
5.3.2 产品选型 120
5.4 IoT7000A-LI网络控制器(A7核) 121
5.4.1 概述 121
5.4.2 产品特性 122
5.5 IoT-A3352LI无线工控板(A8核) 122
5.5.1 概述 122
5.5.2 产品特性 123
5.6 IoT3000A-AWI网络控制器 124
5.6.1 概述 124
5.6.2 产品特性 125
5.7 工控主板快速选型表 126
第三部分 软件篇 128
第6章 通用设备接口 128
6.1 通用LED接口 128
6.2 通用键盘接口 131
6.3 通用蜂鸣器接口 137
6.4 通用数码管接口 141
6.5 通用传感器接口 146
6.6 温控器 159
第7章 通用外设接口 165
7.1 GPIO 165
7.1.1 I/O配置 165
7.1.2 I/O的申请和释放 168
7.1.3 普通I/O接口 170
7.1.4 中断I/O接口 174
7.2 PWM 178
7.2.1 PWM简介 178
7.2.2 PWM接口 179
7.3 SPI总线 183
7.3.1 SPI总线简介 183
7.3.2 SPI总线接口 185
7.4 I2C总线 195
7.4.1 I2C总线简介 195
7.4.2 I2C接口 195
7.5 UART总线 203
7.5.1 UART简介 203
7.5.2 串行接口 205
7.6 A/D转换器 210
7.6.1 模/数信号转换 210
7.6.2 A/D转换接口 214
7.7 D/A转换器 229
7.7.1 数/模信号转换 229
7.7.2 D/A转换接口 230
7.8 看门狗(WDT) 234
7.8.1 看门狗简介 234
7.8.2 看门狗接口 237
第8章 时间管理 241
8.1 时间的表示形式 241
8.1.1 细分时间 241
8.1.2 日历时间 242
8.1.3 精确日历时间 243
8.1.4 细分时间与日历时间的相互转换 243
8.2 RTC通用接口 245
8.3 系统时间 247
8.3.1 获取系统时间 247
8.3.2 设置系统时间 250
8.4 系统节拍 252
8.5 软件定时器 257
第9章 内存管理 262
9.1 堆管理器 262
9.1.1 堆管理器的原理概述 262
9.1.2 堆管理器接口 267
9.1.3 系统堆管理 273
9.2 内存池 279
9.2.1 内存池原理概述 280
9.2.2 内存池接口 281
第10章 实时内核 288
10.1 任务管理 288
10.1.1 多任务环境简介 288
10.1.2 创建任务 291
10.1.3 终止任务 298
10.1.4 任务延时 299
10.1.5 检查栈空间的使用情况 300
10.2 信号量 303
10.2.1 互斥信号量 304
10.2.2 二进制信号量 312
10.2.3 计数信号量 321
10.3 邮箱 326
10.4 消息队列 339
10.5 自旋锁 347
第11章 文件系统 351
11.1 文件系统简介 351
11.2 设备挂载管理 352
11.3 文件基本操作 359
11.4 目录基本操作 372
11.5 微型数据库 378
11.5.1 哈希表 378
11.5.2 微型数据库接口 382
第12章 AWBus-lite总线框架 392
12.1 AWBus-lite简介 392
12.2 AWBus-lite拓扑结构 394
12.3 系统硬件资源 395
12.3.1 硬件设备列表 396
12.3.2 设备描述类型 396
12.3.3 设备描述宏定义 403
12.3.4 设备的配置与裁剪 404
12.3.5 注册设备驱动 407
12.3.6 硬件设备的父总线设备 408
12.4 访问设备 409
12.4.1 通用接口 409
12.4.2 资源ID 411
第13章 深入理解AWBus-lite 413
13.1 通用接口的定义 413
13.1.1 接口命名 413
13.1.2 接口参数 414
13.1.3 返回值 414
13.2 接口的实现 415
13.2.1 实现接口初探 415
13.2.2 LED抽象方法 417
13.2.3 抽象的LED服务 418
13.2.4 Method机制 422
13.2.5 LED服务链表的初始化 426
13.3 设备驱动 429
13.3.1 基础驱动信息 429
13.3.2 实际驱动信息 435
13.3.3 定义设备类型 436
13.3.4 定义设备信息类型 437
13.3.5 实现三个阶段的初始化函数 440
13.3.6 实现LED服务 443
13.3.7 定义Method对象 447
13.3.8 注册驱动 448
13.4 驱动开发的一般方法 450
13.4.1 定义驱动名 452
13.4.2 确定总线类型和设备类型 452
13.4.3 定义设备类型 452
13.4.4 定义设备信息类型 454
13.4.5 实现三个阶段的初始化函数 455
13.4.6 实现通用服务 459
13.4.7 定义Method对象 464
13.4.8 定义驱动结构体常量,实现驱动注册函数 465
第14章 信号采集及接口扩展模块 471
14.1 温度检测模块——TPS0xR/T 471
14.1.1 TPS02R简介 472
14.1.2 添加TPS02R硬件设备 474
14.1.3 使用TPS02R模块 478
14.2 能效检测模块——EMM400x 479
14.2.1 EMM400A简介 480
14.2.2 添加EMM400硬件设备 483
14.2.3 使用EMM400模块 486
14.3 信号调理模块——TPS0xU 488
14.3.1 TPS08U简介 488
14.3.2 添加TPS08U硬件设备 490
14.3.3 使用TPS08U模块 494
14.4 接口扩展模块——RTM11AT 496
14.4.1 RS485简介 496
14.4.2 RTM11AT简介 497
14.4.3 添加RTM11AT硬件设备 500
14.4.4 使用RTM11AT模块 504
第15章 常用外围器件 506
15.1 EEPROM存储器 506
15.1.1 器件简介 506
15.1.2 添加EEPROM硬件设备 507
15.1.3 NVRAM通用接口 512
15.2 SPI NOR Flash存储器 515
15.2.1 器件简介 515
15.2.2 添加SPI NOR Flash硬件设备 516
15.2.3 使用MTD存储器 524
15.2.4 使用NVRAM存储段 529
15.3 RTC实时时钟 530
15.3.1 基于RTC通用接口的应用程序 531
15.3.2 RX8025T 532
15.3.3 DS1302 537
15.4 ZLG72128——数码管与键盘管理 542
15.4.1 ZLG72128简介 542
15.4.2 添加ZLG72128硬件设备 546
15.4.3 使用ZLG72128数码管功能 552
15.4.4 使用ZLG72128按键功能 553
15.5 ADS131E0x——A/D转换芯片 555
15.5.1 器件简介 556
15.5.2 添加ADS131E08硬件设备 559
15.5.3 使用ADS131E08 564
15.6 AD5689R——D/A转换芯片 571
15.6.1 器件简介 571
15.6.2 添加AD5689R硬件设备 574
15.6.3 使用AD5689R 579
参考文献 580