主要内容

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

软件项目通常涉及结合来自多个源的代码。代码生成应用程序的典型系统结构由框架,结合来自多个源的代码,包括外部代码和从模型生成的代码金宝app®模型。

这图显示了一个应用程序,需要整合现有的硬件设备驱动程序代码。核心软件算法和逻辑可以对外可重用的代码模块的组合算法集成到仿真软件生成环境和代码作为一个整体模型设计的一部分。金宝app

完成这些任务可以帮助你选择外部代码集成工作流和工具,结合您的项目。

任务 行动 更多的信息
1 组件应用程序分区,映射算法,识别集成点。

软件部署的概念(嵌入式编码),分解软件问题(嵌入式编码),嵌入式系统架构映射到仿真软件的建模环境金宝app(嵌入式编码)

2 确定你可以依赖调度代码生成器生成的代码,或者你是否必须生成的代码集成调度机制是特定于您的运行时环境。 选择一个软件执行调度框架代码的执行(嵌入式编码)
3 评估外部代码,你进口的特点。 评估外部代码的特征(嵌入式编码)
4 识别集成需求,协助选择最优集成工具。 识别集成需求(嵌入式编码)
5 基于任务1 - 4的结果,选择一个工作流。 选择一个工作流程(嵌入式编码)

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

代码生成器支持两种类型的软件执行fra金宝appmeworks-single模型和多个顶级。第一个问题回答问题的两个框架符合项目的调度和其他需求。例如,您可以将外部代码导入一个率模型。您可以导出代码从一个顶级模特或多个顶级模型集成与定制(外部)调度机制。

  • 单一的顶级模特

    生成一组应用程序代码文件从外部代码和代码模型C / c++代码生成器生成。金宝app生成的代码包含一个调度程序。在这种情况下,您进口代码到仿真软件代码生成环境。金宝app

  • 单一模型或多个顶级模型

    集成C或c++代码,代码生成器产生的模型组件与外部应用程序代码和外部调度器。你出口生成的代码的仿真软件代码生成环境。金宝app

调用外部设备驱动程序代码导入导出的模型和生成代码的模型包括导入和导出代码。

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

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

    • 调用可重用外部模拟算法代码和代码生成。

    • 把外部C / c++代码生成的代码。

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

    • 应用函数和运算符的代码替换。

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

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

  • 导出生成的代码包含在外部代码库。需要嵌入编码器®

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

    • 生成共享库用于出口。

    生成的代码有关出口的更多信息,请参见可调用的函数集成(嵌入式编码)

接下来,看到评估外部代码的特征(嵌入式编码)

评估外部代码的特征

在选择外部集成的工作流,评估这些外部代码的特性。接口与外部代码,生成的C或c++代码处理一个或多个外部代码的特征。了解这些特点和需求的建模、仿真和代码生成可以帮助你选择最佳的工作流集成场景。(见识别集成需求(嵌入式编码))。

特征 要考虑哪些方面
硬件的依赖

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

设备驱动程序直接与硬件交互。他们依靠硬件的特性。例如,一个设备驱动程序的初始化模拟-数字转换器,读取数据,并将数据写入硬件寄存器。硬件差异和依赖关系关注数据类型大小、endianess,转移操作,编译器指令,和优化函数和运营商的支持。金宝app其他代码的接口,设备驱动程序通过一个API和数据映射到具体的内存地址。通常,开发计算机上模拟是不可能的。读取或写入寄存器在开发计算机上模拟产生意想不到的和不受欢迎的结果。

可重用的 外部代码可重用软件模块吗?例子包括效用函数,查找表、过滤器、专业集成商,proportional-integral-derivative (PID)控制模块。
函数调用之间的依赖数据持久性 外部代码需要持久数据吗?例如,调用一个一阶滤波器的输出函数使用之前调用函数来计算一个新的输出值。您可以选择定义全局或使用共享内存的数据外部函数的上下文。
数据类型和接口 多么复杂的外部代码使用的数据吗?数据接口是什么样子?它由参数,返回值,全局变量和访问功能。代码使用什么数据类型?类型仅限于基本的ANSI C整数,浮点类型,数组的整数或浮点类型,这些类型的指针?接口包括结构或指向结构的指针吗?
定点代码 外部代码设计integer-only处理器上运行?如果是的,代码交流和使用数据表示为整数。与定点相关数据可以扩展或补偿。
外部资源的依赖性 外部代码使用数据、函数或宏定义的范围之外的代码吗?例如,函数可以使用标准ANSI函数,一个共享库,或者预定义常量。在这些情况下,您必须通知编译器和链接器的外部资源的路径和文件名。
解决外部要求 你用先进的开发或快速原型的外部函数与连续传递函数来描述一个系统或一组微分方程?如果是,外部代码依赖于外部解算器。

接下来,看到识别集成需求(嵌入式编码)

识别集成需求

在选择外部集成的工作流,回顾这些集成需求。理解这些需求和外部代码的特点,帮助你选择最佳的工作流集成场景。(见评估外部代码的特征(嵌入式编码))。

要求 要考虑哪些方面
努力 什么级别的工作计划在集成project-low,媒介,还是高?
学习努力 分配项目资源的编程经验是什么?多少经验分配资源模型和MathWorks吗金宝app®C / c++代码生成产品吗?下载188bet金宝搏
仿真和代码生成的行为 你想利用基于模型的设计?充分利用基于模型的设计,将代码转换为建模元素,您可以使用仿真软件和Stateflow金宝app®仿真环境。然后,模拟和生成代码集成组件。使用software-in-the-loop (SIL)或processor-in-the-loop(公益诉讼)测试来验证算法的行为是否在两种环境中是一样的。
数据接口和打字
  • 你的模型或生成的代码需要与外部交换数据函数?如果是这样,地图输入、输出,外部函数和参数界面。典型的函数接口涉及函数参数和返回值,和访问功能,比如全局变量getRPM

  • 你想代表数组、结构或枚举类型?在仿真软件环境金宝app中,您可以将这些类型表示为向量,巴士和IntEnum,分别。

  • 定点支持是必需的吗?金宝app如果你使用仿真软件定点接口,您金宝app可以指定偏移。

  • 外部代码使用公司特有的数据类型吗?如果是的,你有嵌入式编码软件,创建别名类型来表示这些外部类型。代码生成器使用别名类型在它产生的代码。例如,一旦定义,您可以指定别名输入一个函数原型,对于一个临时变量,或阻碍输出。

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

直接函数调用 你要打电话给C外部代码直接从模型?比如,你可以选择机制C函数块,C调用者块,遗留代码的工具,Stateflow外部代码接口和图表动作语言和MATLAB®功能块。
外部代码插入生成的代码 你想控制外部代码中生成的代码的位置?你想插入的代码生成的入口点函数?您可以将代码生成的代码通过使用模型中配置参数或自定义代码块。
代码生成优化的支持金宝app 你想优化代码生成器生成的代码?如果是这样,你可以配置模型优化代码的代码生成器产生基于应用程序的目标,如执行ROM和RAM效率。您还可以选择使用代码替换库。
文件要求 你想减少你保持文件的数量?一些外部的代码集成工具要求你保持单独的文件定义仿真和代码生成。

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

选择一个工作流程

选择一个工作流将外部代码集成到仿真软件环境,使用下表的更多信息的链接。金宝app

目标 行动 更多的信息

从生成的代码调用外部算法独立于硬件的可重用代码。例如:效用函数,查找表和数字滤波器。

选择一个方法将外部代码集成到代码生成的仿真软件环境基于你的编程语言和其他集成需求。金宝app 调用可重用外部模拟算法代码和代码生成(嵌入式编码)
调用硬件相关的外部可重用外部算法代码生成的代码。例如:设备驱动程序。 调用外部驱动代码的仿真软件环境。金宝app 调用外部设备驱动程序(嵌入式编码)
把外部C / c++代码生成的代码。 增强功能与外部代码使用模型配置参数或自定义代码块。 把外部C / c++代码生成的代码(嵌入式编码)
改变函数和运算符的代码生成器生成的代码来满足应用程序代码的需求。 使用代码替换指定特定于应用程序的函数和运算符实现。 应用函数和运算符的代码替换(嵌入式编码)

相关的话题