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.

[参考译文] CCS/TMS320F28379D:查找有关使用 CCS 解锁单元的文档

Guru**** 2595805 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/964738/ccs-tms320f28379d-looking-for-documentation-for-unlocking-a-unit-with-ccs

器件型号:TMS320F28379D

工具/软件:Code Composer Studio

您好!

我需要调试锁定的单元。 使用 CCS 的单元。 在哪里可以找到描述 CCS 连接后解锁过程的文档?

谢谢、

ED

 

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

    尊敬的 Ed:

    我相信您正在寻找通过提供有效密码取消区域安全保护的流程。 如果是、则需要密码匹配流程(PMF) 。   这在第3.13.3.2节:器件 TRM 的 CSM 密码匹配流程(技术参考手册)中进行了说明。 如果这不是您要找的内容、请返回。  

    www.ti.com/.../spruhm8i.pdf

    希望这对您有所帮助。  

    如果此回复解决了您的问题、请单击"验证答案"按钮。

    谢谢、此致

    Pramod

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

    您好 Pramod、

    在等待您的回复时、我发现了这一点。

    我需要能够在不干扰系统的情况下连接仿真器、并将其解锁、以便随后可以对其进行检查。  我知道如何执行第一部分、并且可以在我尝试读取存储器时看到0。  但是、一旦我到达该点、我就不知道如何执行 PMF。  是否有办法做到这一点、或者我是否需要先做其他事情?

    谢谢、

    ED

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

    尊敬的 Ed:

    当您说您知道如何在不干扰系统的情况下连接仿真器时、我相信您正在谈论删除 GEL 文件并尝试连接到您的目标。 在没有 GEL 的情况下执行整个 PMF 是很棘手的。 连接后、您必须在 CCS 上打开存储器浏览器、并像在代码中那样执行所有操作。 这也会解锁该区域。

    请告诉我这些信息是否有用。

    谢谢、此致
    Pramod

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

    您好 Pramod、

    在连接过程的这一部分中、您是正确的、那就是删除 GEL 文件。

    但是、可以使用不定义任何回调函数但定义解锁器件的函数的 GEL 文件吗?

    谢谢、

    ED

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

    尊敬的 Ed:

    是的。 这应该是有可能的。 请尝试一下。

    或者、您甚至可以在 GEL 中使用空的回调函数。 我认为这不应影响您的执行流程。  

    谢谢、此致

    Pramod

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

    您好 Pramod、

    好的。

    为此、脚本需要能够读取寄存器。  我可以找到的唯一示例是在分配上下文中完成的读取、即读取-修改-写入。  我尝试了如下语法:

    *(long int*) 0x

    脚本处理器没有抱怨。  但是、这是否会进行实际读取?

    是否有任何方法输出 读取结果?

    谢谢、

    ED

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

    是否有任何方法可以输出 读取结果?[/quot]您可以将读取结果保存在变量中,然后使用 GEL_TextOut () 将值打印到 CCS 调试控制台。

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

    谢谢切斯特、

    还有两个问题:

    1. 变量的声明是否与 C 类似?
    2. 以上链接中的资源非常棒!  这是否是将在月底记录的页面之一?

    谢谢、

    ED

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

    变量的声明是否与 C 类似?

    请参阅 函数的局部变量 和 GEL 函数的全局变量、因此类似于 C。我不记得在哪里记录了 GEL 支持哪些类型、 但回顾一下之前创建的一些自定义 GEL 文件、它们对局部或全局变量都使用 int 和 unsigned int。 例如:

    unsigned int faultISR_address;
    
    //加载程序时自动在 FaultISR 函数上获取断点,以便在
    发生硬故障时程序停止*。 //
    OnFileLoaded( int nErrorCode、int bSymbolsOnly、int bProgramOnly )
    {
    /*清除先前运行中设置的任何断点,以避免在同一地址获得多个断点。
    *由于 GEL_BreakPtAdd 可能会添加硬件断点、因此请清除任何硬件或软件断点。 *
    GEL_BreakPtDel (FaultISR);
    GEL_HWBreakPtDel (FaultISR);
    
    /*添加断点*/
    GEL_BreakPtAdd (FaultISR);
    
    /*保存符号的地址供 OnHalt()使用*/
    FAULTISR_ADDRESS = FaultISR;
    }
    
    菜单项"异常"//
    
    在 Cortex-M 异常发生后解除堆栈,以便 CCS 调试器显示
    发生异常的上下文。
    *
    * LR 用于检查 EXC_RETURN 值、以在异常处理程序中验证该值、然后再对
    堆栈展开*。 */
    hotmenu sedelet_exception()
    {
    unsigned int saved_lr;
    unsigned int saved_sp;
    unsigned int *stacked_pc;
    unsigned int *stacked_lr;
    
    saved_lr = lr;
    if ((saved_lr 和 lr_EXC_return_mask)=lr_EXC_return_mask)
    {
    saved_sp = SP;
    
    /*恢复发生异常的 PC 和 LR */
    stacked_pc = saved_sp + 0x18;
    stacked_lr = saved_sp + 0x14;
    PC =*堆叠_PC;
    lr =*堆叠后的 lr;
    
    /*根据是否保存浮点状态,恢复发生异常的 SP 值
    *在异常进入时。 *
    if ((saved_lr & lr_exception_no_floating_point_saved_mask)!= 0)
    {
    SP = saved_sp + 0x20;
    GEL_TextOut ("在非浮点状态的异常之后解除堆栈\n);
    }
    其他
    {
    SP = saved_sp + 0x68;
    GEL_TextOut ("浮点状态异常后解除堆栈\n);
    }
    }
    }/*
    
    当目标停止时,如果在 FAULTISR 函数开始时停止,则会自动
    *解除异常堆栈。
    *
    *条件测试进入 FAULTISR 的原因是、加载程序
    、*或重新放置器
    件时、CPU 有时会在异常处停止、因此*自动尝试解除异常堆栈会中断调试。
    */
    OnHalt()
    {
    if (PC =faultISR_address)
    {
    elee_exception ();
    }
    }
    

    如果 目标符号和 GEL 变量使用相同的名称、请注意 GEL 命名空间、即名称解析的默认顺序。

    [报价用户="Ed Sanders)]这是月底将要记录的页面之一吗?[/报价]不是我所知道的那样。   正是 https://processors.wiki.ti.com 页面已停用、内容已移至 正在 维护的 https://software-dl.ti.com 下的页面。

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

    更多有用信息。

    谢谢切斯特。

    ED

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

    您好 Pramod、

    实验成功了。  我能够加载 GEL 脚本、以便解锁单元并进行调试。  新主题中的更多内容...

    ED