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.

[参考译文] TMS320F280038C-Q1:具有用户功能的可升级闪存部分。

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1489033/tms320f280038c-q1-upgradable-flash-memory-section-with-user-functions

器件型号:TMS320F280038C-Q1
Thread 中讨论的其他器件:C2000WARE

工具与软件:

我需要创建软件、分为基本软件(BSW)和应用软件(ASW)。 BSW 是可执行代码、而 ASW 仅包含使用指针表从 BSW 调用的函数。 ASW 应该被独立于 BSW 进行更新。 我知道如何将函数和变量放置在特定的内存部分中。 但我不知道如何解决 RAM 存储器的初始化问题以及如何生成初始化常量.cinit、.switch、.init_array、…… 对于 ASW。 可能仍然有一些我忽略的东西。

您能提供一些建议吗?

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

    尊敬的 Lukas:

    下面是一些入门资源、如果您对存储器初始化有任何具体问题、请告诉我:

    此致、

    Aishwarya.

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

    尊敬的  Aishwarya:

    我关心的是、如果我将 RAM 存储器用于 BSW (基本软件)和 ASW (应用软件)、并且代码同时用于 ASW 和 BSW 编译、我如何确保 BSW 闪存具有正确生成的.cinit.switch等、以及 ASW 具有自己的? 如何确保在 BSW 代码重新启动或更新后正确初始化 ASW RAM?  

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

    最好为 ASW 创建一个单独的项目并单独构建、以便生成相应闪存的完整内容。 BSW 引导加载程序可以初始化 ASW 所需的一切、也可以启动 ASW 引导加载程序、然后返回到 BSW。  

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

    Lukas

    如果你想让 ASW 和 BSW 有自己的.cinit、.switch、.etc、你可以创建两个单独的项目、正如你所提到的。 编译器在构建工程时应能够捕获 lnk 命令初始化错误。 您可以利用示例 lnk cmd 和来自 C2000WARE 的相同引导/应用程序代码作为起点。 我还可以从结束时进一步研究这一点。

    此致、

    Aishwarya.

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

    尊敬的  Aishwarya:

    如果没有设置共享 noinit 变量、我要从 BSW 主初始化部分执行 ASW 启动。 一旦 ASW 到达 main、我就会设置共享 noinit 变量并返回到 BSW main 主函数、其中将绕过 ASW 启动、因为已设置共享变量、从而允许在 BSW 程序中继续。 然后、BSW 会检查指向 ASW 函数的 ASW 常量指针表并相应地执行它们。 希望这种方法应该起作用。  

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

    Lukas

    "你听我说! 更多的见解在这里(你已经介绍了其中的一些)…

    你需要为 BSW 分配一些 RAM (为 ASW 所知保留它)。 如果需要 BSW 的初始化等功能、ASW 随后需要为其调用某种 init。 全局变量应由 ASW 初始化、并作为指向全局变量的指针传递给 BSW。 符号库可用于调用 https://www.ti.com/lit/pdf/spraan5 第5章中所述的 BSW 中的函数

    此致、

    Aishwarya.