undefined reference to '_modsi3'和`__udivdi3'

ARM 182浏览


【问题描述】:

自己实现printf函数来方便裸板调试打印的时,在printf函数中用到了求余%和除法/操作:
这里写图片描述

结果报错:
这里写图片描述


【问题分析】:

ARM是精简指令集,对求余和除法操作基本上不支持,所以应该尽量避免上述操作。

【解决方法】:

linux内核源码linux/arch/arm/lib/lib1funcs.S实现支持除法、求模操作等操作的库函数,下载地址:https://gitee.com/zgdy/0_printf


将这个文件编译成.o文件,一起链接成.bin文件烧写到裸板就ok了。
这里写图片描述