文档

关于嵌入式目标开发

与代码生成器绑定的目标文件适合于许多不同的应用程序和开发环境。第三方目标提供了额外的多功能性。此外,您还可以选择实现自定义目标。

实现一个基于手臂®皮质®——或手臂皮层-M处理器,安装相应的支持包,并查看目标SDK: Embedded Coder金宝app®金宝app支持包手臂皮层——处理器、制定一个目标(嵌入式编码器支持包的ARM C金宝apportex-A处理器)或嵌入式编码器支持包手臂皮层- m处理器,制定一个目标ARM Cortex-M处理器的金宝app嵌入式编码器支持包。否则,请使用这些函数和主题。

自定义的目标

出于以下原因之一,您可能想要实现自定义目标:

  • 使用特定的开发环境(编译器/连接器/调试器),最终用户可以为特定的CPU或开发板生成可执行的产品代码。

  • 通过将金宝app自定义设备驱动程序块合并到模型中来支持目标硬件上的I/O设备。

  • 为特殊的编译器(如嵌入式微控制器或DSP板的交叉编译器)或开发/调试环境配置编译过程。

代码生成器为创建自定义嵌入式目标(用于上述基本目的)提供了出发点。本手册涵盖了实现自定义嵌入式目标所需的任务和技术。

类型的目标

下面的部分描述了针对不同用例的几种目标类型

对目标类型

从基线或快速原型目标到生产目标有一个能力的发展过程。最初,您可能希望实现快速原型化目标。稍后,您可以增强目标,使其功能更全面。例如,您可能希望在某些时候添加对在环软件(SIL)或在环处理器(PIL金宝app)模拟的支持,以验证嵌入的目标。目标类型不是互斥的。嵌入式目标可以支持多个这样的用例,或者这里没有金宝app概述的其他用途。

接下来是目标类型的讨论嵌入式目标的推荐功能,其中包含了嵌入式目标开发的建议特性列表和通用指南。

快速原型的目标

一个快速原型的目标或基线目标提供了定位生产处理器的起点。快速原型目标将编码生成器软件与一个或多个流行的交叉开发环境(编译器/链接器/调试器工具链)集成在一起。快速原型目标提供了一个起点,您可以根据应用程序需求定制目标。

为这种类型的目标提供的目标文件应该是可读的、易于理解的,并且有完整的注释和文档。应该特别注意预期的交叉开发环境的接口。这个接口应该使用特定开发系统的首选方法来实现。例如,一些开发环境使用传统的make实用程序,而另一些则基于可以在代码生成器控制下自动化的项目文件构建。

当您使用快速原型目标时,您需要包含自己的设备驱动程序和遗留代码,并修改连接器内存映射以满足您的需求。您应该熟悉目标开发系统。

生产目标

一个生产目标金宝app支持用于生产处理器的嵌入式应用程序开发。它包括创建与外部世界立即交互的程序可执行程序的能力。一般来说,易于使用比生成的代码文件的简单性或可读性更重要,因为它假定您不希望或不需要修改文件。

生产目标所需的功能包括:

  • 重要的I/O驱动程序支持,提供开箱即用金宝app

  • 容易下载生成的独立可执行程序与第三方调试器

  • 在FLASH或RAM内存中用户控制的可执行文件的放置

  • 金宝app支持代码可见性和目标硬件上的调优

用SIL和PIL模拟验证目标

您可以使用软件在环(SIL)或处理器在环(PIL)模拟来验证生成的代码并验证目标编译器/处理器环境。

您可以使用SIL和PIL模拟模式来验证自动生成的代码,通过将结果与正常模式模拟进行比较。使用SIL,您可以很容易地在主机上验证生产意图源代码的行为;然而,由于代码必须针对主机平台(即与目标硬件不同的编译器和处理器体系结构)进行编译,因此通常不可能验证随后将为目标硬件编译的完全相同的代码。使用PIL模拟,您可以验证您打算在生产中部署的完全相同的代码,并且您可以在真实的目标硬件或指令集模拟器上运行代码。

有关描述如何运行在循环中的处理器测试以验证自定义目标的示例,请参见示例自定义目标

有关SIL和PIL模拟的更多信息,请参见SIL和PIL模拟(嵌入式编码)。

仿真模拟

一个专门的用例是用来生成在中使用的可执行文件(边境)模拟。在HIL仿真中,随着部件的细化和制造,纯仿真的部分逐渐被硬件部件取代。HIL模拟提供了一个有效的设计过程,消除了昂贵的零件制造迭代。

嵌入式目标的推荐功能

基本目标特性

  • 您可以基于通用实时(GRT)目标或嵌入式编码器中包含的嵌入式实时(ERT)目标建立目标®产品。

    如果你的目标是基于ERT目标,它应该使用“Embedded-C”CodeFormatTLC变量,它应该继承ERT目标的系统目标文件中定义的选项,TLC文件中的行如下:

    % % %分配CodeFormat = " Embedded-C分配代码格式 " %%---------------------------- /% BEGIN_RTW_OPTIONS rtwgensettings。缘起于=“ert.tlc”;END_RTW_OPTIONS  %/ %%----------------------------

    通过遵循这些建议,您的目标具有ERT目标的生产代码生成功能。

    看到自定义系统目标文件有关继承机制的详细信息,请设置CodeFormat,以及其他细节。

  • 嵌入式目标最基本的要求是从模型或子系统生成实时可执行文件。通常,嵌入式目标生成基于中断的计时器,bareboard可执行程序(尽管目标也可以为操作系统环境开发)。

    您的目标应该支持用于模型执行的单任务和金宝app多任务求解器模式的代码生成器概念。任务支持可以与E金宝appRT目标一起使用,但是在实现基于ERT的目标之前,您应该彻底了解它是如何工作的。

    有关基于中断的计时器执行的信息,请参见绝对时间和运行时间计算异步事件

  • 您应该生成目标可执行文件的主程序模块,而不是使用静态主模块(如静态rt_main.crt_cppclass_main.cpp模块随软件提供)。一个生成的c. cpp可以变得更易读和更高效,因为它省略了预处理器检查和其他额外的代码。

    有关生成和静态主程序模块的信息,请参见将生成的独立可执行程序部署到目标硬件(嵌入式编码)。

  • 遵循文件夹和文件命名约定

与目标开发环境集成

  • 大多数交叉开发系统都是在Microsoft下运行的®窗户®电脑主机。您的目标应该支持Windows操作系统金宝app作为主机环境。

    一些交叉开发系统支持Open Group UNIX的一个或多个金宝app版本®平台,也允许UNIX主机支持。金宝app

  • 您的嵌入式目标必须支持至少一个嵌入式开发环境。金宝app开发环境的接口可以采用几种形式之一。工具链方法和模板生成文件方法生成标准生成文件以配合您的开发环境。有关这些构建方法的一般信息,请参见选择生成方法和配置生成过程.模板makefile的详细结构请参见自定义模板makefile

    使用基于ide的工具的另一种方法是创建一个微软Visual Studio®来自目标的解决方案,用于在Visual Studio项目中集成。

    考虑开发环境供应商的许可要求和限制是很重要的。您可能需要修改供应商提供的文件,并将其作为嵌入式目标的一部分发布。

    看到开发工具接口为进一步的信息。

观察目标代码的执行

  • 你的目标应该支持一种机制,你可以用来观金宝app察目标代码的实时运行(在调试器之外)。

    你可以使用rtiostreamAPI实现一个通信通道,以支持不同进程之间的数据交换。有关为目标连接性创建通信通道的示例,请参见为处理器在环(PIL)模拟创建目标通信通道(嵌入式编码)。这rtiostream通信通道需要在新目标上启用环中处理器(PIL)。看到通信rtiostream API(嵌入式编码)。

    一种行业标准方法是使用CAN总线、ASAP2文件和CAN校准协议(CCP)。有几个基于主机的图形前端工具可以连接到支持ccp的目标,并提供数据查看和参数调优。金宝app支持这些工具需要实现CAN硬件驱动程序和CCP协议为目标,以及ASAP2文件生成。您的目标可以利用代码生成器提供的ASAP2支持。金宝app

    另一个选择是支持Simulink金宝app金宝app®通过串行接口(RS-232)的外部模式。看到你可以做什么与主机/目标沟通渠道以获取有关使用外部模式API的信息。

部署和硬件问题

  • 设备驱动支持是嵌入式目标设计金宝app中的一个重要问题。设备驱动程序是Simulink模块,支金宝app持目标CPU的硬件I/O功能,或金宝app开发板的I/O特性。

    如果您正在开发一个快速原型目标,考虑提供最小的驱动程序支持,假设最终用户开发他们自己的驱动程序。金宝app如果您正在开发一个生产目标,您应该提供完整的驱动程序支持。金宝app

    看到设备驱动程序

  • 将生成的代码自动下载到目标硬件使目标更易于使用。通常使用调试器实用程序;如果所选的调试器支持命令脚本文件,这可以很容易金宝app地实现。STF_make_rtw_hook.m描述从构建过程执行代码的机制。你可以用这个机制来做系统()调用实用程序(如调试器)。您可以以类似的方式调用其他简单的下载实用程序。

    如果您的开发系统支持COM自动化,您可以通过该机制控制金宝app下载过程。COM自动化的应用在开发工具接口

  • 映射到RAM内存的可执行文件是典型的。通过使用目标的代码生成选项,您可以为可执行文件的F金宝appLASH或RAM放置提供可选支持。要支持金宝app此功能,您可能需要多个链接器命令文件、多个调试器脚本,可能还需要多个makefile或项目文件。还包括根据RAM/FLASH选项值在这些文件之间自动切换的能力。

  • 为您的目标处理器选择一个流行的、广泛可用的评估或原型板。考虑目标板的封闭和加固版本。还要考虑对目标CPU的各种片上I/O能力的板级支持,金宝app以及支持所选板的开发系统的可用性。

相关的话题

这个话题有用吗?