工具与软件:
我们有 fopen ()/ fprintf ()/ fclose ()-函数调用在 A53上无法正常工作。
fopen 函数始终返回 NULL。 我们使用 GCC 编译器。
这是否与半主机有关? 如果有、如何启用它?
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.
工具与软件:
我们有 fopen ()/ fprintf ()/ fclose ()-函数调用在 A53上无法正常工作。
fopen 函数始终返回 NULL。 我们使用 GCC 编译器。
这是否与半主机有关? 如果有、如何启用它?
为了在通过 GCC 编译时启用半主机、您需要链接 libc.a 和 librdimon.a. 软件库。
要链接上述库、请添加 -lc 和-lrdimon 链接器命令的标志。 另请拆下 -nostartfiles 允许链接标准库的标志。
在 CCS 工程中、打开 Project Properties 并导航到 Build -> GNU Linker -> Libraries 并添加上述标志。
请参阅下图。

此外、还 添加了 --specs=rdimon.specs GCC 编译器中的标志调用以使用半托管版本的 SYSCalls。
在 CCS 工程属性中、导航到 Build -> GNU Compiler -> Miscellaneous 并添加上述标志。
请参阅下图。

完成上述更改后、在中添加以下函数声明 *。c 初始文本文件。
extern void initialise_monitor_handles(void);
也可以在进行任何系统调用之前调用上述函数。 请参阅下图。

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

重新编译程序并再次运行它。
执行上述步骤之后、您将能够使应用代码正常工作。