第1章 MATLAB基础 1
1.1 MATLAB开发环境新功能 2
1.1.1 函数浏览器 2
1.1.2 函数提示 3
1.1.3 目录浏览器 4
1.1.4 文件交换服务 6
1.2 M文件 7
1.2.1 M文件结构 7
1.2.2 清理程序 9
1.2.3 创建M文件 9
1.2.4 M脚本文件 10
1.2.5 M函数 11
1.2.6 匿名函数 14
1.3 加快M文件的编写——M-Lint 16
1.3.1 什么是M-Lint 16
1.3.2 M-Lint使用方法 17
1.3.3 M-Lint实时代码检查 17
1.4 加快M文件的调试——cell 20
1.4.1 什么是cell 20
1.4.2 cell的定义与删除 21
1.4.3 使用cell调试模式 22
1.4.4 应用 24
1.5 数据存取 27
1.5.1 生成MAT文件 27
1.5.2 加载MAT文件 28
1.5.3 读取音视频文件 30
1.6 代码效率分析 33
1.7 Embedded MATLAB 35
1.7.1 Embedded MATLAB的主要功能特点 35
1.7.2 Embedded MATLAB的编程规范 36
1.7.3 Embedded MATLAB的常用命令 37
1.7.4 C编译器的设置 37
1.7.5 应用实例 39
第2章 Simulink建模与验证 58
2.1 Simulink基本操作 59
2.1.1 启动Simulink 59
2.1.2 Simulink模块库简介 60
2.1.3 模块操作 62
2.2 信号采样误差 65
2.2.1 信号源 65
2.2.2 MATLAB工作空间 66
2.2.3 用户自定义函数 70
2.2.4 非线性系统 71
2.2.5 离散模块 73
2.2.6 采样误差 74
2.2.7 建立子系统 76
2.2.8 封装子系统 77
2.2.9 数据类型匹配 79
2.2.10 模型信息 82
2.2.11 模型元件化 84
2.2.12 自定义模块库 85
2.3 音频信号处理 86
2.3.1 仿真环境 86
2.3.2 基于采样的模型 87
2.3.3 帧结构 88
2.3.4 基于帧结构的模型 89
2.3.5 信号缓冲器 91
2.3.6 低通滤波 93
2.4 视频监控 95
2.4.1 原理 95
2.4.2 SAD子系统 96
2.4.3 阈值比较 97
2.4.4 视频记录子系统 97
2.4.5 源视频帧计数及显示 98
2.4.6 数据读取与显示 99
2.5.7 实验结果 100
2.5 模型调试 101
2.5.1 图形调试模式 101
2.5.2 命令行调试模式 103
2.5.3 调试过程 104
2.5.4 断点设置 108
2.5.5 显示仿真及模型信息 111
2.6 模型检查与验证 118
2.6.1 使用Model Advisor检查模型 118
2.6.2 建立测试用例 124
2.6.3 模型覆盖度分析 133
2.6.4 模型效率分析 138
第3章 Stateflow原理与建模 141
3.1 Stateflow概述 142
3.1.1 状态 143
3.1.2 迁移 146
3.1.3 事件 149
3.1.4 数据对象 151
3.1.5 条件与动作 152
3.1.6 连接节点 153
3.2 流程图 157
3.2.1 手动建立流程图 158
3.2.2 快速建立流程图 159
3.2.3 车速控制 161
3.3 状态图的层次 164
3.3.1 历史节点 165
3.3.2 迁移的层次性 167
3.3.3 内部迁移 167
3.4 并行机制 170
3.4.1 广播 170
3.4.2 隐含事件 176
3.4.3 时间逻辑事件 176
3.5 其他的图形对象 178
3.5.1 真值表 178
3.5.2 图形盒 180
3.5.3 图形函数 181
3.6 Embedded MATLAB函数 182
3.6.1 建立调用Embedded MATLAB函数的Simulink模型 182
3.6.2 编写Embedded MATLAB函数 184
3.6.3 调试 184
3.7 Simulink函数 188
3.7.1 Simulink函数的使用 188
3.7.2 使用Simulink函数需遵循的规则 191
3.8 集成自定义代码 192
3.9 Stateflow建模实例 196
3.9.1 嵌入Simulink 197
3.9.2 模拟各种操作模式的状态 198
3.9.3 状态行为与变量 198
3.9.4 状态间的迁移 200
3.9.5 如何触发图表 201
3.9.6 仿真 203
3.9.7 调试 207
第4章 用户驱动模块的创建 210
4.1 什么是S-Function 210
4.1.1 S-Function的工作机制 212
4.1.2 S-Function的几个重要概念 213
4.1.3 编写C MEX S-Function 215
4.1.4 Simulink引擎与C S-Function的相互作用 219
4.1.5 TLC文件 226
4.1.6 LEVEL-2 M文件S-Function介绍 230
4.1.7 调用仿真模型外部的C代码和生成代码 239
4.2 S-Function Builder 242
4.2.1 S-Function名及参数名选项卡 243
4.2.2 初始化选项卡 244
4.2.3 数据属性面板 244
4.2.4 库文件选项卡 246
4.2.5 输出代码选项卡 248
4.2.6 连续状态求导 249
4.2.7 离散状态更新 251
4.2.8 编译信息 252
4.2.9 应用 253
4.3 Embedded MATLAB函数模块 255
4.3.1 Embedded MATLAB函数模块的生成方法 256
4.3.2 集成用户自定义的C代码 261
4.4 实例 262
4.4.1 IIR滤波器 262
4.4.2 图像的相似度 265
4.4.3 S-Function的参数设置与封装 268
4.4.4 读取数据文件 272
第5章 嵌入式代码的快速生成 277
5.1 CCS介绍 278
5.1.1 反汇编窗口 278
5.1.2 链接命令文件 279
5.1.3 探针的设置 280
5.1.4 CCS的使用 280
5.2 利用RTW-EC生成DSP目标代码 284
5.2.1 RTW自动生成代码的过程 284
5.2.2 TI DSP原装板的实时代码生成 285
5.2.3 代码验证 291
5.2.4 代码实时运行剖析 295
5.2.5 堆栈分析 296
5.2.6 TI C6416 DSK目标板的应用实例 296
5.2.7 用户自定义目标板的应用 308
5.2.8 其他目标板的应用 314
5.3 MATLAB与CCS的交互式开发 325
5.3.1 选定目标板 327
5.3.2 创建ticcs对象 328
5.3.3 加载程序 329
5.3.4 配置RTDX通道 330
5.3.5 对RTDX链接对象进行操作 331
5.3.6 关闭链接并清除RTDX通道 334
5.4 应用实例 334
5.4.1 视频数据格式的转换(基于2009a版本) 335
5.4.2 数字滤波器的传统设计方法与基于模型设计的比较 338
第6章 基于模型的设计 345
6.1 传统方法与基于模型设计过程的对比 345
6.2 DO-178B标准简介 348
6.2.1 什么是DO-178B标准 348
6.2.2 DO-178B标准验证要求 348
6.2.3 DO-178B软件生命周期 349
6.3 基于模型设计的工作流程 350
6.3.1 建立需求文档 351
6.3.2 建立可执行的技术规范 351
6.3.3 浮点模型 351
6.3.4 需求与模型间的双向跟踪 351
6.3.5 模型助手检查 351
6.3.6 模型验证 352
6.3.7 定点模型 352
6.3.8 软件在环测试 352
6.3.9 处理器在环测试 353
6.3.10 代码与模型间的双向跟踪 353
6.3.11 代码优化 353
6.3.12 代码有效性检查 353
6.3.13 代码效率剖析 353
6.3.14 内存用量检查 354
6.3.15 硬件在环测试 354
6.3.16 生成产品级代码 354
6.4 需求分析及跟踪 354
6.4.1 根据需求建立系统模型 354
6.4.2 建立需求与模块间的关联 355
6.4.3 一致性检查 357
6.5 模型检查及验证 359
6.5.1 Model Advisor检查 359
6.5.2 System Test 360
6.5.3 Design Verifier 367
6.6 浮点转定点模型 374
6.7 软件在环测试 381
6.8 处理器在环测试 382
6.9 代码跟踪 383
6.10 硬件模型 386
6.10.1 建立硬件模型 386
6.10.2 模块设置 388
6.11 代码优化及代码生成 389
6.11.1 子系统原子化 389
6.11.2 优化模块库 392
6.11.3 指定芯片 392
6.11.4 代码检查 394
6.11.5 IDE环境下的代码优化 395
6.11.6 工程选项及代码生成 396
6.12 代码有效性检查 399
6.13 硬件测试 400
6.13.1 建立PC端模型 400
6.13.2 模块参数设置 401
6.13.3 硬件测试步骤 403
6.13.4 代码效率剖析 404
6.13.5 内存使用分析 405
6.14 边缘检测 406
6.14.1 边缘检测原理 406
6.14.2 基于模型设计的算法实现 408
附录 Embedded MATLAB支持的各函数 421
参考文献 431