This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM2634:为什么计时器实例选择有限?

Guru**** 2582405 points
Other Parts Discussed in Thread: TMDSCNCD263, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1183856/am2634-why-are-timer-instance-choices-limited

器件型号:AM2634
主题中讨论的其他器件:TMDSCNCD263SysConfig

专家

我目前正在使用"TMDSCNCD263"进行预开发。

为了使用多核、我们根据示例创建了每个内核中使用的项目。

但是、根据项目的不同、并不是所有的定时器实例都被选中。

原因是什么?

1. R5SS0_0的项目:无法从定时器实例中选择 RTI0

2.   R5SS1_0的项目: 无法从计时器实例中选择 RTI2

3.  针对 R5SS1_1的项目: 无法从定时器实例中选择 RTI3

4. 当系统项目一起打开时: 在所有项目中,不可能选择任何 RTI1以外的项目,并且会发生冲突

请问有没有办法解决这个问题吗?

此致

Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    崔继雄、您好!

    我们已收到您的问题、现在将对此进行研究。 请留出几天时间进行跟进。

    此致、

    Zackary Fleenor

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在这段时间内、您能否提供该主题中提到的项目文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    同时、您能否提供该主题中提到的项目文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Zackary Fleenor

    遗憾的是、由于内部安全策略、文件上传受到限制。

    因此、SysConfig 文件的文本如下所示。

    如果您告诉我们您需要检查的文件、 我可以提供文本格式。

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    崔继雄、您好!

    SysConfig 文本文件将很有用。

    我想提请注意以下三个粗体字。 这些详细信息在 MCU+SDK 驱动程序移植层(DPL)-时钟文档中提供(链接如下)。

    • 用户特定回调可在中断、SWI 或任务上下文中调用、具体取决于所使用的底层 RTOS
      • 在非 RTOS 情况下、在中断上下文中调用回调
      • 建议假设在 ISR 上下文中调用回调、而不是在回调中阻止回调。
      • 通常、用户应该在回调本身内进行非常有限的工作、并通过信标发布将大部分工作推迟到任务。
    • ClockP_usleep  ClockP_SLEEP  将在用户指定的时间到期前被阻止。
      • 在非 RTOS 情况下、只有一个主任务、它将阻止或旋转、直到节拍被消除
      • 在 RTOS 情况下、当前执行的任务将'挂起'、而 schedular 将切换到另一个就绪的任务
      • 在这两种情况下、ISR 仍然处于活动状态
      • 在 RTOS 情况下,实际睡眠将在 sleep time - ClockP_ticksToUsec(1) 到的范围内 sleep time。 如果您需要保证至少睡眠的最低程度 sleep time,则需要为睡眠, sleep time + ClockP_ticksToUsec(1)即在1个操作系统节拍的最大值时将出现错误
    • 使用多个 CPU 时、请确保每个 CPU 使用不同的硬件计时器、否则节拍 ISR 不会按预期触发。
    • 周期的建议值为1ms 或1000us
    • 在 SysConfig 中添加任何模块、会自动添加计时器配置为1ms 的时钟模块。 选择的默认定时器不会与另一个 CPU 的定时器重叠。
    • 在 M4F 中、使用了 M4F 内部 SysTick 计时器。
    • 在 R5F 中、使用了众多 SOC 级计时器之一。

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/KERNEL_DPL_CLOCK_PAGE.html#:~:text=NA-,Important%20Usage%20Guidelines,-The%20user%20specific

    我正在向我们的软件专家寻求有关多核应用可能存在的限制的更多反馈。

    此致、

    Zackary Fleenor

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、 Zackary Fleenor

    我了解到、在多核中、我需要为每个内核使用不同的计时器实例。

    但现在的问题是、我无法选择计时器实例。

    我要使用的 SysConfig 文件是:

    1.系统项目





















    2. R5FSS0项目

    /**
    *生成此文件时使用了这些参数。 它们将自动应用于后续加载
    *通过 GUI 或 CLI。 使用'--help'运行 CLI 以获取有关如何覆盖这些参数的其他信息。
    *@clipArgs -器件"AM263x_beta"-封装"ZCZ -器件"AM263x"-上下文"r5fss0-0"-产品"MCU_PLUS_SDK_AM263x@08.05.00
    *@版本{"工具":"1.14.0+2667"}
    *
    Scripting.excludeFromBuild ("ti_enet_config.c");
    Scripting.excludeFromBuild ("ti_enet_config.h");
    Scripting.excludeFromBuild ("ti_enet_open_close.c");
    Scripting.excludeFromBuild ("ti_enet_open_close.h");

    /**
    *导入此配置中使用的模块。
    *
    const ADC = scripting.AddModule ("/drivers/adc/adc、{}、false);
    const ADC1 = adc.addInstance();
    const cmpss = scripting.AddModule ("/drivers/cmpss/cmpss、{}、false);
    const cmps1 = cmpss.addInstance();
    const GPIO = scripting.AddModule ("/drivers/gpio/gpio、{}、false);
    const GPIO1 = GPIO.addInstance();
    const IPC = scripting.AddModule ("/drivers/ipc/ipc);
    const mcan = scripting.AddModule ("/drivers/mcan/mcan、{}、false);
    const mcan1 = mcan.addInstance();
    const clock = scripting.AddModule ("/kernel/dpl/clock);
    const debug_log = scripting.AddModule ("/kernel/dpl/debug_log);
    const MPU_armv7 = scripting.AddModule ("/kernel/dpl/mpu_armv7、{}、false);
    const MPU_armv71 = MPU_armv7.addInstance();
    const MPU_armv72 = MPU_armv7.addInstance();
    const MPU_armv73 = MPU_armv7.addInstance();
    const MPU_armv74 = MPU_armv7.addInstance();
    const MPU_armv75 = MPU_armv7.addInstance();
    const MPU_armv76 = MPU_armv7.addInstance();
    const 计时器= scripting.AddModule ("/kernel/dpl/timer、{}、false);
    const Timer1 = timer.addInstance();
    const int_Xbar = scripting.AddModule ("/xbar/int_xbar/int_xbar、{}、false);
    const int_xbar1 = int_Xbar.addInstance();
    const output_Xbar = scripting.AddModule ("/xbar/output_xbar/output_xbar、{}、false);
    const output_xbar1 = output_Xbar.addInstance();

    /**
    *将自定义配置值写入导入的模块。
    *
    ADC1.$name ="CONFIG_ADC0";
    adc1.interruptPulseMode ="ADC_PULSE_END_TO_CONV";
    ADC1.enableInterrupt1 = true;
    ADC1.soc2Trigger ="ADC_TRIGGER_EPWM0_SOCA";
    ADC1.enableConverter =真;
    ADC1.soc2Channel ="ADC_CH_ADCIN2";
    ADC1.ADC.$assign ="ADC0";
    ADC1.ADC.AIN0.$ASSIGN ="焊球.V15";
    ADC1.ADC.AIN0.$used = false;
    ADC1.ADC.AIN1.$used = false;
    ADC1.ADC.AIN2.$used = false;
    ADC1.ADC.AIN3.$used = false;
    ADC1.ADC.AIN4.$used = false;
    ADC1.ADC.AIN5.$used = false;

    cmps1.$name ="CONFIG_CMPSS0";
    cmps1.cmpssBase ="CSL_CONTROLSS_CMPSA1_U_base";
    cmps1.enableModule = true;
    cmps1.dacValHigh = 2048;
    cmps1.dacRefVoltage ="CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmps1.clearFilterLatchHigh = true;
    cmps1.configLatchHigh = true;
    cmps1.highCTRIPOUT ="CMPS_TRIPOUT_LATCH";
    cmps1.highCTRIP ="CMPSS_TRIP_LATCH";

    GPIO1.$name ="CONFIG_GPIO22";
    GPIO1.pinDir ="输出";
    GPIO1.GPIO.gpioPin。$assign ="焊球.A8";

    ipc.r5fss0_1 ="无";
    ipc.r5fs1_0 ="通知";
    ipc.r5fs1_1 ="通知";

    mcan1.$name ="CONFIG_MCAN1";
    mcan1.MCAN.$assign ="MCAN1";
    mcan1.MCAN.RX.$assign ="焊球.L2";
    mcan1.MCAN.TX.$assign ="焊球.K1";

    debug_log.enable-CssLog = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enableLogZoneError = false;

    MPU_armv71.$name ="CONFIG_MPU_REGION0";
    MPU_armv71.size = 31;
    mpu_armv71.attributes ="设备";
    MPU_armv71.accessPermissions ="Supervisor RD+WR、User RD";
    mpu_armv71.allowExecute = false;

    MPU_armv72。$name ="CONFIG_MPU_REGION1";
    MPU_armv72.size = 15;
    MPU_armv72.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv73。$name ="CONFIG_MPU_Region2";
    MPU_armv73.baseAddr = 0x80000;
    MPU_armv73.size = 15;
    MPU_armv73.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv74.$name ="CONFIG_MPU_Region3";
    MPU_armv74.accessPermissions ="Supervisor RD+WR、User RD";
    MPU_armv74.baseAddr = 0x70000000;
    MPU_armv74.size = 21;
    mpu_armv74.attributes ="未缓存";

    MPU_armv75.$name ="CONFIG_MPU_REGION4";
    MPU_armv75.baseAddr = 0x50D00000;
    MPU_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes ="设备";

    MPU_armv76。$name ="CONFIG_MPU_REGION5";
    MPU_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes ="未缓存";

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";

    INT_xbar1.$name ="CONFIG_INT_XBAR1";
    int_xbar1.xbarOutput =["ADC0_INT1"];

    output_xbar1.$name ="CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput =["CMPSA1_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign ="OUTPUTXBAR0";

    /**
    *用于解锁引脚/外设的 Pinmux 解决方案。 这可确保将来对自动解算器进行细微更改
    *该工具的版本不会影响您最初看到的引脚多路复用器。 可以完全删除这些行、以便
    *从头开始重新解决。
    *
    GPIO1.GPIO.$建议解决方案="GPIO0";
    Timer1.RTI.$simestSolution ="RI1";
    output_xbar1.outputUTXBAR_OUTPUTXBAR。$sevelestSolution ="ball.R3";

    R5FSS1_0项目

    /**
    *生成此文件时使用了这些参数。 它们将自动应用于后续加载
    *通过 GUI 或 CLI。 使用'--help'运行 CLI 以获取有关如何覆盖这些参数的其他信息。
    *@clipArgs -器件"AM263x_beta"-封装"ZCZ -器件"AM263x"-上下文"r5fs1-0"-产品"MCU_PLUS_SDK_AM263x@08.05.00
    *@版本{"工具":"1.14.0+2667"}
    *
    Scripting.excludeFromBuild ("ti_enet_config.c");
    Scripting.excludeFromBuild ("ti_enet_config.h");
    Scripting.excludeFromBuild ("ti_enet_open_close.c");
    Scripting.excludeFromBuild ("ti_enet_open_close.h");

    /**
    *导入此配置中使用的模块。
    *
    const ADC = scripting.AddModule ("/drivers/adc/adc、{}、false);
    const ADC1 = adc.addInstance();
    const cmpss = scripting.AddModule ("/drivers/cmpss/cmpss、{}、false);
    const cmps1 = cmpss.addInstance();
    const ePWM = scripting.AddModule ("/drivers/epwm/epwm、{}、false);
    const epwm1 = ePWM.addInstance();
    const epwm2 = ePWM.addInstance();
    const epwm3 = ePWM.addInstance();
    const epwm4 = ePWM.addInstance();
    const GPIO = scripting.AddModule ("/drivers/gpio/gpio、{}、false);
    const GPIO1 = GPIO.addInstance();
    const IPC = scripting.AddModule ("/drivers/ipc/ipc);
    const clock = scripting.AddModule ("/kernel/dpl/clock);
    const debug_log = scripting.AddModule ("/kernel/dpl/debug_log);
    const MPU_armv7 = scripting.AddModule ("/kernel/dpl/mpu_armv7、{}、false);
    const MPU_armv71 = MPU_armv7.addInstance();
    const MPU_armv72 = MPU_armv7.addInstance();
    const MPU_armv73 = MPU_armv7.addInstance();
    const MPU_armv74 = MPU_armv7.addInstance();
    const MPU_armv75 = MPU_armv7.addInstance();
    const MPU_armv76 = MPU_armv7.addInstance();
    const 计时器= scripting.AddModule ("/kernel/dpl/timer、{}、false);
    const Timer1 = timer.addInstance();
    const ePWM_Xbar = scripting.AddModule ("/xbar/epwm_xbar/epwm_xbar、{}、false);
    const ePWM_xbar1 = ePWM_Xbar.addInstance();
    const int_Xbar = scripting.AddModule ("/xbar/int_xbar/int_xbar、{}、false);
    const int_xbar1 = int_Xbar.addInstance();
    const output_Xbar = scripting.AddModule ("/xbar/output_xbar/output_xbar、{}、false);
    const output_xbar1 = output_Xbar.addInstance();

    /**
    *将自定义配置值写入导入的模块。
    *
    adc1.interruptPulseMode ="ADC_PULSE_END_TO_CONV";
    ADC1.enableConverter =真;
    ADC1.soc2Channel ="ADC_CH_ADCIN2";
    ADC1.$name ="CONFIG_ADC1";
    ADC1.enableInterrupt1 = true;
    ADC1.soc2Trigger ="ADC_TRIGGER_EPWM0_SOCA";
    adc1.interrupt1SOCSource ="ADC_SOC_number2";
    ADC1.ADC.$assign ="ADC1";
    ADC1.ADC.AIN0.$used = false;
    ADC1.ADC.AIN1.$used = false;
    ADC1.ADC.AIN2.$ASSIGN ="焊球.t12";
    ADC1.ADC.AIN3.$used = false;
    ADC1.ADC.AIN4.$used = false;
    ADC1.ADC.AIN5.$used = false;

    cmps1.dacRefVoltage ="CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmps1.clearFilterLatchHigh = true;
    cmps1.configLatchHigh = true;
    cmps1.highCTRIPOUT ="CMPS_TRIPOUT_LATCH";
    cmps1.highCTRIP ="CMPSS_TRIP_LATCH";
    cmps1.enableBlank= true;
    cmps1.dacValLoad ="CMPSS_DACVAL_PWMSYNC";
    cmps1.latchResetHigh = true;
    cmps1.enableModule = true;
    cmps1.dacValSource ="CMPSS_DACSRC_RAMP";
    cmps1.dacValHigh = 4095;
    cmps1.maxRampVal = 65535;
    cmps1.ramDecVal = 1;
    cmps1.cmpssBase ="CSL_CONTROLSS_CMPSA3_U_BASE";
    cmps1.$name ="CONFIG_CMPSS3";

    epwm1.$name ="CONFIG_EPWM0";
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerEnable = true;
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerSource ="ePWM_SOC_TBCTR_zero";
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerEventPrescalar ="1";
    epwm1.epwmDigitalCompare_ePWM_DC_TYPE_DCAH_CombinationInputConfig =["ePWM_DC_combinational_TRIPIN1"];
    epwm1.epwmDigitalCompare_ePWM_DC_TYPE_DCBH_CombinationInputConfig =["ePWM_DC_Combinational_TRIPIN1"];
    epwm1.epwmGroup ="ePWM_group2";
    epwm1.epwmDigitalCompare_useBlankingWindow = true;
    epwm1.epwmDigitalCompare_BlankingWindowEvent ="ePWM_DC_WINDOW_START_TBCTR_Zero";
    epwm1.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm1.epwmTimebase_period = 1000;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_B_EPWM_DC_EVENT_2_EVENTSync ="EPWM_DC_EVENT_INPUT_NOT 已同步";
    epwm1.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_t1_count_up ="ePWM_AQ_output_low";
    epwm1.epwmDigitalCompare_ePWM_TZ_DC_OUTPUT _A1 ="ePWM_TZ_EVENT_DCXH_HIGH";
    epwm1.HRPWM_tbprdHR = 128;
    epwm1.HRPWM_synsource="HRPWM_PWMSYNC_SOURCE 零";
    epwm1.epwmDeadband_enableRED = true;
    epwm1.epwmDeadband_enableFED = true;
    epwm1.epwmDeadband_delayFED = 20;
    epwm1.epwmTimebase_phaseEnable = true;
    epwm1.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm1.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_CNTR_Zero"];
    epwm1.epwmDeadband_delayRED = 20;
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_TZA ="ePWM_TZ_ACT_DISABLE";
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_TSZ ="ePWM_TZ_ACT_DISABLE";
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT1 ="EPWM_TZ_ACT_DISABLE";
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT2 ="EPWM_TZ_ACT_DISABLE";
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT1 ="EPWM_TZ_ACT_DISABLE";
    epwm1.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT2 ="EPWM_TZ_ACT_DISABLE";
    epwm1.epwmDigitalCompare_BlankingWindowLength = 2;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_EVENTSync ="EPWM_DC_EVENT_INPUT_NOT 已同步";
    epwm1.ePWM.$assign ="EPWM0";
    epwm1.ePWM.A.$assign ="ball.b2";
    epwm1.ePWM.B.$assign ="焊球_B1";

    epwm2.$name ="CONFIG_EPWM1";
    epwm2.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm2.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm2.epwmDeadband_enableRED = true;
    epwm2.epwmGroup ="ePWM_group2";
    epwm2.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm2.epwmTimebase_period = 1000;
    epwm2.epwmTimebase_phaseEnable = true;
    epwm2.epwmDeadband_delayRED = 8;
    epwm2.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm2.epwmTimebase_phaseShift = 2;
    epwm2.epwmDeadband_enableFED = true;
    epwm2.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm2.epwmDeadband_delayFED = 12;
    epwm2.epwmDeadband_outputSwapOutA = true;
    epwm2.epwmDeadband_outputSwapOutB = true;
    epwm2.epwmDigitalCompare_ePWM_DC_TYPE_DCAH_combinationInputConfig =["ePWM_DC_combinational_TRIPIN1"];
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_TZA ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_TSZ ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT1 ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT2 ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT1 ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT2 ="ePWM_TZ_ACT_DISABLE";
    epwm2.epwmDigitalCompare_ePWM_TZ_DC_OUTPUT _A1 ="ePWM_TZ_EVENT_DCXH_HIGH";
    epwm2.epwmDigitalCompare_ePWM_DC_MODULE_A_ePWM_DC_EVENT_2_eventSync ="ePWM_DC_EVENT_INPUT_NOT 已同步";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_t1_count_up ="ePWM_AQ_output_low";
    epwm2.epwmDigitalCompare_useBlankingWindow = true;
    epwm2.epwmDigitalCompare_BlankingWindowEvent ="ePWM_DC_WINDOW_START_TBCTR_Zero";
    epwm2.epwmDigitalCompare_BlankingWindowLength = 2;
    epwm2.ePWM.$assign ="EPWM1";
    epwm2.ePWM.A.$assign ="焊球-D3";
    epwm2.ePWM.B.$used = false;

    epwm3.$name ="CONFIG_EPWM2";
    epwm3.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm3.epwmTimebase_phaseEnable = true;
    epwm3.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm3.epwmGroup ="ePWM_group2";
    epwm3.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm3.epwmTimebase_period = 1000;
    epwm3.epwmDeadband_enableRED = true;
    epwm3.epwmDeadband_delayRED = 12;
    epwm3.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm3.epwmTimebase_phaseShift = 2;
    epwm3.epwmDeadband_enableFED = true;
    epwm3.epwmDeadband_delayFED = 8;
    epwm3.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm3.epwmDeadband_outputSwapOutA = true;
    epwm3.epwmDeadband_outputSwapOutB = true;
    epwm3.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_t1_count_up ="ePWM_AQ_output_low";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_TZA ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_TSZ ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT1 ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT2 ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT1 ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT2 ="ePWM_TZ_ACT_DISABLE";
    epwm3.epwmDigitalCompare_ePWM_TZ_DC_OUTPUT _A1 ="ePWM_TZ_EVENT_DCXH_HIGH";
    epwm3.epwmDigitalCompare_ePWM_DC_TYPE_DCAH_CombinationInputConfig =["ePWM_DC_Combinational_TRIPIN1"];
    epwm3.epwmDigitalCompare_ePWM_DC_MODULE_A_ePWM_DC_EVENT_2_eventSync ="ePWM_DC_EVENT_INPUT_NOT 已同步";
    epwm3.epwmDigitalCompare_useBlankingWindow = true;
    epwm3.epwmDigitalCompare_BlankingWindowEvent ="ePWM_DC_WINDOW_START_TBCTR_Zero";
    epwm3.epwmDigitalCompare_BlankingWindowLength = 2;
    epwm3.ePWM.$assign ="EPWM2";
    epwm3.ePWM.A.$assign ="焊球.c2";
    epwm3.ePWM.B.$used = false;

    epwm4.$name ="CONFIG_EPWM3";
    epwm4.epwmGroup ="ePWM_group2";
    epwm4.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm4.epwmTimebase_period = 1000;
    epwm4.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm4.epwmTimebase_phaseEnable = true;
    epwm4.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm4.epwmDeadband_enableRED = true;
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm4.epwmDeadband_delayRED = 12;
    epwm4.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm4.epwmTimebase_phaseShift = 2;
    epwm4.epwmDeadband_enableFED = true;
    epwm4.epwmDeadband_delayFED = 8;
    epwm4.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm4.epwmDeadband_outputSwapOutA = true;
    epwm4.epwmDeadband_outputSwapOutB = true;
    epwm4.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_t1_count_up ="ePWM_AQ_output_low";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_TZA ="ePWM_TZ_ACT_DISABLE";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_TSZ ="ePWM_TZ_ACT_DISABLE";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT1 ="EPWM_TZ_ACT_DISABLE";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_DCAEVT2 ="EPWM_TZ_ACT_DISABLE";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT1 ="EPWM_TZ_ACT_DISABLE";
    epwm4.epwmTripZon_EPWM_TZ_ACT_EVENT_DCBEVT2 ="EPWM_TZ_ACT_DISABLE";
    epwm4.epwmDigitalCompare_ePWM_DC_TYPE_DCAH_CombinationInputConfig =["ePWM_DC_Combinational_TRIPIN1"];
    epwm4.epwmDigitalCompare_ePWM_TZ_DC_OUTPUT _A1 ="ePWM_TZ_EVENT_DCXH_HIGH";
    epwm4.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_EVENTSync ="EPWM_DC_EVENT_INPUT_NOT 已同步";
    epwm4.epwmDigitalCompare_useBlankingWindow = true;
    epwm4.epwmDigitalCompare_BlankingWindowEvent ="ePWM_DC_WINDOW_START_TBCTR_Zero";
    epwm4.epwmDigitalCompare_BlankingWindowLength = 2;
    epwm4.ePWM.$assign ="EPWM3";
    epwm4.ePWM.A.$assign ="焊球.E2";
    epwm4.ePWM.B.$used = false;

    GPIO1.$name ="CONFIG_GPIO22";
    GPIO1.pinDir ="输出";
    GPIO1.GPIO.gpioPin。$assign ="焊球.A8";

    ipc.r5fss0_0 ="通知";
    ipc.r5fss0_1 ="无";
    ipc.r5fs1_1 ="无";

    debug_log.enableLogZoneError = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enable-CssLog = false;

    MPU_armv71.$name ="CONFIG_MPU_REGION0";
    MPU_armv71.size = 31;
    mpu_armv71.attributes ="设备";
    MPU_armv71.accessPermissions ="Supervisor RD+WR、User RD";
    mpu_armv71.allowExecute = false;

    MPU_armv72。$name ="CONFIG_MPU_REGION1";
    MPU_armv72.size = 15;
    MPU_armv72.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv73。$name ="CONFIG_MPU_Region2";
    MPU_armv73.baseAddr = 0x80000;
    MPU_armv73.size = 15;
    MPU_armv73.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv74.$name ="CONFIG_MPU_Region3";
    MPU_armv74.accessPermissions ="Supervisor RD+WR、User RD";
    MPU_armv74.baseAddr = 0x70000000;
    MPU_armv74.size = 21;
    mpu_armv74.attributes ="未缓存";

    MPU_armv75.$name ="CONFIG_MPU_REGION4";
    MPU_armv75.baseAddr = 0x50D00000;
    MPU_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes ="设备";

    MPU_armv76。$name ="CONFIG_MPU_REGION5";
    MPU_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes ="未缓存";

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";
    Timer1.RTI.$assign ="TI1";

    ePWM_xbar1.$name ="CONFIG_EPWM_XBAR0";
    ePWM_xbar1.xbarOutput =["CMPSSA3_CTRIPH"];

    INT_xbar1.$name ="CONFIG_INT_XBAR1";
    int_xbar1.instance ="INT_XBAR_1";
    int_xbar1.xbarOutput =["ADC1_INT1"];

    output_xbar1.$name ="CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput =["CMPSA3_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign ="OUTPUTXBAR0";

    /**
    *用于解锁引脚/外设的 Pinmux 解决方案。 这可确保将来对自动解算器进行细微更改
    *该工具的版本不会影响您最初看到的引脚多路复用器。 可以完全删除这些行、以便
    *从头开始重新解决。
    *
    GPIO1.GPIO.$建议解决方案="GPIO0";
    output_xbar1.outputUTXBAR_OUTPUTXBAR。$sevelestSolution ="ball.R3";

    4. R5FSS1_1项目

    /**
    *生成此文件时使用了这些参数。 它们将自动应用于后续加载
    *通过 GUI 或 CLI。 使用'--help'运行 CLI 以获取有关如何覆盖这些参数的其他信息。
    *@clipArgs -器件"AM263x_beta"-封装"ZCZ -器件"AM263x"-上下文"r5fs1-1"-产品"MCU_PLUS_SDK_AM263x@08.05.00
    *@版本{"工具":"1.14.0+2667"}
    *
    Scripting.excludeFromBuild ("ti_enet_config.c");
    Scripting.excludeFromBuild ("ti_enet_config.h");
    Scripting.excludeFromBuild ("ti_enet_open_close.c");
    Scripting.excludeFromBuild ("ti_enet_open_close.h");

    /**
    *导入此配置中使用的模块。
    *
    const ADC = scripting.AddModule ("/drivers/adc/adc、{}、false);
    const ADC1 = adc.addInstance();
    const cmpss = scripting.AddModule ("/drivers/cmpss/cmpss、{}、false);
    const cmps1 = cmpss.addInstance();
    const ePWM = scripting.AddModule ("/drivers/epwm/epwm、{}、false);
    const epwm1 = ePWM.addInstance();
    const epwm2 = ePWM.addInstance();
    const epwm3 = ePWM.addInstance();
    const epwm4 = ePWM.addInstance();
    const GPIO = scripting.AddModule ("/drivers/gpio/gpio、{}、false);
    const GPIO1 = GPIO.addInstance();
    const IPC = scripting.AddModule ("/drivers/ipc/ipc);
    const clock = scripting.AddModule ("/kernel/dpl/clock);
    const debug_log = scripting.AddModule ("/kernel/dpl/debug_log);
    const MPU_armv7 = scripting.AddModule ("/kernel/dpl/mpu_armv7、{}、false);
    const MPU_armv71 = MPU_armv7.addInstance();
    const MPU_armv72 = MPU_armv7.addInstance();
    const MPU_armv73 = MPU_armv7.addInstance();
    const MPU_armv74 = MPU_armv7.addInstance();
    const MPU_armv75 = MPU_armv7.addInstance();
    const MPU_armv76 = MPU_armv7.addInstance();
    const 计时器= scripting.AddModule ("/kernel/dpl/timer、{}、false);
    const Timer1 = timer.addInstance();
    const ePWM_Xbar = scripting.AddModule ("/xbar/epwm_xbar/epwm_xbar、{}、false);
    const ePWM_xbar1 = ePWM_Xbar.addInstance();
    const int_Xbar = scripting.AddModule ("/xbar/int_xbar/int_xbar、{}、false);
    const int_xbar1 = int_Xbar.addInstance();
    const output_Xbar = scripting.AddModule ("/xbar/output_xbar/output_xbar、{}、false);
    const output_xbar1 = output_Xbar.addInstance();

    /**
    *将自定义配置值写入导入的模块。
    *
    adc1.interruptPulseMode ="ADC_PULSE_END_TO_CONV";
    ADC1.enableConverter =真;
    ADC1.soc2Channel ="ADC_CH_ADCIN2";
    ADC1.$name ="CONFIG_ADC1";
    ADC1.enableInterrupt1 = true;
    ADC1.soc0Trigger ="ADC_TRIGGER_EPWM0_SOCA";
    ADC1.ADC.$assign ="ADC1";
    ADC1.ADC.AIN1.$used = false;
    ADC1.ADC.AIN2.$used = false;
    ADC1.ADC.AIN3.$used = false;
    ADC1.ADC.AIN4.$used = false;
    ADC1.ADC.AIN5.$used = false;

    cmps1.$name ="CONFIG_CMPSS0";
    cmps1.dacRefVoltage ="CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmps1.clearFilterLatchHigh = true;
    cmps1.configLatchHigh = true;
    cmps1.highCTRIPOUT ="CMPS_TRIPOUT_LATCH";
    cmps1.highCTRIP ="CMPSS_TRIP_LATCH";
    cmps1.cmpssBase ="CSL_CONTROLSS_CMPSA2_U_base";
    cmps1.enableBlank= true;
    cmps1.dacValLoad ="CMPSS_DACVAL_PWMSYNC";
    cmps1.latchResetHigh = true;
    cmps1.dacValHigh = 4095;
    cmps1.maxRampVal = 4095;
    cmps1.rampDelayVal = 500;

    epwm1.$name ="CONFIG_EPWM0";
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerEnable = true;
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerSource ="ePWM_SOC_TBCTR_zero";
    epwm1.epwmEventTrigger_ePWM_SOC_A_triggerEventPrescalar ="1";
    epwm1.epwmDigitalCompare_ePWM_DC_TYPE_DCAH_CombinationInputConfig =["ePWM_DC_combinational_TRIPIN1"];
    epwm1.epwmDigitalCompare_ePWM_DC_TYPE_DCBH_CombinationInputConfig =["ePWM_DC_Combinational_TRIPIN1"];
    epwm1.epwmGroup ="ePWM_group2";
    epwm1.epwmDigitalCompare_useBlankingWindow = true;
    epwm1.epwmDigitalCompare_BlankingWindowEvent ="ePWM_DC_WINDOW_START_TBCTR_Zero";
    epwm1.epwmDigitalCompare_BlankingWindowLength = 100;
    epwm1.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm1.epwmTimebase_period = 1000;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_EVENTSync ="EPWM_DC_EVENT_INPUT_NOT 已同步";
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_B_EPWM_DC_EVENT_2_EVENTSync ="EPWM_DC_EVENT_INPUT_NOT 已同步";
    epwm1.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm1.epwmActionQualifier_ePWM_AQ_output_a_on_t1_count_up ="ePWM_AQ_output_low";
    epwm1.epwmDigitalCompare_ePWM_TZ_DC_OUTPUT _A1 ="ePWM_TZ_EVENT_DCXH_HIGH";
    epwm1.HRPWM_tbprdHR = 128;
    epwm1.HRPWM_synsource="HRPWM_PWMSYNC_SOURCE 零";
    epwm1.epwmDeadband_enableRED = true;
    epwm1.epwmDeadband_enableFED = true;
    epwm1.epwmDeadband_delayFED = 20;
    epwm1.epwmTimebase_phaseEnable = true;
    epwm1.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm1.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_CNTR_Zero"];
    epwm1.epwmDeadband_delayRED = 20;
    epwm1.ePWM.$assign ="EPWM0";
    epwm1.ePWM.A.$assign ="ball.b2";
    epwm1.ePWM.B.$assign ="焊球_B1";

    epwm2.$name ="CONFIG_EPWM1";
    epwm2.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm2.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm2.epwmDeadband_enableRED = true;
    epwm2.epwmGroup ="ePWM_group2";
    epwm2.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm2.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm2.epwmTimebase_period = 1000;
    epwm2.epwmTimebase_phaseEnable = true;
    epwm2.epwmDeadband_delayRED = 8;
    epwm2.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm2.epwmTimebase_phaseShift = 2;
    epwm2.epwmDeadband_enableFED = true;
    epwm2.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm2.epwmDeadband_delayFED = 12;
    epwm2.epwmDeadband_outputSwapOutA = true;
    epwm2.epwmDeadband_outputSwapOutB = true;
    epwm2.ePWM.$assign ="EPWM1";
    epwm2.ePWM.A.$assign ="焊球-D3";
    epwm2.ePWM.B.$used = false;

    epwm3.$name ="CONFIG_EPWM2";
    epwm3.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm3.epwmTimebase_phaseEnable = true;
    epwm3.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm3.epwmGroup ="ePWM_group2";
    epwm3.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm3.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm3.epwmTimebase_period = 1000;
    epwm3.epwmDeadband_enableRED = true;
    epwm3.epwmDeadband_delayRED = 12;
    epwm3.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm3.epwmTimebase_phaseShift = 2;
    epwm3.epwmDeadband_enableFED = true;
    epwm3.epwmDeadband_delayFED = 8;
    epwm3.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm3.epwmDeadband_outputSwapOutA = true;
    epwm3.epwmDeadband_outputSwapOutB = true;
    epwm3.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm3.ePWM.$assign ="EPWM2";
    epwm3.ePWM.A.$assign ="焊球.c2";
    epwm3.ePWM.B.$used = false;

    epwm4.$name ="CONFIG_EPWM3";
    epwm4.epwmGroup ="ePWM_group2";
    epwm4.epwmTimebase_emulationMode ="ePWM_emulation_stop_after_full_cycle";
    epwm4.epwmTimebase_period = 1000;
    epwm4.epwmTimebase_counterMode ="ePWM_COUNTER_MODE_UP";
    epwm4.epwmTimebase_phaseEnable = true;
    epwm4.epwmTimebase_syncOutPulseMode =["ePWM_SYNC_OUT_PULSE_ON_SOFTWARE.]";
    epwm4.epwmDeadband_enableRED = true;
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_zero ="ePWM_AQ_output_high";
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_period ="ePWM_AQ_output_low";
    epwm4.epwmActionQualifier_ePWM_AQ_output_a_on_timebase_up_CMPA ="ePWM_AQ_output_low";
    epwm4.epwmDeadband_delayRED = 12;
    epwm4.epwmTimebase_syncInPulseSource ="ePWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm4.epwmTimebase_phaseShift = 2;
    epwm4.epwmDeadband_enableFED = true;
    epwm4.epwmDeadband_delayFED = 8;
    epwm4.epwmDeadband_inputFED ="ePWM_DB_INPUT_DB_RED";
    epwm4.epwmDeadband_outputSwapOutA = true;
    epwm4.epwmDeadband_outputSwapOutB = true;
    epwm4.epwmDeadband_polarityFED ="ePWM_DB_POLARY_ACTIVE_LOW";
    epwm4.ePWM.$assign ="EPWM3";
    epwm4.ePWM.A.$assign ="焊球.E2";
    epwm4.ePWM.B.$used = false;

    GPIO1.$name ="CONFIG_GPIO22";
    GPIO1.pinDir ="输出";
    GPIO1.GPIO.gpioPin。$assign ="焊球.A8";

    ipc.r5fss0_0 ="通知";
    ipc.r5fss0_1 ="无";
    ipc.r5fs1_0 ="无";

    debug_log.enableLogZoneError = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enable-CssLog = false;

    MPU_armv71.$name ="CONFIG_MPU_REGION0";
    MPU_armv71.size = 31;
    mpu_armv71.attributes ="设备";
    MPU_armv71.accessPermissions ="Supervisor RD+WR、User RD";
    mpu_armv71.allowExecute = false;

    MPU_armv72。$name ="CONFIG_MPU_REGION1";
    MPU_armv72.size = 15;
    MPU_armv72.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv73。$name ="CONFIG_MPU_Region2";
    MPU_armv73.baseAddr = 0x80000;
    MPU_armv73.size = 15;
    MPU_armv73.accessPermissions ="Supervisor RD+WR、User RD";

    MPU_armv74.$name ="CONFIG_MPU_Region3";
    MPU_armv74.accessPermissions ="Supervisor RD+WR、User RD";
    MPU_armv74.baseAddr = 0x70000000;
    MPU_armv74.size = 21;

    MPU_armv75.$name ="CONFIG_MPU_REGION4";
    MPU_armv75.baseAddr = 0x50D00000;
    MPU_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes ="设备";

    MPU_armv76。$name ="CONFIG_MPU_REGION5";
    MPU_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes ="未缓存";

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";
    Timer1.RTI.$assign ="RTI0";

    ePWM_xbar1.$name ="CONFIG_EPWM_XBAR0";
    ePWM_xbar1.xbarOutput =["CMPSA2_CTRIPH"];

    INT_xbar1.$name ="CONFIG_INT_XBAR1";
    int_xbar1.instance ="INT_XBAR_1";
    int_xbar1.xbarOutput =["ADC1_INT1"];

    output_xbar1.$name ="CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput =["CMPSA2_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign ="OUTPUTXBAR0";

    /**
    *用于解锁引脚/外设的 Pinmux 解决方案。 这可确保将来对自动解算器进行细微更改
    *该工具的版本不会影响您最初看到的引脚多路复用器。 可以完全删除这些行、以便
    *从头开始重新解决。
    *
    ADC1.ADC.AIN0.$建议解决方案="B焊 球.t11";
    GPIO1.GPIO.$建议解决方案="GPIO0";
    output_xbar1.outputUTXBAR_OUTPUTXBAR。$sevelestSolution ="ball.R3";

    请原谅我以文本形式书写、因为我无法上传文件、如果您需要其他信息、请告诉我。

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Jiung、

    感谢您提供详细信息,即使文本表单也比什么都好。

    我看到以下用于 添加 计时器实例的行、但仅针对 R5FSS1-0和 R5FSS1-1完成。 粗体内容准确显示了为给定内核配置的 RTI 实例。 此配置可手动更新、但我们想了解 SysConfig 为何会在此处应用限制并继续与我们的 SDK 软件团队深入讨论。


    R5FSS0-0

    **创建 Timer1实例**(第121-122行)

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";

    **指派 Timer1实例**(缺少)

    R5FSS1-0

    **创建 Timer1实例**(第177-178行)

    const 计时器= scripting.AddModule ("/kernel/dpl/timer、{}、false);
    const Timer1 = timer.addInstance();

    **指派 Timer1实例**(第415-418行)

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";
    Timer1.RTI.$assign ="TI1";

    R5FSS1-1

    **创建 Timer1实例**(第475-476行)

    const 计时器= scripting.AddModule ("/kernel/dpl/timer、{}、false);
    const Timer1 = timer.addInstance();

    **指派 Timer1实例**(第663-665行)

    Timer1.$name ="CONFIG_TIMER0";
    Timer1.timerCallback ="SCHD_TickCount_ISR";
    Timer1.RTI.$assign ="RTI0";


    下面包含了共享代码的 SysConfig 部分、以供行号参考。

    2. R5FSS0 Project
    
    /**
    * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
    * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
    * @cliArgs --device "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM263x@08.05.00"
    * @versions {"tool":"1.14.0+2667"}
    */
    scripting.excludeFromBuild("ti_enet_config.c");
    scripting.excludeFromBuild("ti_enet_config.h");
    scripting.excludeFromBuild("ti_enet_open_close.c");
    scripting.excludeFromBuild("ti_enet_open_close.h");
    
    /**
    * Import the modules used in this configuration.
    */
    const adc = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1 = adc.addInstance();
    const cmpss = scripting.addModule("/drivers/cmpss/cmpss", {}, false);
    const cmpss1 = cmpss.addInstance();
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const ipc = scripting.addModule("/drivers/ipc/ipc");
    const mcan = scripting.addModule("/drivers/mcan/mcan", {}, false);
    const mcan1 = mcan.addInstance();
    const clock = scripting.addModule("/kernel/dpl/clock");
    const debug_log = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71 = mpu_armv7.addInstance();
    const mpu_armv72 = mpu_armv7.addInstance();
    const mpu_armv73 = mpu_armv7.addInstance();
    const mpu_armv74 = mpu_armv7.addInstance();
    const mpu_armv75 = mpu_armv7.addInstance();
    const mpu_armv76 = mpu_armv7.addInstance();
    const timer = scripting.addModule("/kernel/dpl/timer", {}, false);
    const timer1 = timer.addInstance();
    const int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1 = int_xbar.addInstance();
    const output_xbar = scripting.addModule("/xbar/output_xbar/output_xbar", {}, false);
    const output_xbar1 = output_xbar.addInstance();
    
    /**
    * Write custom configuration values to the imported modules.
    */
    adc1.$name = "CONFIG_ADC0";
    adc1.interruptPulseMode = "ADC_PULSE_END_OF_CONV";
    adc1.enableInterrupt1 = true;
    adc1.soc2Trigger = "ADC_TRIGGER_EPWM0_SOCA";
    adc1.enableConverter = true;
    adc1.soc2Channel = "ADC_CH_ADCIN2";
    adc1.ADC.$assign = "ADC0";
    adc1.ADC.AIN0.$assign = "ball.V15";
    adc1.ADC.AIN0.$used = false;
    adc1.ADC.AIN1.$used = false;
    adc1.ADC.AIN2.$used = false;
    adc1.ADC.AIN3.$used = false;
    adc1.ADC.AIN4.$used = false;
    adc1.ADC.AIN5.$used = false;
    
    cmpss1.$name = "CONFIG_CMPSS0";
    cmpss1.cmpssBase = "CSL_CONTROLSS_CMPSSA1_U_BASE";
    cmpss1.enableModule = true;
    cmpss1.dacValHigh = 2048;
    cmpss1.dacRefVoltage = "CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmpss1.clearFilterLatchHigh = true;
    cmpss1.configLatchHigh = true;
    cmpss1.highCTRIPOUT = "CMPSS_TRIPOUT_LATCH";
    cmpss1.highCTRIP = "CMPSS_TRIP_LATCH";
    
    gpio1.$name = "CONFIG_GPIO22";
    gpio1.pinDir = "OUTPUT";
    gpio1.GPIO.gpioPin.$assign = "ball.A8";
    
    ipc.r5fss0_1 = "NONE";
    ipc.r5fss1_0 = "notify";
    ipc.r5fss1_1 = "notify";
    
    mcan1.$name = "CONFIG_MCAN1";
    mcan1.MCAN.$assign = "MCAN1";
    mcan1.MCAN.RX.$assign = "ball.L2";
    mcan1.MCAN.TX.$assign = "ball.K1";
    
    debug_log.enableCssLog = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enableLogZoneError = false;
    
    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.attributes = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    
    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x80000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr = 0x70000000;
    mpu_armv74.size = 21;
    mpu_armv74.attributes = "NonCached";
    
    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x50D00000;
    mpu_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes = "Device";
    
    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes = "NonCached";
    
    timer1.$name = "CONFIG_TIMER0";
    timer1.timerCallback = "SCHD_TickCount_ISR";
    
    int_xbar1.$name = "CONFIG_INT_XBAR1";
    int_xbar1.xbarOutput = ["ADC0_INT1"];
    
    output_xbar1.$name = "CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput = ["CMPSSA1_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign = "OUTPUTXBAR0";
    
    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    */
    gpio1.GPIO.$suggestSolution = "GPIO0";
    timer1.RTI.$suggestSolution = "RTI1";
    output_xbar1.OUTPUTXBAR.OUTPUTXBAR.$suggestSolution = "ball.R3";
    
    3. R5FSS1_0 Project
    
    /**
    * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
    * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
    * @cliArgs --device "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss1-0" --product "MCU_PLUS_SDK_AM263x@08.05.00"
    * @versions {"tool":"1.14.0+2667"}
    */
    scripting.excludeFromBuild("ti_enet_config.c");
    scripting.excludeFromBuild("ti_enet_config.h");
    scripting.excludeFromBuild("ti_enet_open_close.c");
    scripting.excludeFromBuild("ti_enet_open_close.h");
    
    /**
    * Import the modules used in this configuration.
    */
    const adc = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1 = adc.addInstance();
    const cmpss = scripting.addModule("/drivers/cmpss/cmpss", {}, false);
    const cmpss1 = cmpss.addInstance();
    const epwm = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1 = epwm.addInstance();
    const epwm2 = epwm.addInstance();
    const epwm3 = epwm.addInstance();
    const epwm4 = epwm.addInstance();
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const ipc = scripting.addModule("/drivers/ipc/ipc");
    const clock = scripting.addModule("/kernel/dpl/clock");
    const debug_log = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71 = mpu_armv7.addInstance();
    const mpu_armv72 = mpu_armv7.addInstance();
    const mpu_armv73 = mpu_armv7.addInstance();
    const mpu_armv74 = mpu_armv7.addInstance();
    const mpu_armv75 = mpu_armv7.addInstance();
    const mpu_armv76 = mpu_armv7.addInstance();
    const timer = scripting.addModule("/kernel/dpl/timer", {}, false);
    const timer1 = timer.addInstance();
    const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
    const epwm_xbar1 = epwm_xbar.addInstance();
    const int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1 = int_xbar.addInstance();
    const output_xbar = scripting.addModule("/xbar/output_xbar/output_xbar", {}, false);
    const output_xbar1 = output_xbar.addInstance();
    
    /**
    * Write custom configuration values to the imported modules.
    */
    adc1.interruptPulseMode = "ADC_PULSE_END_OF_CONV";
    adc1.enableConverter = true;
    adc1.soc2Channel = "ADC_CH_ADCIN2";
    adc1.$name = "CONFIG_ADC1";
    adc1.enableInterrupt1 = true;
    adc1.soc2Trigger = "ADC_TRIGGER_EPWM0_SOCA";
    adc1.interrupt1SOCSource = "ADC_SOC_NUMBER2";
    adc1.ADC.$assign = "ADC1";
    adc1.ADC.AIN0.$used = false;
    adc1.ADC.AIN1.$used = false;
    adc1.ADC.AIN2.$assign = "ball.T12";
    adc1.ADC.AIN3.$used = false;
    adc1.ADC.AIN4.$used = false;
    adc1.ADC.AIN5.$used = false;
    
    cmpss1.dacRefVoltage = "CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmpss1.clearFilterLatchHigh = true;
    cmpss1.configLatchHigh = true;
    cmpss1.highCTRIPOUT = "CMPSS_TRIPOUT_LATCH";
    cmpss1.highCTRIP = "CMPSS_TRIP_LATCH";
    cmpss1.enableBlanking = true;
    cmpss1.dacValLoad = "CMPSS_DACVAL_PWMSYNC";
    cmpss1.latchResetHigh = true;
    cmpss1.enableModule = true;
    cmpss1.dacValSource = "CMPSS_DACSRC_RAMP";
    cmpss1.dacValHigh = 4095;
    cmpss1.maxRampVal = 65535;
    cmpss1.ramDecVal = 1;
    cmpss1.cmpssBase = "CSL_CONTROLSS_CMPSSA3_U_BASE";
    cmpss1.$name = "CONFIG_CMPSS3";
    
    epwm1.$name = "CONFIG_EPWM0";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_ZERO";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
    epwm1.epwmDigitalCompare_EPWM_DC_TYPE_DCAH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm1.epwmDigitalCompare_EPWM_DC_TYPE_DCBH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm1.epwmGroup = "EPWM_GROUP2";
    epwm1.epwmDigitalCompare_useBlankingWindow = true;
    epwm1.epwmDigitalCompare_blankingWindowEvent = "EPWM_DC_WINDOW_START_TBCTR_ZERO";
    epwm1.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmTimebase_period = 1000;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_B_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm1.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_T1_COUNT_UP = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmDigitalCompare_EPWM_TZ_DC_OUTPUT_A1 = "EPWM_TZ_EVENT_DCXH_HIGH";
    epwm1.hrpwm_tbprdHR = 128;
    epwm1.hrpwm_syncSource = "HRPWM_PWMSYNC_SOURCE_ZERO";
    epwm1.epwmDeadband_enableRED = true;
    epwm1.epwmDeadband_enableFED = true;
    epwm1.epwmDeadband_delayFED = 20;
    epwm1.epwmTimebase_phaseEnable = true;
    epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm1.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_CNTR_ZERO"];
    epwm1.epwmDeadband_delayRED = 20;
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZA = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZB = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm1.epwmDigitalCompare_blankingWindowLength = 2;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm1.EPWM.$assign = "EPWM0";
    epwm1.EPWM.A.$assign = "ball.B2";
    epwm1.EPWM.B.$assign = "ball.B1";
    
    epwm2.$name = "CONFIG_EPWM1";
    epwm2.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm2.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm2.epwmDeadband_enableRED = true;
    epwm2.epwmGroup = "EPWM_GROUP2";
    epwm2.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm2.epwmTimebase_period = 1000;
    epwm2.epwmTimebase_phaseEnable = true;
    epwm2.epwmDeadband_delayRED = 8;
    epwm2.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm2.epwmTimebase_phaseShift = 2;
    epwm2.epwmDeadband_enableFED = true;
    epwm2.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm2.epwmDeadband_delayFED = 12;
    epwm2.epwmDeadband_outputSwapOutA = true;
    epwm2.epwmDeadband_outputSwapOutB = true;
    epwm2.epwmDigitalCompare_EPWM_DC_TYPE_DCAH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZA = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZB = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm2.epwmDigitalCompare_EPWM_TZ_DC_OUTPUT_A1 = "EPWM_TZ_EVENT_DCXH_HIGH";
    epwm2.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_T1_COUNT_UP = "EPWM_AQ_OUTPUT_LOW";
    epwm2.epwmDigitalCompare_useBlankingWindow = true;
    epwm2.epwmDigitalCompare_blankingWindowEvent = "EPWM_DC_WINDOW_START_TBCTR_ZERO";
    epwm2.epwmDigitalCompare_blankingWindowLength = 2;
    epwm2.EPWM.$assign = "EPWM1";
    epwm2.EPWM.A.$assign = "ball.D3";
    epwm2.EPWM.B.$used = false;
    
    epwm3.$name = "CONFIG_EPWM2";
    epwm3.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm3.epwmTimebase_phaseEnable = true;
    epwm3.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm3.epwmGroup = "EPWM_GROUP2";
    epwm3.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm3.epwmTimebase_period = 1000;
    epwm3.epwmDeadband_enableRED = true;
    epwm3.epwmDeadband_delayRED = 12;
    epwm3.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm3.epwmTimebase_phaseShift = 2;
    epwm3.epwmDeadband_enableFED = true;
    epwm3.epwmDeadband_delayFED = 8;
    epwm3.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm3.epwmDeadband_outputSwapOutA = true;
    epwm3.epwmDeadband_outputSwapOutB = true;
    epwm3.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_T1_COUNT_UP = "EPWM_AQ_OUTPUT_LOW";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZA = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZB = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm3.epwmDigitalCompare_EPWM_TZ_DC_OUTPUT_A1 = "EPWM_TZ_EVENT_DCXH_HIGH";
    epwm3.epwmDigitalCompare_EPWM_DC_TYPE_DCAH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm3.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm3.epwmDigitalCompare_useBlankingWindow = true;
    epwm3.epwmDigitalCompare_blankingWindowEvent = "EPWM_DC_WINDOW_START_TBCTR_ZERO";
    epwm3.epwmDigitalCompare_blankingWindowLength = 2;
    epwm3.EPWM.$assign = "EPWM2";
    epwm3.EPWM.A.$assign = "ball.C2";
    epwm3.EPWM.B.$used = false;
    
    epwm4.$name = "CONFIG_EPWM3";
    epwm4.epwmGroup = "EPWM_GROUP2";
    epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm4.epwmTimebase_period = 1000;
    epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm4.epwmTimebase_phaseEnable = true;
    epwm4.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm4.epwmDeadband_enableRED = true;
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm4.epwmDeadband_delayRED = 12;
    epwm4.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm4.epwmTimebase_phaseShift = 2;
    epwm4.epwmDeadband_enableFED = true;
    epwm4.epwmDeadband_delayFED = 8;
    epwm4.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm4.epwmDeadband_outputSwapOutA = true;
    epwm4.epwmDeadband_outputSwapOutB = true;
    epwm4.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_T1_COUNT_UP = "EPWM_AQ_OUTPUT_LOW";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZA = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_TZB = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCAEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT1 = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmTripZone_EPWM_TZ_ACTION_EVENT_DCBEVT2 = "EPWM_TZ_ACTION_DISABLE";
    epwm4.epwmDigitalCompare_EPWM_DC_TYPE_DCAH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm4.epwmDigitalCompare_EPWM_TZ_DC_OUTPUT_A1 = "EPWM_TZ_EVENT_DCXH_HIGH";
    epwm4.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm4.epwmDigitalCompare_useBlankingWindow = true;
    epwm4.epwmDigitalCompare_blankingWindowEvent = "EPWM_DC_WINDOW_START_TBCTR_ZERO";
    epwm4.epwmDigitalCompare_blankingWindowLength = 2;
    epwm4.EPWM.$assign = "EPWM3";
    epwm4.EPWM.A.$assign = "ball.E2";
    epwm4.EPWM.B.$used = false;
    
    gpio1.$name = "CONFIG_GPIO22";
    gpio1.pinDir = "OUTPUT";
    gpio1.GPIO.gpioPin.$assign = "ball.A8";
    
    ipc.r5fss0_0 = "notify";
    ipc.r5fss0_1 = "NONE";
    ipc.r5fss1_1 = "NONE";
    
    debug_log.enableLogZoneError = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enableCssLog = false;
    
    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.attributes = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    
    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x80000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr = 0x70000000;
    mpu_armv74.size = 21;
    mpu_armv74.attributes = "NonCached";
    
    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x50D00000;
    mpu_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes = "Device";
    
    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes = "NonCached";
    
    timer1.$name = "CONFIG_TIMER0";
    timer1.timerCallback = "SCHD_TickCount_ISR";
    timer1.RTI.$assign = "RTI1";
    
    epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
    epwm_xbar1.xbarOutput = ["CMPSSA3_CTRIPH"];
    
    int_xbar1.$name = "CONFIG_INT_XBAR1";
    int_xbar1.instance = "INT_XBAR_1";
    int_xbar1.xbarOutput = ["ADC1_INT1"];
    
    output_xbar1.$name = "CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput = ["CMPSSA3_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign = "OUTPUTXBAR0";
    
    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    */
    gpio1.GPIO.$suggestSolution = "GPIO0";
    output_xbar1.OUTPUTXBAR.OUTPUTXBAR.$suggestSolution = "ball.R3";
    
    4. R5FSS1_1 Project
    
    /**
    * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
    * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
    * @cliArgs --device "AM263x_beta" --package "ZCZ" --part "AM263x" --context "r5fss1-1" --product "MCU_PLUS_SDK_AM263x@08.05.00"
    * @versions {"tool":"1.14.0+2667"}
    */
    scripting.excludeFromBuild("ti_enet_config.c");
    scripting.excludeFromBuild("ti_enet_config.h");
    scripting.excludeFromBuild("ti_enet_open_close.c");
    scripting.excludeFromBuild("ti_enet_open_close.h");
    
    /**
    * Import the modules used in this configuration.
    */
    const adc = scripting.addModule("/drivers/adc/adc", {}, false);
    const adc1 = adc.addInstance();
    const cmpss = scripting.addModule("/drivers/cmpss/cmpss", {}, false);
    const cmpss1 = cmpss.addInstance();
    const epwm = scripting.addModule("/drivers/epwm/epwm", {}, false);
    const epwm1 = epwm.addInstance();
    const epwm2 = epwm.addInstance();
    const epwm3 = epwm.addInstance();
    const epwm4 = epwm.addInstance();
    const gpio = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1 = gpio.addInstance();
    const ipc = scripting.addModule("/drivers/ipc/ipc");
    const clock = scripting.addModule("/kernel/dpl/clock");
    const debug_log = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7 = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71 = mpu_armv7.addInstance();
    const mpu_armv72 = mpu_armv7.addInstance();
    const mpu_armv73 = mpu_armv7.addInstance();
    const mpu_armv74 = mpu_armv7.addInstance();
    const mpu_armv75 = mpu_armv7.addInstance();
    const mpu_armv76 = mpu_armv7.addInstance();
    const timer = scripting.addModule("/kernel/dpl/timer", {}, false);
    const timer1 = timer.addInstance();
    const epwm_xbar = scripting.addModule("/xbar/epwm_xbar/epwm_xbar", {}, false);
    const epwm_xbar1 = epwm_xbar.addInstance();
    const int_xbar = scripting.addModule("/xbar/int_xbar/int_xbar", {}, false);
    const int_xbar1 = int_xbar.addInstance();
    const output_xbar = scripting.addModule("/xbar/output_xbar/output_xbar", {}, false);
    const output_xbar1 = output_xbar.addInstance();
    
    /**
    * Write custom configuration values to the imported modules.
    */
    adc1.interruptPulseMode = "ADC_PULSE_END_OF_CONV";
    adc1.enableConverter = true;
    adc1.soc2Channel = "ADC_CH_ADCIN2";
    adc1.$name = "CONFIG_ADC1";
    adc1.enableInterrupt1 = true;
    adc1.soc0Trigger = "ADC_TRIGGER_EPWM0_SOCA";
    adc1.ADC.$assign = "ADC1";
    adc1.ADC.AIN1.$used = false;
    adc1.ADC.AIN2.$used = false;
    adc1.ADC.AIN3.$used = false;
    adc1.ADC.AIN4.$used = false;
    adc1.ADC.AIN5.$used = false;
    
    cmpss1.$name = "CONFIG_CMPSS0";
    cmpss1.dacRefVoltage = "CMPSS_DACREF_VDAC";
    cmpss1.initFilterHigh = true;
    cmpss1.clearFilterLatchHigh = true;
    cmpss1.configLatchHigh = true;
    cmpss1.highCTRIPOUT = "CMPSS_TRIPOUT_LATCH";
    cmpss1.highCTRIP = "CMPSS_TRIP_LATCH";
    cmpss1.cmpssBase = "CSL_CONTROLSS_CMPSSA2_U_BASE";
    cmpss1.enableBlanking = true;
    cmpss1.dacValLoad = "CMPSS_DACVAL_PWMSYNC";
    cmpss1.latchResetHigh = true;
    cmpss1.dacValHigh = 4095;
    cmpss1.maxRampVal = 4095;
    cmpss1.rampDelayVal = 500;
    
    epwm1.$name = "CONFIG_EPWM0";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEnable = true;
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerSource = "EPWM_SOC_TBCTR_ZERO";
    epwm1.epwmEventTrigger_EPWM_SOC_A_triggerEventPrescalar = "1";
    epwm1.epwmDigitalCompare_EPWM_DC_TYPE_DCAH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm1.epwmDigitalCompare_EPWM_DC_TYPE_DCBH_combinationInputConfig = ["EPWM_DC_COMBINATIONAL_TRIPIN1"];
    epwm1.epwmGroup = "EPWM_GROUP2";
    epwm1.epwmDigitalCompare_useBlankingWindow = true;
    epwm1.epwmDigitalCompare_blankingWindowEvent = "EPWM_DC_WINDOW_START_TBCTR_ZERO";
    epwm1.epwmDigitalCompare_blankingWindowLength = 100;
    epwm1.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmTimebase_period = 1000;
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_A_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm1.epwmDigitalCompare_EPWM_DC_MODULE_B_EPWM_DC_EVENT_2_eventSync = "EPWM_DC_EVENT_INPUT_NOT_SYNCED";
    epwm1.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm1.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_T1_COUNT_UP = "EPWM_AQ_OUTPUT_LOW";
    epwm1.epwmDigitalCompare_EPWM_TZ_DC_OUTPUT_A1 = "EPWM_TZ_EVENT_DCXH_HIGH";
    epwm1.hrpwm_tbprdHR = 128;
    epwm1.hrpwm_syncSource = "HRPWM_PWMSYNC_SOURCE_ZERO";
    epwm1.epwmDeadband_enableRED = true;
    epwm1.epwmDeadband_enableFED = true;
    epwm1.epwmDeadband_delayFED = 20;
    epwm1.epwmTimebase_phaseEnable = true;
    epwm1.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm1.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_CNTR_ZERO"];
    epwm1.epwmDeadband_delayRED = 20;
    epwm1.EPWM.$assign = "EPWM0";
    epwm1.EPWM.A.$assign = "ball.B2";
    epwm1.EPWM.B.$assign = "ball.B1";
    
    epwm2.$name = "CONFIG_EPWM1";
    epwm2.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm2.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm2.epwmDeadband_enableRED = true;
    epwm2.epwmGroup = "EPWM_GROUP2";
    epwm2.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm2.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm2.epwmTimebase_period = 1000;
    epwm2.epwmTimebase_phaseEnable = true;
    epwm2.epwmDeadband_delayRED = 8;
    epwm2.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm2.epwmTimebase_phaseShift = 2;
    epwm2.epwmDeadband_enableFED = true;
    epwm2.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm2.epwmDeadband_delayFED = 12;
    epwm2.epwmDeadband_outputSwapOutA = true;
    epwm2.epwmDeadband_outputSwapOutB = true;
    epwm2.EPWM.$assign = "EPWM1";
    epwm2.EPWM.A.$assign = "ball.D3";
    epwm2.EPWM.B.$used = false;
    
    epwm3.$name = "CONFIG_EPWM2";
    epwm3.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm3.epwmTimebase_phaseEnable = true;
    epwm3.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm3.epwmGroup = "EPWM_GROUP2";
    epwm3.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm3.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm3.epwmTimebase_period = 1000;
    epwm3.epwmDeadband_enableRED = true;
    epwm3.epwmDeadband_delayRED = 12;
    epwm3.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm3.epwmTimebase_phaseShift = 2;
    epwm3.epwmDeadband_enableFED = true;
    epwm3.epwmDeadband_delayFED = 8;
    epwm3.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm3.epwmDeadband_outputSwapOutA = true;
    epwm3.epwmDeadband_outputSwapOutB = true;
    epwm3.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm3.EPWM.$assign = "EPWM2";
    epwm3.EPWM.A.$assign = "ball.C2";
    epwm3.EPWM.B.$used = false;
    
    epwm4.$name = "CONFIG_EPWM3";
    epwm4.epwmGroup = "EPWM_GROUP2";
    epwm4.epwmTimebase_emulationMode = "EPWM_EMULATION_STOP_AFTER_FULL_CYCLE";
    epwm4.epwmTimebase_period = 1000;
    epwm4.epwmTimebase_counterMode = "EPWM_COUNTER_MODE_UP";
    epwm4.epwmTimebase_phaseEnable = true;
    epwm4.epwmTimebase_syncOutPulseMode = ["EPWM_SYNC_OUT_PULSE_ON_SOFTWARE"];
    epwm4.epwmDeadband_enableRED = true;
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_ZERO = "EPWM_AQ_OUTPUT_HIGH";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_PERIOD = "EPWM_AQ_OUTPUT_LOW";
    epwm4.epwmActionQualifier_EPWM_AQ_OUTPUT_A_ON_TIMEBASE_UP_CMPA = "EPWM_AQ_OUTPUT_LOW";
    epwm4.epwmDeadband_delayRED = 12;
    epwm4.epwmTimebase_syncInPulseSource = "EPWM_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM0";
    epwm4.epwmTimebase_phaseShift = 2;
    epwm4.epwmDeadband_enableFED = true;
    epwm4.epwmDeadband_delayFED = 8;
    epwm4.epwmDeadband_inputFED = "EPWM_DB_INPUT_DB_RED";
    epwm4.epwmDeadband_outputSwapOutA = true;
    epwm4.epwmDeadband_outputSwapOutB = true;
    epwm4.epwmDeadband_polarityFED = "EPWM_DB_POLARITY_ACTIVE_LOW";
    epwm4.EPWM.$assign = "EPWM3";
    epwm4.EPWM.A.$assign = "ball.E2";
    epwm4.EPWM.B.$used = false;
    
    gpio1.$name = "CONFIG_GPIO22";
    gpio1.pinDir = "OUTPUT";
    gpio1.GPIO.gpioPin.$assign = "ball.A8";
    
    ipc.r5fss0_0 = "notify";
    ipc.r5fss0_1 = "NONE";
    ipc.r5fss1_0 = "NONE";
    
    debug_log.enableLogZoneError = false;
    debug_log.enableLogZoneWarning = false;
    debug_log.enableCssLog = false;
    
    mpu_armv71.$name = "CONFIG_MPU_REGION0";
    mpu_armv71.size = 31;
    mpu_armv71.attributes = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute = false;
    
    mpu_armv72.$name = "CONFIG_MPU_REGION1";
    mpu_armv72.size = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr = 0x80000;
    mpu_armv73.size = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr = 0x70000000;
    mpu_armv74.size = 21;
    
    mpu_armv75.$name = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x50D00000;
    mpu_armv75.size = 14;
    mpu_armv75.allowExecute = false;
    mpu_armv75.attributes = "Device";
    
    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x72000000;
    mpu_armv76.size = 14;
    mpu_armv76.allowExecute = false;
    mpu_armv76.attributes = "NonCached";
    
    timer1.$name = "CONFIG_TIMER0";
    timer1.timerCallback = "SCHD_TickCount_ISR";
    timer1.RTI.$assign = "RTI0";
    
    epwm_xbar1.$name = "CONFIG_EPWM_XBAR0";
    epwm_xbar1.xbarOutput = ["CMPSSA2_CTRIPH"];
    
    int_xbar1.$name = "CONFIG_INT_XBAR1";
    int_xbar1.instance = "INT_XBAR_1";
    int_xbar1.xbarOutput = ["ADC1_INT1"];
    
    output_xbar1.$name = "CONFIG_OUTPUT_XBAR0";
    output_xbar1.xbarOutput = ["CMPSSA2_CTRIPH"];
    output_xbar1.OUTPUTXBAR.$assign = "OUTPUTXBAR0";
    
    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    */
    adc1.ADC.AIN0.$suggestSolution = "ball.T11";
    gpio1.GPIO.$suggestSolution = "GPIO0";
    output_xbar1.OUTPUTXBAR.OUTPUTXBAR.$suggestSolution = "ball.R3";

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、 Zackary Fleenor

    感谢您的回答。

    请与软件 SDK 团队讨论、并告知我们是否有任何更新。

    暂时地、在每个单独的项目状态中、计时器实例的分配和使用方式不同、如下所示。
    R5FSS0-0:RTI1 (不能选择 RTI0)
    R5FSS1-0:RTI3 (无法选择 RTI2)
    R5FSS1-1:RTI2 (无法选择 RTI3)

    如上所述单独设置后、系统工程将打开并使用、并且在打开系统工程后不会打开或修改 SysConfig。

    如果您可以检查上述设置是否正确、或者 SysConfig 是否出于其他原因对其进行限制、我将不胜感激。

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、 Zackary Fleenor

    我在尝试创建多核映像时看到了类似的情况。

    (https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1186948/am2634-how-do-i-create-a-multicore-image-that-can-be-used-with-the-am2634)

    在 IPC 示例中、打开系统工程时无法添加计时器实例。 (发生冲突)

    我希望这有助于找出原因。

    目前、这些问题使我们无法创建多核映像。

    如果有任何更新、请告知我。

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jiung、

    这个限制是由 SYSCFG 中的时钟模块引起的。 时钟模块用于在 RTOS 用例中生成 OS 节拍、并用于在非 RTOS 应用中生成延迟等。 对于 SYSCFG 中的每个内核上下文、一旦时钟实例为必填项。 定时器是 SYSCFG 中的一个独立模块、可用于在系统中生成周期性中断。

    问题在于、SOC 中只有4个 RTI 实例、它们在时钟和计时器模块之间共享。 因此、如果是4核应用、时钟模块会占用全部4个 RTI 实例、并且由于没有保留 RTI 实例、因此无法在任何内核中启用计时器模块。

    您能否查看时钟模块是否为您的用例提供服务?

    如果您还不知道、ClockP_construct() API 可用于注册具有特定节拍周期的回调、并将在指定节拍间隔由时钟模块自动调用。 ClockP_析 构函数()可用于停止此操作。 这类似于在计时器模块中注册的回调。

    此致、

    Ashwin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Ashwin

    感谢你的答复。

    总之、我了解时钟和计时器共享 RTI、因此为每个内核使用4个以上的计时器会成为一个问题。

    因此,我不需要使用计时器,而需要使用诸如"ClockP_construct()"之类的 API。 有没有这方面的示例?

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jiung、

    目前,我们在 SDK 中没有 ClockP_construct()的示例。 但 SDK 用户指南中有一个使用 ClockP_construct()的示例代码。

    AM263x MCU+ SDK:时钟(TI.com)

    如果您对此主题有其他疑问、请告诉我。

    Ashwin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、 Ashwin

    我尝试根据提供的链接实现它、但不执行回调。
    完成"System_init"后、会像示例中那样执行"ClockP_construct"、但不执行回调函数。
    任何要检查的内容或使用"ClockP_construct"的示例工程都将非常有用。

    此致

    Jiung Choi

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jung、

    是否可以检查"开始"字段是否设置为1? 此外、请确认在构造期间填充了句点和超时字段。

    如果这不起作用、您能否附加代码的快照? 我可以查看并尝试提供帮助。

    此致、

    Ashwin