《基于模型的设计及其嵌入式实现(第2版)》以基于模型的设计为主线,讲述了M 代码的快速编写与调试,用户界面的创建,浮点Simulink/Stateflow模型的建立、调试与验证,用户自定义模块的生成;详细介绍了基于模型设计的全过程,主要有需求分析与跟踪、模型的检查与设计验证、浮点模型到定点模型的转换、模型嵌入式C代码的自动生成、软件/处理器/硬件在环测试,整个过程满足DO 178B航空电子规范,可显著提高工作效率、降低开发成本,并且增强了代码的安全性与鲁棒性,避免了产品开发的潜在市场风险。
本书可作为汽车电子、航天军工、通信与电子信息、电力等领域的工程师从事嵌入式开发的技术手册,也可作为高校电类专业嵌入式系统开发与基于模型设计的教材,还可作为学习MATLAB Simulink/Stateflow的参考书。
第1章 搭建软件开发环境…………………………………………………………… 1
1.1 下载与安装所需的软件……………………………………………………… 1
1.1.1 下载开发软件包………………………………………………………… 1
1.1.2 安装开发软件包………………………………………………………… 1
1.1.3 安装更新………………………………………………………………… 4
1.2 创建一个包含DSP/BIOS的C6000DSP工程……………………………… 5
1.3 设置MATLABR2015b与CCS5.11数据链配置……………………… 14
1.3.1 checkEnvSetup()……………………………………………………… 14
1.3.2 xmakefilesetup ………………………………………………………… 16
1.4 有关MATLABR2015b与CCS3.3的配置问题………………………… 18
第2章 MATLAB高级应用基础…………………………………………………… 19
2.1 MATLAB的功能简介……………………………………………………… 20
2.1.1 函数浏览器……………………………………………………………… 20
2.1.2 函数提示………………………………………………………………… 21
2.1.3 目录浏览器……………………………………………………………… 22
2.1.4 文件交换服务…………………………………………………………… 24
2.2 M 文件……………………………………………………………………… 26
2.2.1 M 文件结构…………………………………………………………… 26
2.2.2 清理程序………………………………………………………………… 28
2.2.3 创建M 文件…………………………………………………………… 29
2.2.4 M 脚本文件…………………………………………………………… 29
2.2.5 M 函数………………………………………………………………… 30
2.2.6 匿名函数………………………………………………………………… 34
2.3 加快M 文件的编写………………………………………………………… 36
2.3.1 什么是代码检查器……………………………………………………… 36
2.3.2 代码检查器的使用方法………………………………………………… 36
2.3.3 代码检查器实例………………………………………………………… 36
2.4 加快M 文件的调试———cell ……………………………………………… 40
2.4.1 什么是cell……………………………………………………………… 40
2.4.2 cell的定义与删除……………………………………………………… 40
2.4.3 cell调试实例…………………………………………………………… 42
2.4.4 应 用…………………………………………………………………… 44
2.5 数据存取……………………………………………………………………… 47
2.5.1 生成MAT文件………………………………………………………… 47
2.5.2 加载MAT文件………………………………………………………… 49
2.5.3 读/写音视频文件……………………………………………………… 50
2.6 代码效率分析………………………………………………………………… 53
2.7 MATLABCoder简介……………………………………………………… 55
2.7.1 MATLABCoder支持/不支持生成C代码的类型………………… 56
2.7.2 MATLABCoder的使用要求………………………………………… 57
2.7.3 EmbeddedCoder的常用命令………………………………………… 57
2.7.4 C编译器的设置………………………………………………………… 58
2.7.5 应用实例………………………………………………………………… 59
第3章 图形用户界面简介………………………………………………………… 72
3.1 GUIDE简介………………………………………………………………… 72
3.1.1 GUIDE界面简介……………………………………………………… 72
3.1.2 获取当前图形对象句柄的常用函数…………………………………… 75
3.1.3 Callback函数…………………………………………………………… 76
3.2 基于GUIDE工具的实例…………………………………………………… 76
3.2.1 读取图像的GUI实例………………………………………………… 76
3.2.2 制作及发布简易计算器………………………………………………… 94
第4章 Stateflow 原理与建模基础……………………………………………… 106
4.1 Stateflow概述……………………………………………………………… 107
4.1.1 状 态………………………………………………………………… 111
4.1.2 迁 移………………………………………………………………… 114
4.1.3 事 件………………………………………………………………… 118
4.1.4 数据对象……………………………………………………………… 120
4.1.5 条件与动作…………………………………………………………… 122
4.1.6 节 点………………………………………………………………… 122
4.2 流程图……………………………………………………………………… 128
4.2.1 手动建立流程图……………………………………………………… 128
4.2.2 快速建立流程图……………………………………………………… 131
4.2.3 车速控制……………………………………………………………… 132
4.3 状态图的层次……………………………………………………………… 136
4.3.1 历史节点……………………………………………………………… 138
4.3.2 迁移的层次性………………………………………………………… 139
4.3.3 内部迁移……………………………………………………………… 140
4.4 并行机制…………………………………………………………………… 143
4.4.1 广 播………………………………………………………………… 143
4.4.2 隐含事件……………………………………………………………… 149
4.4.3 时间逻辑事件………………………………………………………… 150
4.5 其他的图形对象…………………………………………………………… 152
4.5.1 真值表………………………………………………………………… 152
4.5.2 图形盒………………………………………………………………… 155
4.5.3 图形函数……………………………………………………………… 156
4.6 MATLAB函数…………………………………………………………… 157
4.6.1 建立调用MATLAB函数的Simulink模型………………………… 157
4.6.2 编写MATLAB函数………………………………………………… 159
4.6.3 调 试………………………………………………………………… 160
4.7 Simulink函数……………………………………………………………… 163
4.7.1 Simulink函数的使用………………………………………………… 163
4.7.2 使用Simulink函数需遵循的规则…………………………………… 169
4.8 集成自定义代码…………………………………………………………… 170
4.9 Stateflow建模实例———计时器…………………………………………… 174
第5章 Simulink建模与验证……………………………………………………… 184
5.1 Simulink的基本操作……………………………………………………… 185
5.1.1 启动Simulink ………………………………………………………… 185
5.1.2 Simulink模块库简介………………………………………………… 186
5.1.3 模块操作……………………………………………………………… 188
5.2 信号采样误差……………………………………………………………… 193
5.2.1 信号源………………………………………………………………… 193
5.2.2 MATLAB工作空间………………………………………………… 198
5.2.3 用户自定义函数……………………………………………………… 202
5.2.4 非线性系统…………………………………………………………… 204
5.2.5 离散模块……………………………………………………………… 207
5.2.6 采样误差……………………………………………………………… 209
5.2.7 建立子系统…………………………………………………………… 211
5.2.8 封装子系统…………………………………………………………… 212
5.2.9 数据类型匹配………………………………………………………… 215
5.2.10 模型信息……………………………………………………………… 218
5.2.11 模型元件化…………………………………………………………… 221
5.2.12 自定义模块库………………………………………………………… 222
5.3 音频信号处理……………………………………………………………… 224
5.3.1 仿真环境……………………………………………………………… 224
5.3.2 基于采样的模型……………………………………………………… 225
5.3.3 帧结构………………………………………………………………… 228
5.3.4 基于帧结构的模型…………………………………………………… 228
5.3.5 信号缓冲器…………………………………………………………… 230
5.4 视频监控…………………………………………………………………… 232
5.4.1 原 理………………………………………………………………… 233
5.4.2 SAD子系统…………………………………………………………… 233
5.4.3 阈值比较……………………………………………………………… 234
5.4.4 视频记录子系统……………………………………………………… 235
5.4.5 源视频帧计数及显示………………………………………………… 236
5.4.6 数据读取与显示……………………………………………………… 237
5.4.7 实验结果……………………………………………………………… 239
5.5 模型调试…………………………………………………………………… 241
5.5.1 图形调试模式………………………………………………………… 241
5.5.2 命令行调试模式……………………………………………………… 244
5.5.3 调试过程……………………………………………………………… 245
5.5.4 断点设置……………………………………………………………… 249
5.5.5 显示仿真及模型信息………………………………………………… 253
5.6 模型检查与验证…………………………………………………………… 260
5.6.1 使用系统检查器———ModelAdvisor检查模型…………………… 260
5.6.2 建立测试用例………………………………………………………… 269
5.6.3 模型覆盖度分析……………………………………………………… 279
5.6.4 模型效率分析………………………………………………………… 285
第6章 用户驱动模块的创建……………………………………………………… 289
6.1 什么是S-Function ………………………………………………………… 289
6.1.1 S-Function的工作机制……………………………………………… 291
6.1.2 函数回调方法………………………………………………………… 292
6.1.3 编写C MEXS-Function …………………………………………… 295
6.1.4 Simulink引擎与CS-Function的相互作用………………………… 300
6.1.5 TLC文件……………………………………………………………… 309
6.1.6 LEVEL 2M 文件S-Function介绍……………………………… 313
6.1.7 调用仿真模型外部的C代码和生成代码…………………………… 324
6.2 S-FunctionBuilder………………………………………………………… 327
6.2.1 S-Function名及参数名……………………………………………… 328
6.2.2 初始化………………………………………………………………… 329
6.2.3 数据属性……………………………………………………………… 329
6.2.4 库文件………………………………………………………………… 332
6.2.5 输 出………………………………………………………………… 333
6.2.6 连续状态求导………………………………………………………… 336
6.2.7 离散状态更新………………………………………………………… 337
6.2.8 编译信息……………………………………………………………… 338
6.2.9 应 用………………………………………………………………… 340
6.3 MATLABFunction模块………………………………………………… 342
6.3.1 MATLABFunction模块的生成方法……………………………… 343
6.3.2 集成用户自定义的C代码…………………………………………… 347
6.4 实 例……………………………………………………………………… 348
6.4.1 IIR滤波器…………………………………………………………… 348
6.4.2 S-Function的参数设置与封装……………………………………… 351
6.4.3 读取数据文件………………………………………………………… 357
第7章 嵌入式代码的快速生成…………………………………………………… 362
7.1 利用EmbeddedCoder生成DSP目标代码……………………………… 362
7.2 CCS5/6与MATLABR2015b的数据链配置…………………………… 364
7.3 TIDSP原装板的实时代码生成………………………………………… 368
7.4 代码验证…………………………………………………………………… 375
7.5 TIC6416DSK目标板应用例程………………………………………… 380
7.6 用户自定义目标板的应用………………………………………………… 401
第8章 基于模型的设计…………………………………………………………… 406
8.1 传统设计过程与基于模型设计过程的对比……………………………… 407
8.2 DO 178B标准简介……………………………………………………… 409
8.2.1 什么是DO 178B标准……………………………………………… 409
8.2.2 DO 178B标准验证要求…………………………………………… 410
8.2.3 DO 178B软件生命周期…………………………………………… 411
8.3 基于模型设计的工作流程………………………………………………… 412
8.4 需求分析及跟踪…………………………………………………………… 417
8.4.1 根据需求建立系统模型……………………………………………… 417
8.4.2 建立需求与模块间的关联…………………………………………… 418
8.4.3 一致性检查…………………………………………………………… 421
8.5 模型检查及验证…………………………………………………………… 423
8.5.1 ModelAdvisor检查………………………………………………… 423
8.5.2 SystemTest …………………………………………………………… 424
8.5.3 DesignVerifier ……………………………………………………… 433
8.6 定点模型…………………………………………………………………… 439
8.7 软件在环测试……………………………………………………………… 447
8.8 处理器在环测试…………………………………………………………… 448
8.9 代码跟踪…………………………………………………………………… 449
8.10 硬件模型…………………………………………………………………… 453
8.10.1 建立硬件模型………………………………………………………… 453
8.10.2 模块设置……………………………………………………………… 454
8.11 代码优化及代码生成……………………………………………………… 457
8.11.1 子系统原子化………………………………………………………… 457
8.11.2 优化模块库…………………………………………………………… 460
8.11.3 指定芯片……………………………………………………………… 461
8.11.4 代码检查……………………………………………………………… 462
8.11.5 IDE环境下的代码优化……………………………………………… 464
8.11.6 工程选项及代码生成………………………………………………… 465
8.12 代码有效性检查原理……………………………………………………… 469
8.13 硬件在环测试……………………………………………………………… 472
8.13.1 建立PC端模型……………………………………………………… 472
8.13.2 模块参数设置………………………………………………………… 473
8.13.3 实施硬件在环测试…………………………………………………… 476
8.13.4 代码效率剖析………………………………………………………… 477
8.13.5 内存使用分析………………………………………………………… 478
参考文献……………………………………………………………………………… 480
从技术文档的角度来看,这本书的组织结构清晰得令人赞叹,但其内容的深度又远超一般的使用手册。我发现它在处理模型文档化和可追溯性方面提供的解决方案非常实用。在很多工业项目中,需求变更是家常便饭,如何证明生成的代码确实满足了最初的需求规格,是审计和合规性的核心难题。这本书详细介绍了如何将需求直接链接到模型中的特定模块或测试用例上,实现端到端的全生命周期追溯。这不仅仅是一个流程上的优化,更是对工程严谨性的一种承诺。我个人尝试着在我的团队中推行这种双向链接的文档策略,效果立竿见影,大大减少了后期版本迭代时的沟通成本和遗漏风险。它不仅仅是告诉你“应该”这么做,而是提供了“如何”实现这一目标的可操作性框架,并且提供了大量的案例来佐证这种方法的有效性,这使得学习曲线虽然陡峭,但每一步的攀登都充满了收获感。
评分这本书在处理实时性要求和并发性问题时展现出了极高的专业水准。在嵌入式领域,时间窗口的严格性是生死攸关的。书中对任务调度、资源竞争以及如何通过模型来直观地表达这些时序约束的描述,非常到位。它没有仅仅停留在抽象的调度理论层面,而是深入到如何通过模型来模拟和分析不同采样率任务之间的交互延迟和抖动(Jitter)。我尤其喜欢它对“假实时”和“硬实时”系统在模型构建差异上的区分。通过对状态图和事件驱动建模的精妙运用,我们可以清晰地看到,哪些地方会导致非预期的阻塞或死锁,甚至能够在仿真环境中重现那些在真实硬件上极难捕捉的偶发性错误。这种“在沙盘上解决问题”的能力,极大地降低了硬件调试的成本和风险。对于任何需要保证系统响应时间确定性的工程师来说,这本书在实时系统建模这一块的论述,绝对是教科书级别的参考资料。
评分我对这本书中关于模型验证和确认(Verification and Validation, V&V)部分的讨论印象尤为深刻。过去,V&V往往是嵌入式开发后期最耗时、最痛苦的环节,通常依赖于大量的硬件在环(HIL)测试。而这本书强调了“在环外”(Off-line)的强大验证能力。它细致地介绍了如何构建强大的、高覆盖率的测试场景,包括边界条件、异常输入以及故障注入,并将其完全嵌入到模型环境中进行自动化执行。书中关于参数扫描和敏感性分析的章节,为我们理解模型鲁棒性提供了新的视角。我们不再需要等到硬件出来才能发现某个设计参数的微小变化会导致系统失稳。通过在仿真阶段就对模型进行“压力测试”,我们可以提前识别设计中的薄弱环节,并进行主动优化。这是一种从被动应对错误到主动预防错误的转变,它本质上提升了整个产品的质量基线,让最终交付的产品更加健壮和可靠。
评分这本《基于模型的设计及其嵌入式实现(第2版)》确实是当前工程领域,特别是涉及到复杂系统开发人员的案头必备书。我当初购入它,是冲着它在理论与实践之间架起的坚实桥梁去的。这本书最让我印象深刻的是它对整个开发流程的系统性梳理,从需求捕获到最终硬件部署,它提供了一套完整的、可追溯的、且高度自动化的工作流。它摒弃了传统那种“编码-调试-再编码”的低效循环,而是将重点放在了系统行为的早期验证和优化上。例如,书中对于Simulink和Stateflow等工具的深入剖析,不仅仅是教你如何操作按钮,更是阐述了背后的数学原理和状态机设计范式,这对于理解“为什么”比“怎么做”更为重要。我特别欣赏它在模型抽象层次上的处理能力,能够让系统架构师在高层关注系统功能,而将底层代码生成的细节交给工具链,极大地提升了开发效率和减少了人工引入错误的概率。这种自上而下的设计哲学,在面对日益复杂的汽车电子、航空航天控制系统时,显得尤为珍贵和实用。它不仅是一本工具手册,更是一部指导工程思维转变的教科书。
评分说实话,我一开始对“基于模型的设计”这种方法论抱持着一丝怀疑态度,总觉得最终生成的代码效率肯定不如纯手工优化的C代码。然而,这本书在阐述工具链的底层优化能力时,彻底扭转了我的看法。它详尽地展示了如何利用成熟的工具链(比如TargetLink或相关代码生成器)来生成符合MISRA C规范的高可靠性代码,并且能够针对特定的硬件架构进行定制化优化,这一点是普通工程师手工编写代码很难达到的深度和广度。书中关于固定点运算和浮点数映射的章节尤其精彩,它用严谨的例子说明了如何在精度要求极高且资源受限的微控制器上,安全、高效地实现复杂的控制算法。这对于我们正在进行的老旧系统升级项目至关重要,因为我们必须确保新模型的性能不低于原有的汇编级优化代码。它教会我的不是如何写更快的代码,而是如何让工具生成“足够快且绝对正确”的代码,并将工程师从繁琐的细节中解放出来,专注于模型本身的逻辑验证。这种思维的升级,才是这本书最大的价值所在。
评分正版的专业书籍,很有用的!
评分这书似乎不如mcu那本书写的好
评分第一页有点开胶,懒得换了。
评分这书真好,很有帮助,喜欢!
评分只能说好了啊
评分很实用
评分只能说好了啊
评分宝贝不错,质量很赞,值得推荐
评分宝贝不错,质量很赞,值得推荐
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等,本站所有链接都为正版商品购买链接。
© 2025 windowsfront.com All Rights Reserved. 静流书站 版权所有