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:28388D controlCARD 加电时无需启动主程序

Guru**** 2535650 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/950469/tms320f28388d-28388d-controlcard-power-up-no-startin-the-main-program

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

您好!

我有一个28388DControlCard、它使用 CPUTimer 的 C2000Ware 示例使 LED 每秒闪烁一次。 我已经在闪存中对其进行编程、并关闭28388DControlCard、几秒钟后我再给它加电。 我本来希望28388D 启动并运行 BootROM、然后启动 Amin 程序、但似乎在接下来的一行中咳嗽了、并且从未进入主程序。  

3fb114:  6F00       SB          0、UNC

当系统来自看门狗复位或形成外部复位按钮时、也会发生这种情况。

根据 f2838x_codestartbranch.asm

;//对于这些示例,code_start 是之后执行的第一个代码
;//退出引导 ROM 代码。

此外、示例 F2838x 项目设置为 codegen
;//入口点也设置为 code_start 标签。

我希望您能给我一些信息、说明如何在上电后或复位后运行我的程序。

此致、

David

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

    David、

    如果您已连接 CCS、则器件会根据仿真启动进行引导。 请参阅 TRM 中的仿真引导部分、并将仿真引导设置为闪存引导、以便按预期引导。 如果调试器未连接、请检查板上的引导引脚设置、以确保正确设置为引导至闪存。

    此致、

    Vivek Singh

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

    您好!

    如果您已连接 CCS,则设备将根据仿真启动进行引导。-->我将检查该情况,但我认为是可以的。

    当除尘器未连接且我给它加电时、我已经检查了是否是所选引导电容器的三倍。 根据页681、TRM 引脚 GPIO72和 GPIO 84 必须设置为1。

    闪存/ USB (2) 1 1.

    这些引脚符合 TMS320F28388D controlCARD 信息指南(修订版 B) 第9页的要求

    S2引导模式开关:控制 F2838x 器件的引导选项、请参阅表3。 有关完整说明、请参阅器件数据表。

    S2设置为开。

    就我所知,这就是我必须做的一切。 LED 永远不会闪烁。

    此致、

    David

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

    请尝试以下步骤-

    • 为电路板加电。
    • 连接 CCS。
    • 从 CCS 复位问题
    • 在  CCS 中点击"Script -> EMU Boot Mode Select -> EMU_BOOT_FLASH"
    • 单击 Run

    让我们知道这是否正常、CPU 会跳转到您的应用程序代码。 基本上、我们的想法是不要在加电后加载代码、因为它已经在闪存中。 如果它不起作用、则需要检查代码的入口点并确保其正确。

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

    您好!

    现在正在处理 C200Ware 中的代码、但不处理我的代码。 在我的代码上、DSP 会跳转到另一个点。


    3fe96f:  7625       ESTOP0   

    我是否应该打开其他问题并关闭这个问题?

    BR、

    David

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

    不、我们可以在这里继续讨论。 您是否检查了代码中的入口点设置?

    此致、

    Vivek Singh

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

    您所说的入口点、main 的第一行位于何处?

    主代码的第一行位于此处:
    0835F1:  76483BA5   LCR         SYSCTL_getWatchdogResetStatu

    此致、

    David

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

    您好!

    入口点是应用程序代码的 ist 指令的位置、CPU 在执行引导代码后跳转。 默认情况下、它应该位于0x80000地址。 默认情况下、它应该是"Code_start 函数"、它是"F2837xS_CodeStartBranch.asm"代码的一部分。 请参阅此映射在您的.out 文件中的位置。 您可以在 CCS 中打开拆分视图并检查此函数。  

    此致、

    Vivek Singh

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

    您好!

    实际上、我正在使用 C2000Ware 提供的 f2838x_codestartbranch.asm。 有以下几行:

    WD_DISABLE .set 1   ;设置为1可禁用 WD、否则设置为0
       .ref _c_int00
       全局代码_start
    (三
    *函数:codestart 段
    *
    *说明:分支到代码起始点
    (三
       .sect "codestart"
    我还在使用 2838x_flash_lnk_cpu1.cmd
    然后将代码开始部分指向此处:
    部分

      codestart          :>开始,align (8)
    并开始设置为:
    存储器

      /* begin 用于"引导至闪存"引导加载程序模式  */
      开始           :origin = 0x080000,length = 0x000002
    该部分是闪存的开始部分。 至少根据上的存储器映射
    :闪存  

    扇区0 8K x 16 0x0008 0000 0x0008 1FFF
    此致、
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    David、

    连接到 CCS 后、打开"Disassembly"视图并检查映射到0x80000位置的内容。 如果您看到 CODE_START、则表示正常、并在那里设置断点、然后按照我之前提供的步骤查看 CPU 是否在那里暂停。 如果它在 main()函数处设置了另一个断点,则再次运行并查看它是否跳转到 main。  

    此致、

    Vivek Singh

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

    您好!

    我已经检查了装配体的那个部分、您说得对、我有以下内容:

    080000:  FFFF       ITRAP1       
    080001:  FFFF       ITRAP1

    但我已经检查了.map、并找到了以下内容。

    部分分配映射
     输出                                 属性/
    段  页   原点     长度      输入段
    ----  --------   ------   --------
    codestart
    *         0   00080000   00000002     
                     00080000   00000002    f2838x_codestartbranch.obj (codestart)
    因此我不理解为什么它不在装配体上。
    此致、
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    David、

    看起来它正在进行优化。 我建议您下载最新的 C2000Ware 并从 那里获取 f2838x_codestartbranch.asm、然后重试。  

    此致、

    Vivek Singh

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

    您好!

    这解决了问题。 可以关闭该问题。

    非常感谢您的观看。

    BR

    David