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/CCStudio:双应用程序处理

Guru**** 669750 points
Other Parts Discussed in Thread: TMS320C6418, CCSTUDIO
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/732973/ccs-ccstudio-double-application-handling

器件型号:CCStudio
主题中讨论的其他器件:TMS320C6418

工具/软件:Code Composer Studio

你(们)好。

我正在使用 CCS5.5.0在 TMS320C6418目标上开发应用。

我有一个主应用 程序"Application_1"、在 出现特殊情况时、我需要能够切换到第二个应用程序"Application_2"。

我有2个不同的项目、2个不同的编译和2个.hex 文件(通过 hex6x.exe 实用程序从.out 转换)。

应用程序_1和应用程序_2必须存储在外部 EEPROM 上、使用 ROM 引导模式(CE1)。

application_1是复位后必须执行的一个:它存储在外部 ROM 的地址0、以便引导序列 在启动时运行。

应用程序_2也存储在外部存储器中、EEPROM 的另一页上。

如何让 Application_2作为要执行的新应用程序、从正在运行的 Application_1切换?

在片上 RAM 上创建分区、复制整个 Application_2 hex 文件并在 Application_2 RAM 地址的开头移动程序计数器是否足够了?

谢谢你

此致

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

    器件型号:CCStudio

    工具/软件:Code Composer Studio

    你(们)好。

    对于我的应用、我想 运行 位于外部 EEPROM 中的代码。 我将使用十六进制应用程序生成.bin 文件、然后将其存储到 EEPROM 中。

    我 希望有 一个"bootloader"和 "application"、以便:

    "引导加载程序"   以 ROM 引导模式(CE1)启动、它 检查"应用程序"程序是否存储在 EEPROM 中并 运行;

    -“应用程序”是必须运行的实际应用程序代码。

    然后、我需要 将两个二进制映像存储到 EEPROM 中:"bootloader.bin"和"application.bin":

    BOOTIMAGE @ EMIFA CE1 0x9000 0000

    APPIMAGE @ EMIFA CE1 0x9000 1000

    最适合这种情况的解决方案是什么?

    如何修改.cmd 文件、以便能够直接从 外部闪存执行代码?    

    谢谢

    此致

    Stefano

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

    团队将收到通知。 他们将直接在此处发布反馈。

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

    我知道这是一个定制应用。 我想澄清一下您是将其与 TI RTOS 配合使用还是用作裸机应用? 哪个 TI RTOS SDK 版本?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    感谢你的答复。
    Application_2是真正的应用程序、Application_1是自定义引导加载程序。
    目的是始终从 Application_1 (引导加载程序)开始、以便用户(通过 RS232终端协议)决定进入"维护模式"、从而最终更新(写入外部闪存)新的 Application_2/Get SW Info/do some test。
    application_1 (自定义引导加载程序)没有 TI-RTOS、只是一个带有处理终端协议的其他函数的 main。
    应用_2是在具有 DSP/BIOS 5.42.2.10版的不同项目上开发的。
    如果您需要更多信息、请告诉我!

    谢谢!
    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    您是否能够阅读我的答案?
    谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、这已转发给 RTOS 团队进行详细说明。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、通常次级引导加载程序会检测 c_int00的入口点位置、并使用以下序列将控制传递给应用程序:

    typedef void (* EntryFunPTR_t)(void);

    void (* func_ptr)(void);

    func_ptr =(EntryFunPTR_t) EntryPoint_CPU0;
    func_ptr ();

    通常、对于 DSP、您可能需要入口点与2字节边界对齐。

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

    请勿针对同一问题打开重复的主题帖。 我们将在另一个主题上讨论次级引导主题、因此我将合并这些主题。

    此致、
    Rahul