课程详细信息
本课程为期三天,重点介绍在 Simulink® 环境中开发要部署在嵌入式系统中的模型。本课程面向使用 Embedded Coder® 生成、验证和部署嵌入式代码的 Simulink 用户。
内容包括:
- 生成代码的结构和执行
- 代码生成选项和优化
- 集成生成的代码与外部代码
- 为多速率模型和非周期系统生成代码
- 定制生成的代码
- 定制数据
- 在目标硬件上测试生成的代码
- 部署代码
第1天 (共3天)
生成嵌入式代码
目标: 配置 Simulink 模型用于嵌入式代码生成并且有效地解读生成的代码。
- 嵌入式应用的架构
- 系统规范
- 生成代码
- 代码模块
- 记录中间信号
- 生成代码的数据结构
- 验证生成的代码
- Embedded Coder® 的编译过程
优化生成的代码
目标: 识别应用的需求,通过配置优化选项来满足这些需求。
- 优化考虑
- 移除不需要的代码
- 移除不需要的数据支持
- 优化数据存储
- 剖析生成的代码
- 代码生成目标
集成生成的代码与外部代码
目标: 修改模型和文件,将生成的代码与外部代码一起运行。
- 外部代码集成概述
- 模型入口
- 创建执行框架
- 集成生成的代码到外部工程I
- 控制生成代码的存放位置
- 打包生成的代码
控制函数原型
目标: 在生成的代码中定制模型入口函数的原型。
- 默认的模型函数原型
- 修改函数原型
- 使用修改的函数原型生成代码
- 模型函数原型的考虑
- 可重用函数的接口
- 默认的函数原型
第2天 (共3天)
在 Simulink® 中定制数据特征
目标: 在 Simulink 中控制数据类型和存储类。
- 数据特征
- 数据类型的分类
- Simulink 数据类型的配置
- 设置信号的存储类
- 设置状态的存储类
- 存储类对标识符的影响
使用数据对象定制数据特性
目标: 使用数据对象控制数据的数据类型和存储类。
- Simulink® 数据对象概述
- 使用数据对象控制数据类型
- 创建可重配置的数据类型
- 使用数据对象控制存储类
- 控制数据类型和变量名
- 数据字典
创建存储类
目标: 设计存储类用于代码生成。
- 用户定义的存储类
- 创建存储类
- 使用用户定义的存储类
- 共享用户代码的定义
定制生成代码的架构
目标: 根据应用的需求,控制生成的代码的架构。
- Simulink 模型架构
- 控制代码的分割
- 生成可重用的子系统代码
- 生成变体组件代码
- 代码放置选项
模型引用和总线对象
目标: 控制总线对象的数据类型和存储类,将之用于带有模型引用的模型的代码生成。
- 创建可重用的模型引用
- 控制总线信号的数据类型
- 控制总线信号的存储类
- 模型引用软件测试
第3天 (共3天)
调度生成的代码的执行
目标: 分别为处于单任务,多任务,和函数调用驱动配置下的多速率模型生成代码。
- 单速率和多速率系统的执行机制
- 为单速率模型生成代码
- 多速率单任务的代码
- 多速率多任务的代码
- 生成导出类型函数
在目标硬件上测试生成的代码
目标: 使用处理器在环 (PIL) 仿真,在目标硬件上验证,剖析和优化生成的代码。
- 硬件支持概述
- Arduino 的搭建
- 在目标上验证生成的代码
- 目标优化概述
- 在目标上剖析生成的代码
- 使用代码替换库
- 创建代码替换表
部署生成的代码
目标: 使用提供的硬件支持包,在 Arduino® 板上创建一个可工作的实时应用。
- 嵌入式应用的架构
- 创建部署框架
- 使用设备驱动模块
- 运行实时应用
- 外部模式
集成设备驱动
目标: 生成定制的模块,用于集成设备驱动到 Simulink 和生成的代码。
- 设备驱动概述
- 使用 Legacy Code Tool
- 定制设备驱动组件
- 为 Arduino 开发设备驱动模块
提高代码效率和合规性
目标: 检查生成的代码的效率,验证代码对标准和指南的合规性。
- 模型顾问
- 硬件部署的参数
- 标准和指南的合规性