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.

[参考译文] TMS320F280049C:CLA 未运行获取未知路径源

Guru**** 2405245 points
Other Parts Discussed in Thread: TMS320F280049C, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1543593/tms320f280049c-cla-not-running-getting-unknown-path-source

主题:C2000WARE 中讨论的其他器件

工具/软件:

我正在使用 具有集成 CLA 和 CPU 的 TMS320F280049C。   在 CLA 中添加一些代码后,它在调试期间未运行下面提到的错误,它显示无法调试此问题。

在/home/ubnuser/ti/repos/c2000ware_release/driverlib/f28004x/driverlib/flash.c 上找不到源文件
找到 文件或编辑源查找路径以包括其位置。

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

    尊敬的 Subash:

    此错误仅意味着 CCS 在错误的位置查找该特定文件(以在查看器中显示符号)。 可以点击“Locate File...“ 并导航至[C2000ware install on your local machine]/driverlib/f28004x/driverlib/flash.c 以帮助 CCS 找到 flash.c 文件?

    此致、

    Delaney

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

    尊敬的 Delaney:

    找到特定路径后、它可以进行调试、但调试显示了下面的 错误如何解决此问题  

     在地址“0xa28e"处“处中断、没有可用的调试信息、也可以在程序代码之外中断。

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

    在调试期间、它将用于闪存初始化其发生原因以及如何解决   

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

    尊敬的 Subash:  

    当您看到此错误时、调试器位于哪个上下文 (CPU 或 CLA) 中? 您能概述一下为了通过 CCS 进行连接而要执行的步骤吗?

    这可能是由于连接步骤出现问题、也可能是 CLA 代码的存储器分配问题。  

    此致、

    Delaney

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

    尊敬的 Delaney:

    调试 CLA 期间出现此错误。

    第 1 步:加载程序。

    步骤 2:选择 CLA 调试并加载符号、然后在下次运行时连接目标。

    步骤 3:运行 CPU。

    在调试 CLA 并运行于闪存初始化模块 (_RamfuncsRunStart) 期间、我认为其存储器问题请在下面找到存储器分配详细信息和栈信息  

    移动数据

    第 0 页:

    RAMM0:origin = 0x0000F5、长度= 0x00030B


    // RAMLS0:origin = 0x008000、length = 0x000800
    //RAMLS1:origin = 0x008800、长度= 0x000800
    //RAMLS2:origin = 0x009000、length = 0x000800
    //RAMLS3:origin = 0x009800、长度= 0x000800
    // RAMLS4:origin = 0x00A000、length = 0x000800

    RAMLS0_1_2_3_4:origin = 0x008000、长度= 0x002800
    Reset:origin = 0x3FFFC0、length = 0x000002

    #ifdef _TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION_>= 20012000
    组{/*对整个闪存的 CRC/校验和的组存储器范围*/
    #endif
    #endif
    /* BEGIN 用于“引导至闪存“引导加载程序模式*/

    begin:origin = 0x086000、length = 0x000010

    /*闪存扇区*/
    /*组 0 */
    FLASH_BANK0_SEC0:origin = 0x080002、length = 0x000FFE /*片上闪存*/
    FLASH_BANK0_SEC1:origin = 0x081000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_sec2:origin = 0x082000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC3:origin = 0x083000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC4:origin = 0x084000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC5:origin = 0x085000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC6:origin = 0x086010、length = 0x000FF0 /*片上闪存*/
    FLASH_BANK0_sec7:origin = 0x087000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC8:origin = 0x088000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC9:origin = 0x089000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC10:origin = 0x08A000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC11:origin = 0x08B000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC12:origin = 0x08C000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC13:origin = 0x08D000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC14:origin = 0x08E000、length = 0x001000 /*片上闪存*/
    FLASH_BANK0_SEC15:origin = 0x08F000、length = 0x001000 /*片上闪存*/

    /*组 1 */
    FLASH_BANK1_SEC0:origin = 0x090000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC1:origin = 0x091000、length = 0x001000 /*片上闪存*/
    Flash_BANK1_sec2:origin = 0x092000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC3:origin = 0x093000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC4:origin = 0x094000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC5:origin = 0x095000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC6:origin = 0x096000、length = 0x001000 /*片上闪存*/
    // FLASH_BANK1_sec7:origin = 0x097000、length = 0x001000 /*片上闪存*/
    // FLASH_BANK1_SEC8:origin = 0x098000、length = 0x001000 /*片上闪存*/
    // FLASH_BANK1_SEC9:origin = 0x099000、length = 0x001000 /*片上闪存*/
    // FLASH_BANK1_SEC10:origin = 0x09A000、length = 0x001000 /*片上闪存*/
    // FLASH_BANK1_SEC11:origin = 0x09B000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_sec7_8_9_10_11:origin = 0x097000、length = 0x005000 /*片上闪存*/
    FLASH_BANK1_SEC12:origin = 0x09C000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC13:origin = 0x09D000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC14:origin = 0x09E000、length = 0x001000 /*片上闪存*/
    FLASH_BANK1_SEC15:origin = 0x09F000、length = 0x001000 /*片上闪存*/
    #ifdef _TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION_>= 20012000
    }crc (_table_name、算法=C28_CHECKSUM_16)
    #endif
    #endif

    第 1 页:

    boot_RSVD:origin = 0x000002、length = 0x0000F3 /* M0 的一部分、引导 ROM 将对堆栈使用此值*/
    RAMM1:origin = 0x000400、length = 0x000400 /*片上 RAM 块 M1 */
    CLA1_MSGRAMLOW:origin = 0x001480、length = 0x00080
    CLA1_MSGRAMHIGH:origin = 0x001500、length = 0x000080

    RAMLS5:原点= 0x00A800、长度= 0x000800
    RAMLS6:原点= 0x00B000、长度= 0x000800
    RAMLS7:原点= 0x00B800、长度= 0x000800

    RAMGS0:原点= 0x00C000、长度= 0x002000
    RAMGS1:origin = 0x00E000、length = 0x002000
    RAMGS2:origin = 0x010000、length = 0x002000
    RAMGS3:原点= 0x012000、长度= 0x002000
    }


    很重要

    codestart :> begin, page = 0, align(4)
    .text:>>FLASH_BANK0_SECC6 | FLASH_BANK0_sec7 | FLASH_BANK0_SEC8 | FLASH_BANK0_SEC9 | FLASH_BANK0_SEC10 | FLASH_BANK0_SEC11 | FLASH_BANK0_SEC12、PAGE = 0、ALIGN (4)
    .cinit:> FLASH_BANK0_SEC13 | FLASH_BANK0_SEC14 | FLASH_BANK0_SEC15、PAGE = 0、ALIGN (4)
    .pinit:> FLASH_BANK0_SEC8、PAGE = 0、ALIGN (4)
    .switch:> FLASH_BANK0_SEC8、page = 0、align (4)
    .reset:> reset、page =0、type = DSECT /*未使用、*/

    .stack :> RAMM1, page = 1.
    .ebss:> RAMLS5|RAMLS6|RAMLS7|RAMGS0、PAGE = 1
    .esysmem :> RAMLS5, page = 1.
    .econst:> FLASH_BANK0_SEC13、PAGE = 0、ALIGN (4)

    ramgs0:> RAMGS0、page = 1
    ramgs1 :> RAMGS1, page = 1.

    .TI.ramfunc:{}load = FLASH_BANK0_SEC13 | FLASH_BANK0_SEC14、
    RUN = RAMLS0_1_2_3_4
    LOAD_START (_RamfuncsLoadStart)、
    load_size (_RamfuncsLoadSize)、
    LOAD_END (_RamfuncsLoadEnd)、
    RUN_START (_RamfuncsRunStart)、
    RUN_SIZE (_RamfuncsRunSize)、
    RUN_END (_RamfuncsRunEnd)、
    PAGE = 0、ALIGN (4)

    /* CRC/校验和段配置为复制段以避免包含在可执行文件中*/
    .TI.memcrc:type = copy


    #if!(cla_math_tables_in_rom)
    //
    //将表加载到闪存并复制到 RAM
    //
    CLA1mathTables:load = FLASH_BANK0_SEC6,
    RUN = RAMLS4、
    RUN_START (_CLA1mathTablesRunStart)
    LOAD_START (_CLA1mathTablesLoadStart)、
    LOAD_SIZE (_CLA1mathTablesLoadSize)、
    页面= 0
    #endif
    Cla1Prog:load = FLASH_BANK1_sec7_8_9_10_11,
    RUN = RAMLS0_1_2_3_4
    RUN_START (_Cla1ProgRunStart)、
    LOAD_START (_Cla1ProgLoadStart)、
    load_size (_Cla1ProgLoadSize)、
    页面= 0
    Cla1ToCpuMsgRAM:> CLA1_MSGRAMLOW、page = 1.
    cpuToCla1MsgRAM:> CLA1_MSGRAMHIGH、PAGE = 1

    #ifdef CLA_C
    //
    // CLA C 编译器段
    //
    //必须分配给 CLA 具有写访问权限的存储器
    //
    .scratchpad :> RAMLS5, page = 1.
    .bss_cla:> RAMLS5、page = 1
    .const_cla:> RAMLS5、page = 1
    #endif
    FPUmathTables:>FLASH_BANK0_SEC6、PAGE = 0
    Cla1DataRam:> RAMLS5 | RAMLS6、page = 1.
    }

    /*
    //==============================================================================
    //文件结尾。
    //==============================================================================
    */

    请检查这一点,并给我一些解决方案来运行 CLA。

    此致、

    Subash  

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

    上面的屏幕截图 下面的 CLA 工作条件屏幕截图显示 CLA 没有运行  CLA 并转到闪存初始化模块 (_RamfuncsRunStart)  

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

    尊敬的 Subash:

    您是否可以尝试 执行以下步骤以便在两个 内核上进行调试:

    1. 启动目标配置
      1. 两个内核都应断开连接
    2. C28x 的“连接目标“
      1. C28x 将暂停   
      2. 此时可能会引发有关没有调试信息的错误、可以忽略该错误
    3. 将.out 文件加载到 C28x 上  (Run >> Load >> Load Program >>[导航至.out 文件])
      1. C28x 仍将暂停
    4. CLA 的“连接目标“
      1. 两个内核都将暂停
    5. 将.out 符号加载到 CLA 上 (Run >> Load >> Load symbols >>[导航至.out 文件])
    6. 将上下文切换到 C28x(在调试窗口中点击它)和恢复
    7. 将上下文切换回 CLA、您应该会看到它在 __mdebugstop () 处停止;

    对于链接器 cmd 文件、您是否使用 C2000ware 提供的文件对文件进行了任何修改? 如果是、您能否列出所做的修改+推理、以便我可以帮助您确定这是否会导致问题?

    此致、

    Delaney