AnyMath 文档

动脉支持包

在开始之前,从文章中做一般的准备和设置 在目标硬件上运行模型. 它描述了在目标硬件上启动模型的一般步骤:环境准备、连接、生成和组装,以及基本的启动验证。

本文介绍了在模式下在*动脉AT32*微控制器上运行模型的特性 目标硬件 .

在模式下使用*动脉AT32*卡 目标硬件 该区块正在使用中 EDM-Target-Artery. 它提供代码生成,固件组装和下载,以及在微控制器上运行模型。

edm target artery

外设配置(定时器,USART,DMA,GPIO,ADC)在*AT32Workbench*环境中执行,该环境是用于项目生成的官方专用工具。

EDM-目标-动脉块的参数

座 *EDM-Target-Artery*通过以下参数调整与微控制器的交互:

  • Модель МК: -微控制器模型(例如, AT32F435ZMT7). 指定时 汽车 它是从*AT32工作台*项目自动检测到的。

  • Путь к проекту AT Workbench: -生成的AT32Workbench项目的文件夹的完整路径(包含 CMakeLists.txt脧脗脭脴 和文件 .ATWP).

  • Путь к тулчейну для сборки: -完整的路径 arm-none-eabi-gcc. 指定时 汽车 搜索是自动执行的:首先,由环境变量(ARM_NONE_EABI_PATH, ARM_GCC_TOOLCHAIN_PATH, GCC_ARM_NONE_EABI_PATH),然后在AT32IDE路径中,然后在 路径.

  • Программатор: -程序员类型: openocdat-link-控制台.

  • Путь к утилите для прошивки: -完整的路径 ATLink_Console。exe文件 (AT-Link控制台)或 的openocd。exe文件 (OpenOCD)。 指定时 汽车 搜索是自动执行的:首先,由环境变量(ATLINK_CONSOLE_PATH, AT_LINK_CONSOLE_PATH),然后在AT32IDE路径中,然后在 路径.

  • COM порт: -用于交互模式的串行端口(例如, COM3/开发/ttyACM0).

  • Резервируемый модуль USART: 是用于交互模式的USART编号。 必须匹配*AT32Workbench*中配置的USART模块(USART1–USART6,UART4–UART8)。

所需软件

要使用*动脉AT32*,您需要安装以下工具:

*AT32Workbench-用于配置微控制器外设并使用CMake构建系统生成项目。 你可以从 官方动脉网站

*编译器 arm-none-eabi-gcc-建议使用AT32IDE版本或单独安装。

*程序员-OpenOCD与AT32或AT-Link控制台支持。

允许在没有AT32IDE的情况下工作。 在这种情况下,必须单独安装。:

*编译器 arm-none-eabi-gcc. *用于固件的OpenOCD或AT-Link控制台。

有两种方法可以使用实用程序。:

*手动指定实用程序-在块参数中指定编译器和程序员的完整路径 EDM-Target-Artery .

*模式 汽车AnyMath 它会自动搜索实用程序。 在这种情况下,使用环境变量。 路径,并且实用程序应该可以通过它获得。

准备工作 AnyMath

确保已安装和配置硬件支持包。 它的安装在一节中详细描述 硬件连接

如果已安装支持包,则可以继续启动客户端程序并使用提供的URL进行连接。

AT32工作台项目的准备工作

  1. 安装和配置*AT32工作台*。

  2. 为您的微控制器创建一个项目*AT32*:

*选择目标微控制器(例如, AT32F435ZMT7).

*设置必要的外围设备。

  1. 在项目设置中,选择*CMake*构建系统,然后单击*生成代码*:

    at32 workbench cmake

  2. 将项目保存到方便的目录中。 确保项目的根目录中有文件。:

    • CMakeLists。txt脧脗脭脴 -CMake构建根文件;

    • <项目名称>。ATWP -配置文件*AT32工作台*;

    • cmake/at32_workbench/CMakeLists。txt脧脗脭脴 -CMake工具链文件。

  3. 确保 主要。c 包含自定义*AT32工作台*部分(在生成过程中自动添加):

    /* add user code begin private includes */
    /* add user code end private includes */
    
    /* add user code begin 0 */
    /* add user code end 0 */
    
    /* add user code begin 2 */
    /* add user code end 2 */
    
    /* add user code begin 3 */
    /* add user code end 3 */

设置和启动模型

  1. 打开模型 AnyMath .

  2. 单击目标平台选择按钮并选择 目标硬件 :

    target hardware 1

  3. 添加块 EDM-Target-Artery 从块库到画布 AnyMath . 如果缺少该块,请使用以下命令更新支持包:

    engee.package.start("Engee-Device-Manager")
  4. 配置块 EDM-Target-Artery :

    • Модель МК: -指定MK的型号或 汽车 用于自动检测;

    • Путь к проекту AT Workbench: -指定项目文件夹的路径;

    • Путь к тулчейну для сборки:汽车 或完整的路径 arm-none-eabi-gcc;

    • Путь к утилите для прошивки:汽车 或者程序员的完整路径。

      edm target artery params

  5. 选择模型执行模式:

    • 在硬件上运行模型 target hardware 4 -交互式执行与控制从 AnyMath .

    • 以独立模式运行 target hardware 3 -离线执行,无需控制 AnyMath .

  6. 单击"开始"按钮。

如果块 EDM-Target-Artery 未添加到模型中,启动时会出现错误: ErrorException("EDM-Target-Artery block not found. 要在目标硬件模式下启动模型,模型必须包含EDM-Target-Artery块。")

互动模式

交互模式使用带有DMA的USART与 AnyMath .

模型执行调度程序(定时器)它是自动配置的。 AnyMath 自己预留一个免费计时器,计算时间限制和周期,并添加一个呼叫 model_tick() -不需要在*AT32工作台*手动定时器设置。

  1. 在*AT32工作台*中,选择免费的USART模块(USART1-USART6或UART4-UART8)。 打开它:

    usart interactive enable

  2. 配置USART设置: 模式* — 异步; 波特率* — 115200位/秒; 字长* — 8位; 停止位* — 1; *平价.

    usart interactive params

  3. 为选定的USART启用*DMA*:

转到*DMA*选项卡。 *单击*添加*并添加*DMA请求USARTx_RX,在哪里 x -保留的USART模块的编号。 *在*优先级*字段中,指定 . 在*DMA请求设置*中,将*模式*设置为 通告.

+ dma usart rx circular

添加第二个*DMA请求USARTx_TX. 在*优先级*字段中,指定 . 在*DMA请求设置*中,将*模式*设置为 正常.

+ dma usart tx normal

  1. 再次生成项目(生成代码)。

  2. 在块参数 EDM-Target-Artery 指定: 保留的USART模块*-USART编号(例如, 1 对于USART1); COM端口*是设备端口。

    edm target artery comport

COM端口示例: *Linux — /开发/ttyACM0; *窗户 — COM1.

检查可用端口: *Linux: ls/dev/grep ttyACM; *窗户:打开 «设备管理器» → «端口(COM和LPT)» -端口号在设备名称中指定(例如, COM3).

解决可能出现的问题

Tulchain检测的问题

如果出现错误,指出尚未找到编译器或程序员:

在块参数中手动指定路径 *EDM-Target-Artery 而不是 汽车. *通过变量检查实用程序是否可用 路径. *确保安装了AT32IDE(包含 arm-none-eabi-gccATLink_Console。exe文件).

装配问题

*检查在*AT32Workbench*中选择*CMake*作为构建系统。 *确保项目的根有 CMakeLists.txt脧脗脭脴. *构建错误以完整输出显示在客户端程序的界面中。

固件问题

*检查编程器的连接(AT-Link或兼容)。 *确保微控制器已通电且处于调试模式。 *检查OpenOCD的配置文件 接口/atlink。[医]cfg目标/at32f435xx.cfg.

USART连接的问题

报告时 无法连接到目标:

*检查USB连接的可靠性。 *确保TX/RX连接正确。 *在Linux上,将用户添加到有权访问串行设备的组(例如, 拨号,拨号uucp -取决于您的分布)。

用户部分的损坏

如果标记被删除 /*添加用户代码begin。.. */主要。cCMakeLists。txt脧脗脭脴:

*删除损坏的文件。 *在*AT32工作台*中再次生成项目(使用*生成代码*按钮)。