主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用硬件映射配置中断和事件

硬件映射工具允许您为选定的硬件板配置硬件中断任务。借助此工具,您可以将软件模型中的任务映射到可用的事件源和中断。

  1. Simulink® 工具条:在硬件选项卡上,点击 Hardware Mapping

    或者,您也可以从 Hardware Interrupt 模块启动它。

  2. 浏览器 > 任务 > CPU name (c28xCPU1, c28xCPU1 或 CortexM4) 中手动选择任务。

    Hardware Mapping

  3. 在 Hardware Interrupt 模块中为相应的任务选择所需的中断组中断名称事件名称

    • 中断组 - TI C2000™ 外设和非外设中断根据引起中断的外设分为各种组。中断组是根据配置参数中选择的硬件板进行填充的。选择中断组会更改中断名称参数中的值列表。

    • 中断名称 - 对应于处理器中断向量量表中的特定条目。可用的中断服务例程取决于中断组。

    • 事件名称列出了与所选的中断组对应的所有事件。

    • 事件名称 - 列出导致中断名称参数中中断的事件。此外,对于具有多个事件的中断,您可以配置默认事件自定义事件

      • Custom event - 当使用软件触发中断时,可以使用此事件。这是用于确认无需外围设备干预即可触发的中断。

        在这种情况下,既不进行中断标志检查,也不进行中断清除。自定义事件的代码片段如下所示:

        // custom event
        
        interrupt void ISRNAME()
        {
        
        {
        //body of the event
        }
        
        //Acknowledge ISR
        
        }
        

      • Default event - 此事件默认选中。在这种情况下,所有未选择的导致中断的事件都会被清除。与此事件对应的子系统仅对未选择的事件执行。如果仅选择默认事件,则不检查中断标志。

        默认事件的代码片段如下所示:

        // Default event
        
        interrupt void ISRNAME()
        {
        
        if(selectedevents)
        {
        //body of the event;
        //clear selected events
        }
        if(nonselectedevents)
        {
        //body of the default event
        //clear all non selected events
        }
        //acknowledgeISR;
        }
        

    • Event Order - 您可以选择多个事件作为中断。在 Hardware Interrupt 模块中,对于参数 Number of events to serve,提供您要确认的号码。

      Number of events to serve 参数中指定大于 1 的值,将向该模块添加相应数量的输出端口。每个事件都可以在硬件映射中进行配置。配置时请确保每个事件的执行顺序不同。

      事件顺序决定了 ISR 中事件的执行顺序。用于多个事件的代码片段如下所示:

      interrupt ISRName()
      {
      //Execution order for event 1 is 1
      if(event1)
      {
      //subsystem1
      //clear event1;
      }
      //Execution order for event 1 is 2
      if(event2)
      {
      //subsystem2
      //clear event2;
      }
      ...
      //Acknowledge ISR
      }

    例如,要为多个事件创建 ISRNAME 并选择默认事件,代码片段如下所示:

    interrupt ISRName()
    {
    //Execution order for event 1 is 1
    if(event1)
    {
    //code for the subsystem triggered by event1
    //clear event1;
    }
    //Execution order for event 1 is 2
    if(event2)
    {
    //code for the subsystem triggered by event2
    //clear event2;
    }
    //Default event
    if(event3)
    {
    //code for the subsystem triggered by default event
    //clear event3;
    }
    ...
    //Acknowledge ISR
    }

    Events configured

    事件或中断的来源取决于该模型中可用的硬件板的选择。

  4. 点击工具条栏中的应用更改按钮。

另请参阅

| |