如果您的软件无法从闪存中正确运行,则未使用针对 I/O 例程(如 printf)启用的半托管支持编译代码。
半托管通过编译时间中链接的特定库将 I/O 命令(例如 printf)路由至调试器。
SoCEDS/示例/软件中的软件示例被配置为默认使用半托管。
SoCEDS 版本 15.1 及更高版本中的 Altera-SoCFPGA-HardwareLib-FPGA-CV-GNU 包含在 Makefile 顶部包含一个#Define,以允许使用半托管或启用。 如果半托管被禁用,此示例添加了一个驱动程序,以通过 UART 路由 printf 输出。
您还可以通过在 C 或组装模块中使用下面的代码来管理禁用 C 库半托管功能:
#pragma导入(__use_no_semihosting_swi)/C 模块
导入__use_no_semihosting_swi//组装器模块