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.

[参考译文] AM62A7:启用半主机

Guru**** 2487055 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442337/am62a7-enabling-semihosting

器件型号:AM62A7

工具与软件:

你好  

我们有 fopen ()/ fprintf ()/ fclose ()- c7上的函数调用-运行良好,并将数据输出到 PC 上调试文件夹中的文件。

但是、我们无法使其在 A53内核上工作。 fopen()始终返回 NULL。  

我们认为这可能是半主机未启用的问题、 您认为是什么?  

如何  在 A53上获得 fopen()/ fprintf()功能?  

提前感谢

居伊

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

    嗨、Guy、

    [报价 userid="376611" url="~/support/processors-group/processors/f/processors-forum/1442337/am62a7-enabling-semihosting "]但是、我们不能让它在 A53内核上工作。 fopen()始终返回 NULL。  [报价]

    A53、Linux 或其他平台上运行的是什么操作系统?

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

    你好  

    我们将 FreeRTOS 用作示例项目。  

    居伊

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

    我会将您的主题发送给我们的 RTOS 专家、以征求意见。

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

    嗨、Guy、

    您能否说明您正在使用 MCU+SDK 中的哪个示例、或者它是自定义示例?

    另请告诉我们您使用的是哪个版本的 MCU+SDK?

    您使用了哪种初始化方法? 是 SBL 还是 SPL?

    此致、

    Tushar

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

    您好!  

    是、  

    您能否说明您正在使用 MCU+SDK 中的哪个示例、或者它是自定义示例? => hello_world FreeRTOS gcc arch64

    另请告诉我们您使用的是哪个版本的 MCU+SDK? => MCU SDK 10_00_00_14

    您使用了哪种初始化方法? 是 SBL 还是 SPL =>进行比较 SBL 空(JTAG)

    BTW、 fprintf 适用于 C7和 MCU R5、但在 A53上不起作用。  

    请建议、谢谢

    居伊

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

    嗨、Guy、

    为了在通过 GCC 编译时启用半主机、您需要链接 libc.a librdimon.a. 软件库。

    要链接上述库、请添加 -lc 和-lrdimon 链接器命令的标志。 另请拆下 -nostartfiles 允许链接标准库的标志。

    请参阅下图。

    添加  --specs=rdimon.specs GCC 编译器中的标志调用以使用半托管版本的 SYSCalls。 请参阅下图。

    完成上述更改后、添加以下函数调用 *。c 初始文本文件。

    extern void initialise_monitor_handles(void);

    也可以在进行任何系统调用之前调用上述函数。 请参阅下图。

    请确保在调试器中启用半主机选项。 导航至 Tools -> Debugger -> Program/Memory Load Options。

    重新编译程序并再次运行它。

    请告知我们上述解决方案是否有效。

    此致、

    Tushar

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

    非常感谢 Tushar、  

    问题已解决

    此致

    居伊