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.

[参考译文] TMS320F28388D:无法在调试模式下运行 F28388D 控制卡

Guru**** 2609935 points
Other Parts Discussed in Thread: TMS320F28388D, C2000WARE, SYSBIOS

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1064536/tms320f28388d-unable-to-run-f28388d-control-card-in-debug-mode

器件型号:TMS320F28388D
Thread 中讨论的其他器件: C2000WARESYSBIOS

您好、社区

我正在使用控制卡 F28388D 进行开发。

我希望使用 SYS/BIOS 进行开发、因此在该过程中、我必须创建一个新项目、因此我执行了以下步骤:

File > CCS Projects > Selected target and connection as TMS320F28388D 输入了项目名称 Hello1、

从 Project templates and examples -> SYS/BIOS > TI target examples > Minimal and Finish。

然后、我创建了目标配置文件作为"文件">"新建">"目标配置文件"并将其保存。

步骤1:

现在构建成功、如果我尝试在调试模式下运行、它将失败、它将为我提供如下屏幕截图所示的输出:

控制台输出:

C28xx_CPU1:GEL 输出:
内存映射初始化完成
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化开始...
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化完成...
C28xx_CPU1:GEL 输出:
 CPU2复位后配置为等待引导。
 (如果您以前连接过、可能必须恢复 CPU2才能到达等待引导循环。)
C28xx_CPU1:GEL 输出:
 CM 处于复位状态并配置为等待引导。
 (如果您以前连接过、可能必须恢复 CM 才能到达等待引导循环。)
C28xx_CPU1:如果在一个内核上执行擦除/编程(E/P)操作、则另一个内核不应从共享 RAM (SR)执行、因为它们用于 E/P 代码。 在对两个闪存组进行编程后、可以开始从 SR 执行用户代码。
C28xx_CPU1:只有 CPU1片上闪存插件可以为 CPU1、CPU2和 CM 闪存操作配置时钟。 当调用 CPU1闪存操作时、插件会自动配置 PLL。 但是、如果用户希望仅执行 CPU2或 CM 闪存操作而不在当前会话中执行先前的 CPU1操作、则应在调用 CPU2和 CM 闪存操作之前单击 CPU1的片上闪存插件中的"配置时钟"按钮。 使用此按钮时、Flash 插件将使用 INTOSC2作为时钟源、将 CPU1/CPU2的时钟配置为190MHz、将 CM 配置为95MHz。 插件将像这样保留 PLL 配置、用户应用应根据应用的要求配置 PLL。
Cortex_M4_0:GEL 输出:内存映射初始化完成
Cortex_M4_0:GEL 输出:启用窗口式看门狗
Cortex_M4_0:GEL 输出:启用 UART0
Cortex_M4_0:只有 CPU1片上闪存插件可以为 CPU1、CPU2和 CM 闪存操作配置时钟。 当调用 CPU1闪存操作时、插件会自动配置 PLL。 但是、如果用户希望仅执行 CPU2或 CM 闪存操作而不在当前会话中执行先前的 CPU1操作、则应在调用 CPU2和 CM 闪存操作之前单击 CPU1的片上闪存插件中的"配置时钟"按钮。 使用此按钮时、Flash 插件将使用 INTOSC2作为时钟源、将 CPU1/CPU2的时钟配置为190MHz、将 CM 配置为95MHz。 插件将像这样保留 PLL 配置、用户应用应根据应用的要求配置 PLL。
Cortex_M4_0:自动运行:无法设置目标未作为断点运行:_JobHardwareBreakpoint:::arm_debug_V7M_fpb_add_breakpoint: FPB:所有资源都在使用中。[25062]

步骤2:

然后、在 Debug Configurations > Program 选项卡中、我选择了 Project and Program to my current workspace project 并再次尝试调试、现在它给出了以下错误:

我的项目是一个新的项目,它还没有任何代码,只是一个主函数和一个只执行 printf()的任务;  

这次我的控制台输出为:

C28xx_CPU1:GEL 输出:
内存映射初始化完成
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化开始...
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化完成...
C28xx_CPU1:GEL 输出:
 CPU2复位后配置为等待引导。
 (如果您以前连接过、可能必须恢复 CPU2才能到达等待引导循环。)
C28xx_CPU1:GEL 输出:
 CM 处于复位状态并配置为等待引导。
 (如果您以前连接过、可能必须恢复 CM 才能到达等待引导循环。)
C28xx_CPU1:如果在一个内核上执行擦除/编程(E/P)操作、则另一个内核不应从共享 RAM (SR)执行、因为它们用于 E/P 代码。 在对两个闪存组进行编程后、可以开始从 SR 执行用户代码。
C28xx_CPU1:只有 CPU1片上闪存插件可以为 CPU1、CPU2和 CM 闪存操作配置时钟。 当调用 CPU1闪存操作时、插件会自动配置 PLL。 但是、如果用户希望仅执行 CPU2或 CM 闪存操作而不在当前会话中执行先前的 CPU1操作、则应在调用 CPU2和 CM 闪存操作之前单击 CPU1的片上闪存插件中的"配置时钟"按钮。 使用此按钮时、Flash 插件将使用 INTOSC2作为时钟源、将 CPU1/CPU2的时钟配置为190MHz、将 CM 配置为95MHz。 插件将像这样保留 PLL 配置、用户应用应根据应用的要求配置 PLL。
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化开始...
C28xx_CPU1:GEL 输出:
(笑声) DCSM 初始化完成...
C28xx_CPU1:GEL 输出:
 CPU2复位后配置为等待引导。
 (如果您以前连接过、可能必须恢复 CPU2才能到达等待引导循环。)
C28xx_CPU1:GEL 输出:
 CM 处于复位状态并配置为等待引导。
 (如果您以前连接过、可能必须恢复 CM 才能到达等待引导循环。)
C28xx_CPU1:GEL:文件:~\TI_Workspace\Hello1\Debug\Hello1.Out 与目标类型不匹配、未加载。

步骤3:

我甚至尝试使用 SYS/BIOS 示例在调试模式下运行、因此我将它们导入到了工作空间、在调试模式下构建并尝试运行、即使这样、我也会收到高于步骤2的警告

步骤4:

我能够从 DriverLib 中导入和编译示例项目、而不会出现任何问题。

如果我能够解决这些问题并构建和调试我的 FW 应用程序而没有任何麻烦、那将非常有帮助。

是否可以将 SYS/BIOS 与 DriverLib 一起使用?

此外、我还想在未来的实施中使用双核、能否获得任何有助于我更好地了解 CPU0和1之间握手以及代码的输入或相关文档。

提前感谢、

此致、

pranay。

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

    第1步和第2步中提到的一些问题似乎是 CCS 尝试在 C28x 内核上加载和运行 CM 应用程序的问题、反之亦然。 当你创建 SYS/BIOS 项目时、它的目标是什么内核? 厘米? 这里有一些有关 释放断点资源以修复该自动运行错误的提示。

    您可以在 SYS/BIOS 项目中使用 driverlib。 此常见问题解答中提供了一些有关 如何在 SYS/BIOS 工程中使用 C2000Ware 文件的建议。

    您还应查看 此多核开发指南 、其中介绍了如何将资源分配给不同的内核以及一些调试技巧。

    惠特尼

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

    您好、Whitney、

    感谢您的回复。 它帮助我了解了如何创建 SYS/BIOS 工程并在调试配置模式下运行该工程、而没有任何麻烦。 现在、我能够在调试模式下在 SYS/BIOS 项目中创建和运行。

    之前、我通过选择 CM 内核来创建项目、现在我将其更改为 C28x 内核。 它起作用。

    但是、正如 这个链接中提到的、我已经按照相应的步骤将 DriverLib 添加到创建的 SYS/BIOS 项目中。

    这是项目结构:

    包含选项选项卡:

    预定义符号选项卡:

    CCS General 中的输出格式为:legacy COFF

    遵循以下步骤:

    步骤1:

    要创建使用 C2000Ware 器件支持文件的 SYS/BIOS 工程、通常建议从 SYS/BIOS 示例或模板工程开始、并向其中添加对 C2000Ware 的支持。 器件的 device_support/下的 C2000Ware 中 /docs/目录中、有一个固件开发用户指南、其中包含有关创建新的非 SYS/BIOS 项目的分步说明。 许多相同的指令可用于指导您完成哪些文件、路径变量、包含路径目录、预定义符号等...需要添加到您选择作为起点的 SYS/BIOS 项目中。

    步骤2:

    另一个选项是导入现有的 C2000Ware 示例并将其用作源代码、您可以将上述项目复制到 SYS/BIOS 工程中。 我在下面展示 了 SYS/BIOS"最小"模板项目(请参阅此处有关导入 SYS/BIOS 示例和模板的说明)、其中我已将 F2837xD driverlib 和其他器件支持文件集成到该项目中。 具体的文件和设置将因您的器件和起始示例而异。

    我首先执行了第1步、但最终遇到错误、我再次重新创建了一个新项目、并这次执行了第2步、

    最终仍然出现以下错误:

    控制台输出

    ****为项目 Helloc28xProj 构建配置调试****

    "C:\\ti\\ccs1040\\ccs\\utils\\bin\\gmake"-k -j 16 all -O
     
    正在制作./src/sysbios/sysbios a28L...
    编译文件:"../app.cfg
    调用:XDCtools
    "c:/ti/ccs1040/xdctools_3_62_01_15_core/xs"-xdcpath="C:/ti/bios_6_83_00_18/packages;" xdc.tools.configuro configPkg -t ti.targets.C28_large -p ti.platforms.tms320x28:TMS320F2838X1 -r release -c "C:c"cc1040-tools.configure-o ccs.g.cfg-c2000-exctr.trab.g"/cc40".
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    asm28L C:/ti/bios_6_83_00_18/packages/ti/sysbios/family/c28/IntrinsicsSupport_asm.s28...
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    asm28L C:/ti/bios_6_83_00_18/packages/ti/sysbios/family/c28/TaskSupport_asm.s28...
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    asm28L C:/ti/bios_6_83_00_18/packages/ti/sysbios/family/c28/Hwi_asm.s28...
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    asm28L C:/ti/bios_6_83_00_18/packages/ti/sysbios/family/c28/Hwi_disp_asm.s28...
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    从 package/cfg/app_p28L.cfg 配置 app.x28L ...
    正在生成自定义 ti.sysbios 库 makefile ...
    subdir_rules.mk:12:目标'Build-1815468385-InProc '的配方失败
    JS:"c:/ti/ccs1040/xdctools_3_62_01_15_core/packages/xdc/cfg/Main.xs"、第48行:XDC 运行时错误:找不到软件包 ti.sysbios.family.c28.f2838x.init 指定的库'lib/Boot.a28L'。  未在路径'C:/ti/bios_6_83_00_18/packages;C:/ti/ccs1040/xdctools_3_62_01_15_core/packages;..;'中找到该文件。
    xdctools_3_62_01_15_core\gmake.exe:***[package.mak:198:package/cfg/app_p28L.xdl]错误1.
    xdctools_3_62_01_15_core\gmake.exe:***删除文件'package/cfg/app_p28L.xdl'
    xdctools_3_62_01_15_core\gmake.exe:***[package/cfg/app_p28L.xdl]删除文件'package/cfg/app_p28L.h'
    xdctools_3_62_01_15_core\gmake.exe:***[package/cfg/app_p28L.xdl]删除文件'package/cfg/app_p28L.c'
    JS:"c:/ti/ccs1040/xdctools_3_62_01_15_core/packages/xdc/tools/cmdr.xs"、第52行:错误:xdc.tools.configuro:由于早期错误导致配置失败(状态= 2);删除了'linker.cmd'。
    gmaking[1]:***[Build-1815468385-InProC]错误1.
    gmake:***[Build-1815468385]错误2.
    subdir_rules.mk:9:目标'build-1815468385"的配方失败
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    cl28L C:/ti/bios_6_83_00_18/packages/ti/sysbios/BIOS.c……
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    gmake[1]:进入目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    ar28L bios.obj c28_hwi_asm-obj c28_hwi_dep_asm-obj c28_ininsicsSupport_asm_wm.obj c28_TaskSupport_asc.obj ...
    gmake[1]:离开目录 D:/V-TE-PWR/EthBased/TI_Workspace/Helloc28xProj/src/SysBIOS'
    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    步骤3:

    因此、在此 之后、我通过了此链接、基于此、我更改了我的

    CCS General 中的输出格式为:eabi (elf)

    现在、我将面临以下错误:

    控制台输出:

    ****为项目 Helloc28xProj 构建配置调试****

    "C:\\ti\\ccs1040\\ccs\\utils\\bin\\gmake"-k -j 16 all -O
     
    正在制作./src/sysbios/sysbios a28L...
    编译文件:"../app.cfg
    gmake[1]:没有为"全部"执行任何操作。
    调用:XDCtools
    "c:/ti/ccs1040/xdctools_3_62_01_15_core/xs"-xdcpath="C:/ti/bios_6_83_00_18/packages;" xdc.tools.configuro configPkg -t ti.targets.elf.c28_large -p ti.platforms.tms320x28:TMS320F2838X1 -r release -c "ccs.g-01.40" c2000-exctrab/compiltex-g.g.trab/cc1040"/c2000-tools.g"
    正在制作 package.mak (由于 package.bld)...
    subdir_rules.mk:12:目标'Build-1815468385-InProc '的配方失败
    JS:"./config.Bld"、第10行:错误:在路径"C:/ti/bios_6_83_00_18/packages;C:/ti/ccs1040/xdctools_3_62_01_15_core/packages;"上找不到名为"ti.target./eltis./packets"的目标。请检查目标路径名称是否存在拼写。
    xdctools_3_62_01_15_core\gmake.exe:***没有规则使目标'.configuro'。  停下。
    JS:"c:/ti/ccs1040/xdctools_3_62_01_15_core/packages/xdc/tools/cmdr.xs"、第52行:错误:xdc.tools.configuro:由于早期错误导致配置失败(状态= 2);删除了'linker.cmd'。
    gmaking[1]:***[Build-1815468385-InProC]错误1.
    gmake:***[Build-1815468385]错误2.
    subdir_rules.mk:9:目标'build-1815468385"的配方失败
    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    步骤4:

    还尝试导入 DriverLib 示例项目并通过从"File">"新建"菜单创建新的 RTSC 配置文件来添加 SYS/BIOS、即使这样也会出现相同的错误。

    如何解决这些问题? 我能在这里获得任何帮助。

    谢谢、此致、

    Pranay

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

    尝试将您的平台与您在编译器选项中用于--float_support 的任何平台相匹配。 例如、如果-float_support 为 fpu64、我认为您可能希望使用 ti.targets.elf.c28_float64、而不是使用平台 C28_large。

    惠特尼

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

    我已在项目属性> CCS 常规中将 XDC 工具设置目标修改为"ti.targets.elf.c28_float64"。

    这是您所指的吗? 如果不是、请指导我执行修改步骤。

    但是、在进行该更改后、我将保留以下错误:

    控制台输出:

     
    编译文件:"./device/driverlib/usb .c"
    调用:C2000编译器
    "c:/ti/ccs1040/ccs/tools/compiler/ti-cgt-C2000-21.6.0.sps/bin/cl2000"-v28 -ml -mt --cla_support=cla2 -float_support=fpu64 -idiv_support=idiv0 -tmu_support=tidu_zh-cus/v83_workshort_board_tran/v/cn/simple_board-dc/board-dc/board-s/v04/tid_htm_htm_workshort/v/cn_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_htm_html/workshort/cn_htm_htm_htm_htm_html/work_html/work_htm_htm_htm_htm_html/work_htm_html/work_htm_htm_htm_html/work_html/boards/v/cn_html/work_html/boards/v/html/workshop/cn_html/work/cn_html/work_html/work_html/work /device/driverlib/usb
    已完成构建:"./device/driverlib/usb .c"
     
    正在制作./src/sysbios/sysbios ae28FP64...
    gmake[2]:对于"全部"没有要做的事情。
    构建目标:"Helloc28xProj.out"
    调用:C2000链接器
    "c:/ti/ccs1040/ccs/tools/compiler/ti-cgt-C2000-21.6.0.LTS/bin/cl2000"-v28 -ml -mt -cla_support=cla2 -float_support=fpu64 -idiv_support=idiv0-tmu_support=tum0 -v40=v40=ti_exclus-inum_exclus-cus/compilers-guest-ines=c2000-real-ines=texclus-clus-cr=v40-cn/c2000-reide-guide-texclus/guest-ines=-ines=texclus-guest-ines=cus/en_guide-ines=texclus-guide-ines=c2000-ree.texclus-ines/c2000-real-ines=dich-intrab-dich-ines/c2000-real-ines/c2000-real-intrab-dich-dich-dich-dich-dich-ines/c2000-real-ines/c2000-real-ines= rom_model -o "Helloc28xProj.out""./main.obj ""./device/device.obj "./device/driverlib/adc.obj "./device/driverlib/bgcrc./device/driverlib/can.obj "./device/driverlib/asysctl /device/driverlib/cla /device/driverlib/cputimer /device/driverlib/dcsm /device/driverlib/emif /device/driverlib/erad /device/driverlib/fsi /device/driverlib/hrpwm /device/driverlib/mcan /device/driverlib/pmbus /device/driverlib/spi /device/driverlib/version.obj./device/driverlib/cmpss./device/driverlib/dcc.obj./device/driverlib/ecap./device/driverlib/eqep./device/driverlib/clb /device/driverlib/dac /device/driverlib/dma /device/driverlib/epwm /device/driverlib/escss /device/driverlib/gpio /device/driverlib/interrupt /device/driverlib/mcbsp /device/driverlib/sci /device/driverlib/sysctl.obj./device/driverlib/flash.obj./device/driverlib/hrcap./device/driverlib/ipc./device/driverlib/memcfg./device/driverlib/sdfm.obj./device/driverlib/usb...obj...obj /device/driverlib/ccs/Release/driverlib /device/driverlib/ccs/Debug/driverlib /device/driverlib/xbar  

    警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段".binIT"
    "./2838x_flash_lnk_cpu1.cmd"、第77行:错误#10099-D:程序不能放入可用存储器、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 对".bss"大小为0xe2b 页0的运行定位/分块失败。  可用存储器范围:
      RAMLS5      大小:0x800       未使用:0x4f8       最大空洞:0x4f8     
    "configPkg/linker.cmd"、第60行:警告#10097:找不到内存范围:RAMLS0_5
    "configPkg/linker.cmd"、第60行:错误#10265:没有有效的存储器范围可用于放置".text:ti_sysbios_family_c28_f2838x_init_Boot_flashfuncs"
    "configPkg/linker.cmd"、第60行:错误#10099-D:程序将不能放入可用存储器中、或者该段包含需要无法为此段生成的 trampoline 的调用站点。 对".text:ti_sysbios_family_c28_f2838x_init_Boot_flashfuncs"大小为0x2C 页0的运行定位/分块失败
    错误#10010:链接期间遇到错误;未构建"Helloc28xProj.out"
     
    >>编译失败
    Makefile:190:目标'Helloc28xProj.out'的配方失败
    gmaking[1]:***[Helloc28xProj.out]错误1.
    Makefile:186:目标'all'的配方失败
    gmake:***[全部]错误2.

    ****构建完成****

    我认为这些与链接器脚本有关。 我是对的吗?

    如果是、我需要修改加载的.cmd 文件、还是有其他建议。 请指导我在哪里可以获得与链接器脚本相关的一些信息。

    编辑1:

    我尝试将现有的2838x_flash_lnk_cpu1.cmd 文件更改为 TMS320F2838X1.cmd 文件、并且 BUID 成功。

    希望无需进一步更改。 请告诉我是否需要执行任何其他步骤来使将来的实施变得顺畅。

    谢谢、此致、

    Pranay。

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

    您好 Pranay、

    我同意您对最后几个问题的解决方案。 请注意、如果您确实希望继续使用2838x_flash_lnk_cpu1.cmd、 我之前向您发送的 C2000Ware+SYS/BIOS 常见问题解答中有一些提示、介绍如何通过编辑 cmd 文件和引导模块设置来解决这些问题。 如果 您还不熟悉该过程、这里还有一个有关编辑链接器文件的主题的好文档。

    惠特尼

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

    e2e.ti.com/.../8420.app.cfg

    尊敬的惠特尼:

    感谢您提供链接。

    我希望在我的应用中使用3个以上的 RTOS 计时器。 SYS/BIOS 是否具有使用3个以上定时器的配置?

    您能不能向我指出任何计时器示例(除 bigtime 示例)、以便我可以参考该示例来创建和使用计时器。

    我已使用.cfg 添加了计时器并尝试构建、但我正在获得"器件上不支持 TIer! "错误。

    另外、请查找随附的 app.cfg 文件以供参考

    控制台输出:

    ****为项目 Helloc28xProj 构建配置调试****

    "C:\\ti\\ccs1040\\ccs\\utils\\bin\\gmake"-k -j 16 all -O
     
           已复制1个文件。
    正在制作./src/sysbios/sysbios ae28FP64...
    编译文件:"../app.cfg
    gmake[1]:没有为"全部"执行任何操作。
    调用:XDCtools
    "c:/ti/ccs1040/xdctools_3_62_01_15_core/xs"-xdcpath="C:/ti/bios_6_83_00_18/packages;" xdc.tools.configuro configPkg -t ti.targets.elfloat64 -p ti.platforms.tms320x28:TMS320F28388D -r release -ccs.tr-c2000-ctrabout_ccs.trab/sctex-g.trab/cc2.tex-c2000-refiles"-c2000-rev.g.trab/ccs.trab/ctrab/cc2.tex-g.ti_cus/compiltics-g.trab/ctrles/ctrab
    从 package/cfg/app_pe28FP64.cfg 配置 app.xe28FP64 ...
    指定器件(TMS320F28388D)不支持计时器。
    subdir_rules.mk:12:目标'Build-1815468385-InProc '的配方失败
    JS:"c:/ti/bios_6_83_00_18/packages/ti/sysbios/timers/gptimer/Timer.xs"、第515行:错误:器件上不支持计时器!
       "~/TI_Workspace/Helloc28xProj/app.cfg "、第21行
       "./package/cfg/app_pe28FP64.cfg"、第189行
    xdctools_3_62_01_15_core\gmake.exe:***[package.mak:206:package/cfg/app_pe28FP64.xdl]错误1
    xdctools_3_62_01_15_core\gmake.exe:***[package/cfg/app_pe28FP64.xdl]删除文件'package/cfg/app_pe28FP64.h'
    xdctools_3_62_01_15_core\gmake.exe:***[package/cfg/app_pe28FP64.xdl]删除文件'package/cfg/app_pe28FP64.c'
    JS:"c:/ti/ccs1040/xdctools_3_62_01_15_core/packages/xdc/tools/cmdr.xs"、第52行:错误:xdc.tools.configuro:由于早期错误导致配置失败(状态= 2);删除了'linker.cmd'。
    gmaking[1]:***[Build-1815468385-InProC]错误1.
    gmake:***[Build-1815468385]错误2.
    subdir_rules.mk:9:目标'build-1815468385"的配方失败
    gmake:目标"全部"不会由于错误而重新生成。

    ****构建完成****

    我将控制卡 F28388d 用于我的开发。 请帮助我执行一些如何创建计时器的过程(对于我们的 FW 应用、我们需要在单核上使用4个计时器)。

    Pranay。

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

    SYS/BIOS 中的每个定时器实例都在器件上使用一个 CPU 定时器、其中只有3个。 您还需要记住、SYS/BIOS 还可以创建一个计时器实例本身来运行 BIOS 时钟节拍、并根据您的设置为时间戳创建另一个计时器实例。

    您的计时器有多长时间? 是否可以改用时钟实例? 或者、您的某些周期函数是否可以共享一个计时器实例、在该实例中、您可以使用更快的计时器函数内的计数器变量来管理较慢的周期性任务?

    如果您确实需要如此多的独立硬件计时器、则需要考虑将备用 EPWM 或 ECAP 或其他外设用作通用计时器。

    惠特尼

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="123578" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/C2000-microcontrollers-forume/1064536/tms320f28388d-unable to -run-f28388d-control-card-on-debug-mode/3943762#3943762#3943762"您的定时器有多长时间? [/报价]

    我们的计时器周期从几毫秒到几秒不等。 它们在整个执行过程中不是固定的、所需的持续时间会有所不同。

    --普拉奈

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

    好的、我问的原因是 SYS/BIOS 时钟节拍默认为1ms、因此只要周期不需要比周期更精细、您就应该将其视为一个选项。 如果您还没有、请查看 SYS/BIOS 用户指南的时序服务一章。

    惠特尼

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

    因此,如果我需要在不影响性能的情况下使用3个以上的定时器,我们必须使用 EPWM 或 ECAPS? 是否有可用的示例?

    Pranay。

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

    如果您需要更多硬件计时器、是的、您需要考虑使用 EPWM 和 ECAP 等外设。 我不知道以这种方式使用这些示例的任何示例、但我想、如果您用现有示例进行实验、您可以将其弄清楚。 ePWM_ex2_updown_AQ 示例已在计数器等于0时生成中断、因此禁用您不需要的其他功能并根据需要调整周期不会花费太多时间。 对于 ECAP、 请尝试向 ECAP_ex1_apwm 示例添加中断、然后从此处调整配置。

    不过、只要您的某些计时器共享相同的时基、它们就可以共享相同的硬件计时器并使用节拍计数器来确定每个例程的运行频率。 这是时钟模块已经执行的操作、但您可以在任何计时器 ISR 中执行相同的操作。

    惠特尼

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

    我想我们现在可以结束这种情况。 我使用时钟创建了 SW 计时器。

    感谢 Whitney 的支持。

    --普拉奈。