常见问答

常见问答

如何解决在新唐开发板使用 Arm library 并以 C++ 进行机器学习程序开发时,只能运行 Debug mode 而无法正常执行的问题? (disassmebly 内持续看到 BKPT 出现)  日期:2023-05-02

若发生在 debug mode 可运行,但不接 ICE 直接 free run 程序会卡住,且从 debug mode 发现程序持续卡在断点的现象时,可能是 semihosting 错误。
在新唐机器学习范例中使用 Arm library 时,若在出现「stdout/stdin/stderr multiply defined…」等错误警告时,直接将重复定义的项目删除便会导致 semihosting 错误而发生程序不断进 breakpoint 的现象。

 

NOTE: 为避免 semihosting 错误问题,在删除重复定义的项目后,需在 retarget.c 内新增下列程序代码:

extern void $Super$$_sys_open(void);

FILEHANDLE $Sub$$_sys_open(const char *name, int openmode)

{

 return 1; /* everything goes to the same output */

}

(若编译中有其他 L6200E 函数错误警告 (Symbol _sys_XXX multiply defined),请一并新增 sys_XXXX() 的 FILEHANDLE 定义)

产品: 微控制器 ,Arm Cortex-M4 微控制器 ,M451 Base 系列 ,M451M 系列 ,M452 USB 系列 ,M4521 USB 系列 ,M453 CAN 系列 ,M463 CAN FD/USB HS 系列 ,M467 Ethernet/Crypto 系列 ,M471 系列 ,M479 Motor Control Series ,M481 Base 系列 ,M482 USB FS OTG 系列 ,M483 CAN 系列 ,M484 USB HS OTG 系列 ,M485 Crypto 系列 ,M487 Ethernet 系列 ,M4TK 触摸 IC 系列 ,NUC442 / 472 系列 ,NUC472 系列 ,NUC505 系列
应用:
功能: Others,Software and Tools,Development-Environment,Keil