undefined reference to '_modsi3'和`__udivdi3'
【问题描述】:
自己实现printf函数来方便裸板调试打印的时,在printf函数中用到了求余%和除法/操作:
结果报错:
【问题分析】:
ARM是精简指令集,对求余和除法操作基本上不支持,所以应该尽量避免上述操作。
【解决方法】:
linux内核源码linux/arch/arm/lib/lib1funcs.S实现支持除法、求模操作等操作的库函数,下载地址:https://gitee.com/zgdy/0_printf
将这个文件编译成.o文件,一起链接成.bin文件烧写到裸板就ok了。