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.

[参考译文] TMDSCNCD28388D:TMS320F28388x SYS/BIOS 通用计时器管理

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/880168/tmdscncd28388d-tms320f28388x-sys-bios-general-purpose-timers-management

器件型号:TMDSCNCD28388D

大家好

现在、我为 TMS320F28388开发一些软件

现在、我开始了侧面 CM SYS/BIOS (&.76.01.12)和 TCP/IP 堆栈

示例 tcpEchoF2838X。

CM 包含3个通用计时器。

我知道这个

SYS/BIOS 使用1个计时器进行调度

TCP/IP    还使用1个计时器进行调度。

因此、它是左侧1个计时器

我将使用该计时器  来计算某个时间间隔并生成 Hwi、但我遇到了一些问题。  

配置文件中

我写道

//var 计时器= xdc.useModule('ti.sysbios.family.arm.lm4.Timer');
/图标 /
 
 //var 计时器= xdc.useModule('ti.sysbios.hal.Timer');
 VAR 计时器= xdc.useModule('ti.sysbios.timers.gptimer.Timer');
var timerParams = new Timer.Params();
timerParams.periodType = Timer.PeriodType_microsecs;
timerParams.period = 1000;  //2ms
timerParams.arg = 1;
timerParams.startMode = Timer.StartMode_user;

program.global.myTimer = Timer.create ((~0)、"&myIsr"、timerParams);

因此、我 使用了一致的方法  

VAR 计时器= xdc.useModule('ti.sysbios.family.arm.lm4.Timer');

VAR 计时器= xdc.useModule('ti.sysbios.hal.Timer');

编译错误- 如果我使用的话、"There is not avalable timers"

timer.create (1、"&myIsr"、timerParams);

其他数量的计时器

因此、其他编译错误、如"错误的计时器索引"

如果我使用

VAR 计时器= xdc.useModule('ti.sysbios.timers.gptimer.Timer');

编译错误 "器件上不支持计时器"

因此、SYS/BIOS 的文档   不包含 TMS320F28388的计时器编号

与其他处理器类似

所以

问题是

1如何了解占用了哪些计时器?

2) 2)如果占用了所有计时器、如何计算时间间隔?

3) SYS/BIOS 窗口如图所示  

 问题是为什么在目标特定支持/ Arm 中存在具有自己外围的 Arm M3 (Ducati)和 M4 (TIVA)(例如 M3包含 cashe 和 Ammu)?

   什么是 LM4专用定时器管理?

  箭头所指 的红色点是什么意思?

 此致

 Andrii

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

    大家好

    我添加了图片

    此致

    Andrii Shevchuk

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

    Andrii、

    最简单的方法是打开 CCS->Tools->ROV 并查看计时器模块以查看正在使用的计时器。

    Todd

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

    大家好、TI 也是

    可能是 TI 认为问题已解决、但我认为没有解决。

     前面的建议不会导致解决方案- ROV 仅表示1个计时器被占用作为系统时钟

    其他计时器消失在哪里?

    为什么编译会在上述情况下产生错误?

    此致

    Andrii

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

    您好、Andrii、

    F2838x 器件类不支持 lm4计时器。 请尝试 改用 family.arm.m3计时器。

    Kevin

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

    大家好、Kevin

     e2e.ti.com/.../446881

    "TI.SYSBIOS.family.ARM.m3/Timer对应于 SysTick 计时器。  这些计时器中只有一个、默认情况下、该计时器用于提供时钟和时间戳服务。 "

     ROV 会确认它。

    函数 Timer_getNumTimer();(模块 ti.sysbios.hal计时 器)

    返回1

    根据相关文档、TMS320F28388x CM 具有3个通用计时器、

    那么问题仍然是-其他计时器在哪里消失了?

    以及如何使用这些功能?

    此致

    Andrii

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

    查看其他线程时、请确保它是正确的器件、因为不同的平台将支持 SYS/BIOS 中的不同定时器。

    我已经与同事交谈过、似乎您的平台缺少返回正确计时器信息的代码。

    您可以尝试查看时间戳模块。 它提供计时服务、无需分配/创建新计时器。  

    Kevin

     

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

    大家好、Kevin

                  TIMESTAMP_get64 (&l_ttime_Stamp64_Start);
                   usleep(1000);
                  TIMESTAMP_get64 (&l_ttime_Stamp64_Stop);
                  System_printf ("%u\n"、l_ttime_Stamp64_Stop.lo - l_ttime_Stamp64_Start.lo);

    输出、如  386810、386808、  

      有时是405324 405323

    您可以看到以下内容以及我的相关主题"TMS320F28388 CM 侧的函数 Timestamp_getFreq ()返回错误值"

    我启动了示例 tcpEchoF2838X,并根据需要修改了此示例。

    Types_FreqHz l_tTimer_Freq;
      L_tTimer_Freq.hi =0;
      L_tTimer_Freq.lo =0;
      TIMESTAMP_getFreq (&l_tTimer_Freq);

    所以函数 Timestamp_getFreq()必须返回 Herz 中计时器的频率,在 l_tTimer_Freq.lo 中返回250000000

    上面有一个屏幕截图、显示了平台依赖功能的外观。

    高亮度 ROV

    刺激是两次

    第一个

    [
       {
          "模块":"TI.SYSBIOS.family.ARM.m3/Timer"、
          "查看":"基本"
       }、
       [
          {
             "地址":"0x20001180"、
             "halTimerHandle":空、
             "标签":""、
             "ID":"0"、
             "器件":" SysTick "、
             "startMode":"StartMode_Auto"、
             "runMode":"RunMode_Continuous"、
             "期间":"125000"、
             "periodType":"PeriodType_Counts"、
             "intNum":"15"、
             "tickFxn":[
                "TI_SYSBIOS_KNL_Clock_doTick__i"
             ]、
             "ARG":"0x0"、
             "extFreq":"0"、
             "hwiHandle":"0x20001350"
          }
       ]
    ]

    和第二个

    [
       {
          "模块":"TI.SYSBIOS.hal.Timer"、
          "查看":"原始"
       }、
       {
          "模块状态":空、
          "实例状态":[]、
          "模块配置参数":{
             "$category:"module"、
             "$NAME":"TI.SYSBIOS.hal.Timer"、
             "任何":"-1"、
             "Module_diagsEnabled":"32784"、
             "module_diagsIncluded":"49299"、
             "Module_diagsMask":"&ti_sysBIOS_hal_Timer_Module_root_V.mask"、
             "module_gateObj":空、
             "module_gatePrms":空、
             "模块_id":"32806"、
             "module_logger 定义":false、
             "module_loggerFxn0":空、
             "module_loggerFxn1":空、
             "module_loggerFxn2":空、
             "module_loggerFxn4":空、
             "module_loggerFxn8":空、
             "module_loggerObj":空、
             "object__count":"0"、
             "object__heap":空、
             "object_sizeof":"0"、
             "object__table":空、
             "TimerProxy":{
                "$category:"module"、
                "$NAME":"TI.SYSBIOS.family.ARM.m3/Timer"、
                "任何":"-1"、
                "e_cannotSupport":{
                   "$category":"struct"、
                   "$name":"xdc.runtime.Error.Desc#37"、
                   "代码":"0"、
                   "MSG":"e_cannotSupport:定时器不能支持请求的周期%d"
                }、
                "e_invalidTimer":{
                   "$category":"struct"、
                   "$name":"xdc.runtime.Error.Desc#35"、
                   "代码":"0"、
                   "MSG":"e_invalidTimer:无效的计时器 ID %d"
                }、
                "e_notavailable ":{
                   "$category":"struct"、
                   "$name":"xdc.runtime.Error.Desc#36"、
                   "代码":"0"、
                   "MSG":"e_notavailable:timer not available %d"
                }、
                "Max_Period":"16777215"、
                "最小扫描周期":"1"、
                "Module_diagsEnabled":"32784"、
                "module_diagsIncluded":"49299"、
                "Module_diagsMask":"&ti_sysBIOS_family_arm_m3/Timer_Module_root_V.mask"、
                "module_gateObj":空、
                "module_gatePrms":空、
                "module_id":"32816"、
                "module_logger 定义":false、
                "module_loggerFxn0":空、
                "module_loggerFxn1":空、
                "module_loggerFxn2":空、
                "module_loggerFxn4":空、
                "module_loggerFxn8":空、
                "module_loggerObj":空、
                "num_timer_devices":"1"、
                "object__count":"0"、
                "object__heap":空、
                "object_sizeof":"0"、
                "object__table":空、
                "Timer_clock_divider ":"1"、
                "任意掩码":"1"、
                "common$":{
                   "$category":"struct"、
                   "$NAME":"TI.SYSBIOS.family.ARM.m3/Timer/comm$"、
                   "Diags_analysis":"xdc.runtime.Diags.ALWAYS_ON"、
                   "Diags_assert":"xdc.runtime.Diags.ALWAYS_ON"、
                   "Diags_entry":"xdc.runtime.Diags.RUNTIME_ON"、
                   "Diags_exit":"xdc.runtime.Diags.RUNTIME_ON"、
                   "Diags_info":"xdc.runtime.Diags.RUNTIME_ON"、
                   "Diags_internal":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_Lifecycle ":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_status":"xdc.runtime.Diags.RUNTIME_ON"、
                   "Diags_User1":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_User2":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_User3":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_User4":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_USER5":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "Diags_USER6":"xdc.runtime.Diags.ALWAYS_OFF"、
                   "DIAGS_USER7":"xdc.runtime.Diags.RUNTIME_ON"、
                   "DIAGS_USER8":"xdc.runtime.Diags.ALWAYS_ON"、
                   "fxntab":false、
                   "门":{
                      "$category":"实例"、
                      "$name":"TI.SYSBIOS.Gates.GateHwi.Instance#0"、
                      "Q_blocking":"1"、
                      "Q_抢占":"2"、
                      "实例":{
                         "$category":"struct"、
                         "$name":"TI.SYSBIOS.Gates.GateHwi.Instance#0/Instance"、
                         "名称":空
                      }
                   }、
                   "gateParams":空、
                   "instanceHeap":空、
                   "实例段":空、
                   "记录器":空、
                   "记忆政策":"xdc.runtime.Types.DELETE_POLICY"、
                   "namedInstance":false、
                   "namedModule":true、
                   "outPolicy":"xdc.runtime.Types.COMMON_FILE"、
                   "romPatchTable":false
                }、
                "defaultDynamic":false、
                "rovViewInfo":{
                   "$category":"实例"、
                   "$NAME":"XDC.ROV.ViewInfo.instance#33"、
                   "argsMap":{
                      "$category":"map"、
                      "$NAME":"XDC.ROV.ViewInfo.instance#33/argsMap"
                   }、
                   "showRawTab":正确、
                   "查看图":[
                      {
                         "$category":"struct"、
                         "$NAME":"XDC.ROV.ViewInfo.instance#33/viewmap/'Basic'"、
                         "argsName":空,
                         "structName":"BasicView"、
                         "type":"XDC.ROV.ViewInfo.instance"、
                         "viewInitFxn":"viewInitBasic"
                      }、
                      {
                         "$category":"struct"、
                         "$NAME":"XDC.ROV.ViewInfo.instance#33/viewmap/'Device 项"、
                         "argsName":空,
                         "structName":"DeviceView"、
                         "type":"XDC.ROV.ViewInfo.instance"、
                         "viewInitFxn":"viewInitDevice"
                      }、
                      {
                         "$category":"struct"、
                         "$NAME":"XDC.ROV.ViewInfo.instance#33/viewmap/'odule'"、
                         "argsName":空,
                         "structName":"ModuleView"、
                         "type":"XDC.ROV.ViewInfo.module"、
                         "viewInitFxn":"viewInitModule"
                      }
                   ]
                }、
                "startupNeed":"1"、
                "supportsDynamic":false、
                "timerInUse":正确
             }、
             "common$":{
                "$category":"struct"、
                "$NAME":"TI.SYSBIOS.hal.Timer/common$"、
                "Diags_analysis":"xdc.runtime.Diags.ALWAYS_ON"、
                "Diags_assert":"xdc.runtime.Diags.ALWAYS_ON"、
                "Diags_entry":"xdc.runtime.Diags.RUNTIME_ON"、
                "Diags_exit":"xdc.runtime.Diags.RUNTIME_ON"、
                "Diags_info":"xdc.runtime.Diags.RUNTIME_ON"、
                "Diags_internal":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_Lifecycle ":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_status":"xdc.runtime.Diags.RUNTIME_ON"、
                "Diags_User1":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_User2":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_User3":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_User4":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_USER5":"xdc.runtime.Diags.ALWAYS_OFF"、
                "Diags_USER6":"xdc.runtime.Diags.ALWAYS_OFF"、
                "DIAGS_USER7":"xdc.runtime.Diags.RUNTIME_ON"、
                "DIAGS_USER8":"xdc.runtime.Diags.ALWAYS_ON"、
                "fxntab":false、
                "门":{
                   "$category":"实例"、
                   "$name":"TI.SYSBIOS.Gates.GateHwi.Instance#0"、
                   "Q_blocking":"1"、
                   "Q_抢占":"2"、
                   "实例":{
                      "$category":"struct"、
                      "$name":"TI.SYSBIOS.Gates.GateHwi.Instance#0/Instance"、
                      "名称":空
                   }
                }、
                "gateParams":空、
                "instanceHeap":空、
                "实例段":空、
                "记录器":空、
                "记忆政策":"xdc.runtime.Types.DELETE_POLICY"、
                "namedInstance":false、
                "namedModule":true、
                "outPolicy":"xdc.runtime.Types.COMMON_FILE"、
                "romPatchTable":false
             }、
             "defaultDynamic":false、
             "supportsDynamic":false
          }
       }
    ]

    此致

    Andii

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

    感谢您提供信息。

    您提到的第二个计时器只是一个引用器件计时器的抽象层。 该器件应使用的计时器是 ti.sysbios.family.arm.m3计时器。 相应的 hal 计时器仅显示一个时钟计时器这一事实是不正确的。 我已将此信息传递给我的同事。

    同时、时间戳问题将在其各自的线程中得到解决。

    Kevin