选择一个外部代码集成工作流

完成这些任务,帮助你选择外部代码集成的工作流程和工具,以你的项目一致。

任务 行动 更多信息
1 分割应用程序,算法映射到组件,并确定整合点。 用于生成嵌入式代码部署设计模型(嵌入式编码)
2 确定是否可以依靠调度代码,代码生成器产生,或是否必须集成到任何特定于运行时环境调度机制生成的代码。 选择执行调度代码的软件执行框架(嵌入式编码)
3 评估外部代码的特性要导入或要导出生成的代码。 评估外部代码的特性(嵌入式编码)
4 确定集成要求,其中助攻选择最佳的工具为您的集成。 确定集成要求(嵌入式编码)
根据任务1-4的结果,选择一个工作流程。 选择一个工作流程(嵌入式编码)

选择执行调度代码的软件执行框架

代码生成器支持两种类型的软件的执行框架万博1manbetx单顶模型和多个顶层,如在用于生成嵌入式代码部署设计模型(嵌入式编码)。第一个问题回答了两个框架的满足调度和项目的其他需求的担忧。例如,您可以导入外部代码到一个单一的,基于速率的顶级车型。您可以从一个单一的顶级车型或多个顶级模型导出代码定制(外部)调度机制的整合。

  • 单顶级模特

    生成外部代码和代码Simulink的一组应用程序代码文件万博1manbetx®C / C ++代码发生器产生。生成的代码包括调度。在这种情况下,你进口代码到Simulink的代码万博1manbetx生成环境。

  • 单顶级车型或多个顶级车型

    整合C或C ++代码,该代码发生器与外部应用程序代码和外部调度模型组件产生。您出口在Simulink代码生成环境中生成的代码。万博1manbetx

导入到外部设备驱动程序代码调用到模型中,并生成代码为模型出口涉及导入和导出代码。

基于目标和要求,外部代码集成的特点是在几个方面,需要不同的工作流和集成工具:

  • 导入现有外部代码进入生成的代码。

    • 征集仿真和代码生成可重复使用的外部算法的代码。

    • 放在生成的代码外部C / C ++代码。

    • 调用外部设备驱动程序。

    • 应用功能和操作员代码的替代品。

    • 接口与外部定时器中断或调度器。

    • 生成特定的运行时环境替换代码。

  • 出口生成的代码包含在外部的代码库。RequiresEmbedded编码器®

    • 生成导出组件的源代码。

    • 生成用于出口的共享库。

接下来,查看评估外部代码的特性(嵌入式编码)。

评估外部代码的特性

选择一个外部集成的工作流程之前,评估外部代码的这些特性。与外部代码界面,生成的C或C ++代码把手的一个或多个的外部代码特性。这些特点和你的建模,仿真和代码生成要求的理解可以帮助您选择适合您的集成方案的优化工作流程。(看到确定集成要求(嵌入式编码))。

特性 什么考虑
硬件依赖

是外部代码依赖于硬件的?效用函数,查找表,和过滤器是独立于硬件的代码示例。

设备驱动程序与硬件直接交互。他们依赖于硬件的特性。例如,对于一个模拟数字转换器初始化设备驱动程序,从读取数据,并以硬件寄存器写入数据。硬件差异和依赖性关注数据类型大小,字节序,移位运算,编译器指令,和优化的功能和操作者的支持。万博1manbetx通过使用API​​和映射到特定的存储器地址数据与设备驱动程序其他代码接口。通常情况下,模拟在开发计算机上是不可能的。从阅读和开发计算机上模拟期间写入寄存器产生意外和不想要的结果。

可重复使用 在外部代码可重用的软件模块?实例包括效用函数,查找表,过滤器,专门的积分器,和比例 - 积分 - 微分(PID)控制模块。
依赖于函数调用之间的数据持久化 是否外部代码需要持久性数据?例如,一阶滤波器函数的调用使用先前调用的输出到函数来计算新的输出值。你必须定义数据为全球或使用该函数的上下文之外共享内存的选项。
数据类型和接口 多么复杂的数据,外部代码使用?什么数据接口是什么样子?它包括的参数,返回值,全局变量和访问功能。哪些数据类型的代码是否使用?仅限于基本的ANSI C整数类型,浮点类型,整数或浮点数类型的数组和指针到这些类型的?是否接口包括结构或指向结构的指针?
定点代码 设计外部代码仅整数处理器上运行?如果是的话,代码交换和使用的数据表示为唯一的整数。数据可以与定点缩放或偏移相关联。
外部资源的依赖 是否外部代码使用数据,功能或宏码的范围之外定义?例如,该功能可以使用一个标准的ANSI功能,共享库,或预定义的常数。在这种情况下,你必须告知外部资源的路径和文件名的编译和连接。
需要外部求解 您是否使用了先进的开发和快速原型外部函数来描述与连续传递函数或一组微分方程的一个系统?如果是,则外部代码依赖于外部求解。

接下来,查看确定集成要求(嵌入式编码)。

确定集成要求

选择一个外部集成的工作流程之前,请查看这些集成要求。这些要求和你的外部代码的特性的理解可以帮助您选择适合您的集成方案的优化工作流程。(看到评估外部代码的特性(嵌入式编码))。

需求 什么考虑
功夫 计划在整合项目,低,中,高或什么级别的努力吗?
努力学习 什么是分配项目资源的编程经验?有多少经验就分配资源与Simulink和MathWorks公司万博1manbetx®C / C ++代码生成的产品?s manbetx 845
仿真和代码生成行为 你想利用基于模型的设计的?为了充分利用基于模型的设计,转换代码的造型元素,然后你就可以在Simulink和Stateflow使用万博1manbetx®仿真环境。然后,模拟和产生用于所述集成部件代码。使用软件在环(SIL)或处理器在环(PIL)测试,以验证算法的行为是否是在两个环境中是相同的。
数据接口和打字
  • 请问您的模型或生成的代码需要与外部功能进行数据交换?如果是这样,映射输入,输出,和对外部函数的接口参数。典型的函数接口包括函数参数和返回值,全局变量和访问功能,如getRPM

  • 你想表示数组,结构或枚举类型?在Simuli万博1manbetxnk环境中,你可以代表这些类型的载体,公共汽车,IntEnum, 分别。

  • 是否需要定点配套?万博1manbetx如果您使用Simulink的定万博1manbetx点接口,可以扩展,并指定偏移。

  • 是否外部代码使用公司特定的数据类型?如果是的话,你已经嵌入式编码软件,创建别名类型来表示这些外部类型。代码生成器的,因为它产生的代码使用别名类型。例如,一旦确定,则可以指定在一个函数原型的别名类型,临时变量,或用于块输出。

  • 是否与共享内存的代码交换数据?如果是的话,定义和使用内存部分。

直接函数调用 你想直接从模型调用C外部代码?您可以从机制,如旧代码的工具,Stateflow的外部代码接口和图表动作语言和MATLAB选择®功能块。
的外部代码插入到所生成的代码 你想控制生成的代码内外部代码的工作?你想代码插入到生成的入口点函数?可以通过使用模型的配置参数或自定义代码块生成的代码内放置的代码。
代码生成优化支持万博1manbetx 你想优化的代码生成器产生的代码?如果是这样,你可以为代码生成器配置模型来优化它基于应用目标,如执行,ROM和RAM的效率产生的代码。您还可以使用代码替代库的选项。
所需的文件 你希望尽量减少您维护文件的数量?一些外部代码集成工具需要你保持单独的文件定义仿真和代码生成。

接下来,查看选择一个工作流程(嵌入式编码)。

选择一个工作流程

要选择针对每个积分点的工作流,使用下面的流程图。灰色方框确定共同的工作流程,并提供更多信息的链接。点击灰色框最佳地址的集成点的要求。

相关话题